Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Qt中从QByteArray加载QPixmap?_C++_Qt_Qpixmap_Qbytearray - Fatal编程技术网

C++ 在Qt中从QByteArray加载QPixmap?

C++ 在Qt中从QByteArray加载QPixmap?,c++,qt,qpixmap,qbytearray,C++,Qt,Qpixmap,Qbytearray,我有一个包含图像内容的字节数组(png/bmp或其他格式) 如何将其加载到QPixmap中 bool QPixmap::loadFromData ( const QByteArray & data, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor ) 这里的格式是字符串文字,如“PNG”或类似的格式 QPixmap p; QByteArray pData; // fill array wit

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

如何将其加载到QPixmap中

bool QPixmap::loadFromData ( const QByteArray & data, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor )
这里的格式是字符串文字,如
“PNG”
或类似的格式

QPixmap p;
QByteArray pData;
// fill array with image
if(p.loadFromData(pData,"PNG"))
{
   // do something with pixmap
}
使用此构造函数:

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

。之后,您可以使用
QPixmap.convertFromImage()
创建一个pixmap。

您应该使用以下命令,其中您的字节以最后一个参数指定的格式存在于imageData变量中:

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

我想从字节数组转换到图像,但QImage将第一个参数作为常量uchar*不是字节数组)
uchar
是一个字节。用一个cast@rave:你能添加一个简单的例子吗?BYTE*pData;QByteArray pArray;pArray.append((const char*)pData);m_pixmap.loadFromData(pArray,PNG);m_pixmap.save((QString(“./Test.png”),“png”);我正在使用此代码,但它似乎不起作用。嗯,这取决于您在pdata中拥有的内容。代码是正确的。我看到了你的另外两个问题-关于QByteArray和关于非gui线程。。。麻烦可能就在那里。并且您收到的答案是正确的-使用QImage并提供从byte*True加载的数据的大小,您可以找到答案