wie kann man ein QPixmap am besten in einer SQLite Datenbank speichern und wieder laden? Meine bisherigen Versuche scheiterten kläglich.
Zum besseren Verständnis des Quelltextes:
'image' ist ein QPixmap-Objekt
'record' ist ein QSqlRecord-Objekt, welches in die Datenbank geschrieben wird
Die Spalte mit Namen "image" in der Datenbank ist als Typ 'blob' definiert.
Mit allen anderen Spalten, die Text oder Zahlen speichern, funktioniert alles bestens.
Code: Alles auswählen
Speichern:
//QPixmap in QByteArray umwandeln
QByteArray pixmapBytes;
QBuffer pixmapBuffer(&pixmapBytes);
pixmapBuffer.open(QIODevice::WriteOnly);
image.save(&pixmapBuffer);
//QByteArray in Datenbank schreiben
record.setValue("image", pixmapBytes.data());
Laden:
//QByteArray auslesen
const QByteArray pixmapBytes = QByteArray((char *)(record.value("image").data()));
//QPixmap konstruieren
image.loadFromData(pixmapBytes);