[Interest] Binary file embedded in Resources to std::istream
Rollastre Prostrit
rollastre at gmail.com
Fri Aug 2 21:18:29 CEST 2013
Hi Qters:
Due to vicissitudes of a third party library I'm using I have to read
the bytes of png files (binary files) embedded in the resources via
using a std::istream. I have been struggling quite a bit with this and
googling a lot without success. Maybe this is something that it is easy
to solve but I haven't succeeded with it yet.
I use this snippet
QFile f(":/images/file.png");
if (!f.exist())
return;
if (f.size()<=0)
return;
if (!f.open(QIODevice::ReadOnly))
return;
if (!f.isReadable())
return;
QByteArray bytes = f.readAll();
char* bb = bytes.data();
std::string str;
for (int i=0; i<s; ++i)
{
str += bb[i];
}
stringstream stream;
stream << str;
I use strings here because some of the tens of articles I've read
suggested it. It doesn't seem to work, though. If I dump the bytes to a
temp file, I see the file becomes corrupted. There is an extra empty
byte right after the PNG header. My guess is that the zero-end byte is
messing everything up. But I admit that I don't find any solution for this.
Has somebody faced this problem and/or can see what/how is the solution?
Thanks in advance!
More information about the Interest
mailing list