在Qt中从QByteArray加载QPixmap?

use*_*285 7 c++ qt qpixmap qbytearray

我有一个包含图像内容的字节数组(以png/bmp或其他格式).

如何将其加载到QPixmap中?

Rai*_*aiv 14

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

这里的格式是字符串文字"PNG"或类似的东西

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


Mat*_*yas 6

您应该使用下面的内容,其中您的字节在最后一个参数指定的格式的imageData变量中:

QPixmap pixmap = QPixmap::fromImage(
    QImage(
        (unsigned char *) imageData, 
        image_width, 
        image_height, 
        QImage::Format_RGB888
    )
);
Run Code Online (Sandbox Code Playgroud)