<div dir="ltr">It worked, thank you !</div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-04-28 12:06 GMT+02:00 Lukáš Lalinský <span dir="ltr"><<a href="mailto:lalinsky@gmail.com" target="_blank">lalinsky@gmail.com</a>></span>:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">std::string artwork_s(Pic->picture().data());<br><br>This code uses the NULL byte to determine the size, which JPEG is very likely to have somewhere in the middle. You need to explicitly set it. Use this string constructor instead: string (const char* s, size_t n);<br>



<br>Lukas</div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div class="h5">On Mon, Apr 28, 2014 at 10:47 AM, Audric Ackermann <span dir="ltr"><<a href="mailto:audric.bilb@gmail.com" target="_blank">audric.bilb@gmail.com</a>></span> wrote:<br>



</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">Hi,<div><br></div><div>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:</div>



<div>

<br></div><div>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,0,128)">Music</span><span>*</span><span style="color:rgb(192,192,192)"> </span><span>gettags</span><span>(</span><span style="color:rgb(128,0,128)">QString</span><span style="color:rgb(192,192,192)"> </span><span>mediafile</span><span>){</span></pre>





<pre style="margin-top:0px;margin-bottom:0px"><span>   </span><span style="font-family:arial;color:rgb(128,0,128)">Music</span><span style="font-family:arial;color:rgb(192,192,192)"> </span><span style="font-family:arial">*</span><span style="font-family:arial;color:rgb(192,192,192)"> </span><span style="font-family:arial">music</span><span style="font-family:arial;color:rgb(192,192,192)"> </span><span style="font-family:arial">=</span><span style="font-family:arial;color:rgb(192,192,192)"> </span><span style="font-family:arial;color:rgb(128,128,0)">new</span><span style="font-family:arial;color:rgb(192,192,192)"> </span><span style="font-family:arial;color:rgb(128,0,128)">Music</span><span style="font-family:arial">();</span></pre>






</div><div>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,0,128)">   TagLib</span><span>::</span><span style="color:rgb(128,0,128)">FileRef</span><span style="color:rgb(192,192,192)"> </span><span>file</span><span>(</span><span>mediafile</span><span>.</span><span>toUtf8</span><span>());</span></pre>





</div><div><br></div><div>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,128,0)">    //get</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">covert</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">art</span></pre>






<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,128)">TagLib</span><span>::</span><span style="color:rgb(128,0,128)">ID3v2</span><span>::</span><span style="color:rgb(128,0,128)">Tag</span><span style="color:rgb(192,192,192)"> </span><span>Tag</span><span>(</span><span>file</span><span>.</span><span>file</span><span>(),</span><span style="color:rgb(0,0,128)">0</span><span>);</span></pre>






<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,128)">TagLib</span><span>::</span><span style="color:rgb(128,0,128)">ID3v2</span><span>::</span><span style="color:rgb(128,0,128)">FrameList</span><span style="color:rgb(192,192,192)"> </span><span>list</span><span style="color:rgb(192,192,192)"> </span><span>=</span><span style="color:rgb(192,192,192)"> </span><span>Tag</span><span>.</span><span>frameListMap</span><span>()[</span><span style="color:rgb(0,128,0)">"APIC"</span><span>];</span></pre>






<pre style="margin-top:0px;margin-bottom:0px"><br></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">if</span><span>(!</span><span>list</span><span>.</span><span>isEmpty</span><span>())</span><span style="color:rgb(192,192,192)"> </span><span>{</span></pre>






<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,0,128)">TagLib</span><span>::</span><span style="color:rgb(128,0,128)">ID3v2</span><span>::</span><span style="color:rgb(128,0,128)">AttachedPictureFrame</span><span style="color:rgb(192,192,192)"> </span><span>*</span><span>Pic</span><span style="color:rgb(192,192,192)"> </span><span>=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">static_cast</span><span><</span><span style="color:rgb(128,0,128)">TagLib</span><span>::</span><span style="color:rgb(128,0,128)">ID3v2</span><span>::</span><span style="color:rgb(128,0,128)">AttachedPictureFrame</span><span style="color:rgb(192,192,192)"> </span><span>*>(</span><span>list</span><span>.</span><span>front</span><span>());</span></pre>






