0

我在该 char 指针中有一个 dataBuffer[1000][1000] 的双指针 char 在某些地方我会将十六进制值设为 0xFF,其余为 0x00(用于 openGL 绘图)

现在我希望它显示为 QWidget,其十六进制值以像素为单位。

我发现 QImage 我们可以映射 1000x1000 像素,但我不知道如何将 char 的十六进制值映射到像素。

请帮助我,在此先感谢。

4

1 回答 1

0

您可以尝试执行以下操作:

首先,QImage使用此构造函数从缓冲区构造:QImage(const uchar* data, int width, int height, Format format),使用QImage::Format_Indexed8asformat

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。基本上就是这样,现在您可以在小部件上绘制此图像或将其保存到文件中。

于 2013-03-17T08:13:59.280 回答