Seite 1 von 1

[solved] Bild aus Datenbank: Beste Methode?

Verfasst: 5. April 2008 15:41
von C167
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:

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();
	}
}
Nu hab ich in einem meiner Buecher folgende Methode enteckt:

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;
}
Welche Methode ist besser? Welche schneller? Welche Vor-/Nachteile haben die Methoden?
Qt4.4b1, System is Debian Sid und Zielsystem Windows.
C167

Verfasst: 5. April 2008 16:02
von Christian81
Laut Doku ist es das Gleiche

Verfasst: 5. April 2008 16:06
von C167
gut, danke
laut doku nimmt man offenbar die Methode mit dem QImageReader eh nur wenn man es gleich schnippeln will.