[solved] Bild aus Datenbank: Beste Methode?
Verfasst: 5. April 2008 15:41
Tagchen,
Ich frage mich gerade, was die beste Methode ist, ein Bild aus einem sqlite3 BLOB-Fehl zu laden und anzuzeugen.
Bisher mach ich das so:Nu hab ich in einem meiner Buecher folgende Methode enteckt:Welche Methode ist besser? Welche schneller? Welche Vor-/Nachteile haben die Methoden?
Qt4.4b1, System is Debian Sid und Zielsystem Windows.
C167
Ich frage mich gerade, was die beste Methode ist, ein Bild aus einem sqlite3 BLOB-Fehl zu laden und anzuzeugen.
Bisher mach ich das so:
Code: Alles auswählen
void ImageViewer::loadImage ( int pic )
{
QSqlQuery query ( QSqlDatabase::database() );
query.prepare ( "SELECT data FROM img_images WHERE id = :id" );
query.bindValue ( ":id", img_list[pic] );
query.exec();
if ( query.next() )
{
return QImage::fromData ( query.value ( 0 ).toByteArray() ) );
}
else
{
return QImage();
}
}Code: Alles auswählen
QImage ImageCollection::getImage( int id )
{
QSqlQuery qrx;
qry.prepare ( "SELECT data FROM images WHERE id = :id" );
qry.bindValue ( ":id", id );
if ( !qry.exec() ) qFatal ( "Failed to get image" );
if ( !qry.next() ) qFatal ( "Failed to get image id" );
QByteArray array = qry.value ( 0 ).toByteArray();
QBuffer buffer ( &array );
buffer.open ( QIODevice::ReadOnly );
QImageReader reader ( &buffer, "PNG" );
QImage image = reader.read();
return image;
}Qt4.4b1, System is Debian Sid und Zielsystem Windows.
C167