C++ 在Qt中从QByteArray加载QPixmap?
我有一个包含图像内容的字节数组(png/bmp或其他格式) 如何将其加载到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
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加载的数据的大小,您可以找到答案