Frage

Ich habe ein Byte -Array mit dem Inhalt eines Bildes (in PNG/BMP oder einem anderen Format).

Wie kann ich es in eine QPIXMAP laden?

War es hilfreich?

Lösung

bool QPixmap::loadFromData ( const QByteArray & data, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor )

Das Format hier ist saitel buchstäblich wie "PNG" oder etwas ähnliches

QPixmap p;
QByteArray pData;
// fill array with image
if(p.loadFromData(pData,"PNG"))
{
   // do something with pixmap
}

Andere Tipps

Sie sollten das Lobus verwenden, bei dem sich Ihre Bytes in der Variablen der Imagedata im Format befinden, das durch den letzten Parameter angegeben ist:

QPixmap pixmap = QPixmap::fromImage(
    QImage(
        (unsigned char *) imageData, 
        image_width, 
        image_height, 
        QImage::Format_RGB888
    )
);

Verwenden Sie diesen Konstruktor:

QImage ( const uchar * data, int width, int height, Format format )

Hier sind weitere Informationen. Danach können Sie verwenden QPixmap.convertFromImage() So erstellen Sie eine PIXMAP.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top