Caricare QPixmap da QByteArray in Qt?
-
26-10-2019 - |
Domanda
Ho una matrice di byte con il contenuto di un'immagine (in png / bmp o qualche altro formato).
Come faccio a caricarlo in una QPixmap?
Soluzione
bool QPixmap::loadFromData ( const QByteArray & data, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor )
Formato qui è stringa letterale come "PNG"
o qualcosa di simile
QPixmap p;
QByteArray pData;
// fill array with image
if(p.loadFromData(pData,"PNG"))
{
// do something with pixmap
}
Altri suggerimenti
Si dovrebbe usare il folowing, dove i byte sono nella variabile imageData nel formato specificato dal ultimo parametro:
QPixmap pixmap = QPixmap::fromImage(
QImage(
(unsigned char *) imageData,
image_width,
image_height,
QImage::Format_RGB888
)
);
Usa questo costruttore:
QImage ( const uchar * data, int width, int height, Format format )
qui è più informazioni . Dopo di che, è possibile utilizzare QPixmap.convertFromImage()
per creare una pixmap.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow