Qt 双字符数组映射到QImage

Qt 双字符数组映射到QImage,qt,qimage,Qt,Qimage,我有一个双指针字符dataBuffer[1000][1000] 在该字符指针的某些位置,我将使十六进制值为0xFF,其余为0x00(用于openGL绘图) 现在我想让它显示为一个以像素为单位的十六进制值的QWidget 我发现QImage可以映射1000x1000像素,但我不知道如何将字符的十六进制值映射到像素 请帮帮我, 提前谢谢 您可以尝试执行以下操作: 首先,使用此构造函数从缓冲区构造QImage:QImage(const-uchar*data,int-width,int-height,F

我有一个双指针字符dataBuffer[1000][1000] 在该字符指针的某些位置,我将使十六进制值为0xFF,其余为0x00(用于openGL绘图)

现在我想让它显示为一个以像素为单位的十六进制值的QWidget

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

请帮帮我,
提前谢谢

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

首先,使用此构造函数从缓冲区构造
QImage
QImage(const-uchar*data,int-width,int-height,Format-Format)
,使用
QImage::Format_Indexed8
作为
格式,即

QImage img(dataBuffer, 1000, 1000, QImage::Format_Indexed8)
第二,初始化颜色转换映射:它应该是
QVector
,所以您需要这样做:

QVector<QRgb> colorMap(256);
colorMap[255] = QRgb(255, 255, 255); // Any color of your choice
// probably some other mappings
QImage converted = img.convertToFormat(QImage::Format_RGB32, colorMap)

这会将其转换为RGB。基本上就是这样,现在您可以在小部件上绘制此图像或将其保存到文件中。

First tnx为您提供最佳回复。。但是我在实现你的逻辑时遇到了一些问题。QVector彩色地图(256);colorMap[255]=QRgb(255,255,255);抛出一个错误:表达式列表在函数cast[-F premissive]中被视为复合表达式。。你能帮我解决这个问题吗。。thx再一次:)我修好了,先生。。。for(int row=0;row<2048;row++)for(int column=0;column<2048;column++){m_dataArray[row][column]=0x00;}QImage img(*m_dataArray,2048,2048,QImage::Format_Indexed8);QVector彩色表(256);可着色[255]=qRgb(255255);QImage converted=img.convertToFormat(QImage::Format_RGB32,colortable);m_graphicscene->addPixmap(QPixmap::fromImage(已转换));Thx user2155932以获取回复。这是我做的一个双端口无符号字符数组无符号字符**m_数据数组;我把它画成了,但是这张图片看起来有点奇怪,因为它在一张黑色的图片上有白点。请帮我解决这个问题。