void nVIDIAEmbedder::embed( const char *name ) { QFileInfo fileinfo( name ); QString basename( fileinfo.baseName() ); QString codename( basename ); QImage image( name ); codename = codename.replace( QRegExp("[^a-zA-Z0-9]"), "_" ); stream << "static const QRgb " << codename << "_data[] = {" << endl << "\t"; stream.setf( QTextStream::hex | QTextStream::right ); stream.fill( '0' ); int pixels = image.width() * image.height(); Q_UINT32 *data = reinterpret_cast<Q_UINT32*>( image.bits() ); bool hasAlpha = false; for ( int i = 0, j = 0; i < pixels; i++ ) { if ( qAlpha( *data ) && qAlpha( *data ) != 0xff ) hasAlpha = true; stream << "0x" << qSetW(8) << *(data++); if ( i != pixels-1 ) { stream << ','; if ( j++ > 4 ) { j = 0; stream << endl << "\t"; } else stream << ' '; } } stream.reset(); stream << endl << "}; // " << codename << "_data" << endl << endl; EmbedImage *imginfo = new EmbedImage; imginfo->width = image.width(); imginfo->height = image.height(); imginfo->alpha = hasAlpha; imginfo->name = codename; imginfo->string = basename; index->append( imginfo ); }