Frage Laden QPixmap von QByteArray in Qt?


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?


6
2017-07-26 07:29


Ursprung


Antworten:


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

Format hier ist String-Literal wie "PNG" oder etwas ähnliches

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

13
2017-07-26 07:32



Sie sollten den folgenden Abschnitt verwenden, in dem sich Ihre Bytes in der imageData -Variable in dem durch den letzten Parameter angegebenen Format befinden:

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

6
2017-07-26 07:45



Benutze diesen Konstruktor:

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

Hier ist mehr Infos. Danach können Sie verwenden QPixmap.convertFromImage() um ein Pixmap zu erstellen.


0
2017-07-26 07:33