【发布时间】:2011-10-13 04:34:51
【问题描述】:
我有一个包含图像内容的字节数组(png/bmp 或其他格式)。
如何将其加载到 QPixmap 中?
【问题讨论】:
标签: c++ qt qpixmap qbytearray
我有一个包含图像内容的字节数组(png/bmp 或其他格式)。
如何将其加载到 QPixmap 中?
【问题讨论】:
标签: c++ qt qpixmap qbytearray
您应该使用以下内容,其中您的字节位于 imageData 变量中,格式由最后一个参数指定:
QPixmap pixmap = QPixmap::fromImage(
QImage(
(unsigned char *) imageData,
image_width,
image_height,
QImage::Format_RGB888
)
);
【讨论】:
bool QPixmap::loadFromData ( const QByteArray & data, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor )
这里的格式是字符串文字,如@987654322@ 或类似的东西
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 )
Here is more info。之后,您可以使用QPixmap.convertFromImage() 创建像素图。
【讨论】:
uchar 是一个字节。只需使用演员表。