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?

È stato utile?

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
scroll top