我在该 char 指针中有一个 dataBuffer[1000][1000] 的双指针 char 在某些地方我会将十六进制值设为 0xFF,其余为 0x00(用于 openGL 绘图)
现在我希望它显示为 QWidget,其十六进制值以像素为单位。
我发现 QImage 我们可以映射 1000x1000 像素,但我不知道如何将 char 的十六进制值映射到像素。
请帮助我,在此先感谢。
您可以尝试执行以下操作:
首先,QImage
使用此构造函数从缓冲区构造:QImage(const uchar* data, int width, int height, Format format)
,使用QImage::Format_Indexed8
asformat
即
QImage img(dataBuffer, 1000, 1000, QImage::Format_Indexed8)
二、初始化颜色翻译图:应该是QVector<QRgb>
,所以你需要做这样的事情:
QVector<QRgb> colorMap(256);
colorMap[255] = QRgb(255, 255, 255); // Any color of your choice
// probably some other mappings
然后QImage::convertToFormat
像这样使用:
QImage converted = img.convertToFormat(QImage::Format_RGB32, colorMap)
这会将其转换为 RGB。基本上就是这样,现在您可以在小部件上绘制此图像或将其保存到文件中。