<pre style="margin-top:0px;margin-bottom:0px"><br></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">if</span><span>(</span><span>Pic</span><span style="color:rgb(192,192,192)"> </span><span>!=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,128)">NULL</span><span>)</span><span style="color:rgb(192,192,192)"> </span><span>{</span></pre>






<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,128)">std</span><span>::</span><span style="color:rgb(128,0,128)">string</span><span style="color:rgb(192,192,192)"> </span><span>artwork_s</span><span>(</span><span>Pic</span><span>-></span><span>picture</span><span>().</span><span>data</span><span>());</span></pre>






<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(0,0,128)">qDebug</span><span>()</span><span style="color:rgb(192,192,192)"> </span><span><<</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"size:</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"</span><span style="color:rgb(192,192,192)"> </span><span><<</span><span style="color:rgb(192,192,192)"> </span><span>Pic</span><span>-></span><span>picture</span><span>().</span><span>size</span><span>();</span></pre>






<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span>music</span><span>-></span><span style="color:rgb(128,0,0)">musicData</span><span>.</span><span style="color:rgb(128,0,0)">artwork</span><span style="color:rgb(192,192,192)"> </span><span>=</span><span style="color:rgb(192,192,192)"> </span><span>artwork_s</span><span>;</span></pre>






<pre style="margin-top:0px;margin-bottom:0px"><br></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span>}</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span>}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span>    return music;</span></pre>

<pre style="margin-top:0px;margin-bottom:0px"><span>}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span><br></span></pre><pre style="margin-top:0px;margin-bottom:0px"><span><br></span></pre><pre style="margin-top:0px;margin-bottom:0px">

<span>I have checked with easytag and a front covert art is present in the file.</span></pre><pre style="margin-top:0px;margin-bottom:0px">

<br></pre><pre style="margin-top:0px;margin-bottom:0px"><font color="#000000">the qDebug() writes: </font><span style="color:rgb(181,11,11);font-size:9pt">size:  33537</span></pre>
<p style="margin:0px"><span style="font-family:monospace;font-size:9pt;color:rgb(181,11,11)"> <br></span></p><pre style="margin-top:0px;margin-bottom:0px"><font color="#000000">but when I try to show it in my qt app, I got an error message</font></pre>





<pre style="margin-top:0px;margin-bottom:0px"><p style="margin:0px"><span style="font-family:monospace;font-size:9pt;color:rgb(181,11,11)">Corrupt JPEG data: 1 extraneous bytes before marker 0xd9</span></p>
<p style="margin:0px"><span style="font-family:monospace;font-size:9pt;color:rgb(181,11,11)">JPEG datastream contains no image</span></p><p style="margin:0px"><br></p><p style="margin:0px"><font color="#000000">I don't know in which part of my code I've made a mystake.</font></p>





<p style="margin:0px"><font color="#000000"><br></font></p><p style="margin:0px"><font color="#000000"><br></font></p><p style="margin:0px"><font color="#000000">Thanks for your help,</font></p><p style="margin:0px"><font color="#000000">Audric</font></p>





</pre></div></div>
<br></div></div>_______________________________________________<br>
taglib-devel mailing list<br>
<a href="mailto:taglib-devel@kde.org" target="_blank">taglib-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/taglib-devel" target="_blank">https://mail.kde.org/mailman/listinfo/taglib-devel</a><br>
<br></blockquote></div><br></div>
<br>_______________________________________________<br>
taglib-devel mailing list<br>
<a href="mailto:taglib-devel@kde.org">taglib-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/taglib-devel" target="_blank">https://mail.kde.org/mailman/listinfo/taglib-devel</a><br>
<br></blockquote></div><br></div>