Hi,
bischen späte Antwort, aber vielleicht hilfts dir:
1. schreib Dir ein Bin2Asc Programm (vielleicht gibts das auch im Netz, aber mit Qt ist das so schön einfach):
Code: Alles auswählen
QString fileName = QFileDialog::getOpenFileName();
if ( fileName.isEmpty() ) return 0;
QFile f_in( fileName );
f_in.open( IO_ReadOnly );
QByteArray ba = f_in.readAll();
f_in.close();
QFile f_out( fileName + ".h" );
f_out.open( IO_WriteOnly );
QTextStream ts( &f_out );
ts << "// File: " << fileName << "\n";
ts << "// Size: " << ba.size() << "\n";
ts << "static const unsigned char " << QFileInfo(fileName).baseName() << "[] = {\n";
for (unsigned i=0; i<ba.size(); i++)
{
uchar c = ba.at(i);
QString s = QString::number( c, 16 );
s = s.rightJustify( 2, '0' );
ts << "0x" << s << ",";
if ((i+1)%16 == 0) ts << "\n";
}
ts << "\n};";
f_out.close();
2. Damit konvertierst Du dann die Datei, die Du mit in deiner ausführbaren Datei drin haben willst. Da kommt dann eine hübsche Header Datei raus, die Du einfach in Dein Projekt mit einbindest. Die sieht ungefähr so aus:
Code: Alles auswählen
// File: D:/Workout/Icons.png
// Size: 36999
static const unsigned char Icons[] = {
0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52,
0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x08,0x06,0x00,0x00,0x00,0x3e,0x55,0xe9,
.
.
0x73,0xc7,0x19,0x00,0xa8,0x56,0xab,0x9e,0x53,0xfe,0xd5,0x33,0x47,0xcb,0x94,0xff,
0xff,0x01,0x00,0xa9,0x0e,0x16,0x86,0x28,0x4d,0x2c,0x8b,0x00,0x00,0x00,0x00,0x49,
0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
};
3. Jetzt musst Du nichts weiter tun, als die Bilddaten zu laden, mit:
Code: Alles auswählen
QPixmap pm;
pm.loadFromData( (const unsigned char*) &Icons, 36999 );
Viel Vergnügen...
PS: in der ausführbaren sind das dann natürlich Binärdaten, so das dein Bild nicht wie bei XPM als Text vorliegt!