covert art data and size issue

Audric Ackermann audric.bilb at
Mon Apr 28 08:47:27 UTC 2014


I need to get metadata from audio files and found taglib. It works fine
with artist, album, title,... but I have some problems with covert art.
Here is my code to extract it:

Music* gettags(QString mediafile){

   Music * music = new Music();

    TagLib::FileRef file(mediafile.toUtf8());

    //get covert art

    TagLib::ID3v2::Tag Tag(file.file(),0);

    TagLib::ID3v2::FrameList list = Tag.frameListMap()["APIC"];

    if(!list.isEmpty()) {

        TagLib::ID3v2::AttachedPictureFrame *Pic =
static_cast<TagLib::ID3v2::AttachedPictureFrame *>(list.front());

        if(Pic != NULL) {

            std::string artwork_s(Pic->picture().data());

            qDebug() << "size: " << Pic->picture().size();

                        music->musicData.artwork = artwork_s;



    return music;


I have checked with easytag and a front covert art is present in the file.

the qDebug() writes: size:  33537

but when I try to show it in my qt app, I got an error message

Corrupt JPEG data: 1 extraneous bytes before marker 0xd9

JPEG datastream contains no image

I don't know in which part of my code I've made a mystake.

Thanks for your help,

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the taglib-devel mailing list