我在使用Qt5保存灰度Format_Indexed8
图像时遇到了问题。
当我保存文件时,得到的是一堆杂乱无章的彩色图片,没有相关特征。我期望得到的是一张灰度BMP图片。
这张单色图像被存储为sizeof(uchar)*widthGL*heightGL
。
glTexSubImage2D(GL_TEXTURE_2D,0,0,0,widthGL,heightGL,
GL_LUMINANCE,GL_UNSIGNED_BYTE,noise);
//computation
QImage mySurface(noise,widthGL,heightGL,QImage::Format_Indexed8);
mySurface.save("test.bmp","BMP");
我的当前解决方案涉及使用第二个数组,感觉很不好
static unsigned char* mbuffer = new unsigned char[3*widthGL*heightGL];
for (int i = 0,bpos=0;i<widthGL*heightGL;i++)
{
mbuffer[bpos++]=noise[i];
mbuffer[bpos++]=noise[i];
mbuffer[bpos++]=noise[i];
}
QImage mySurface(mbuffer,widthGL,heightGL,QImage::Format_RGB888);
我想知道是否有任何方法可以让Qt5输出类似灰度图像的内容。
编辑
引用:
有很大的可能这个问题在最新版本的Qt中已经解决了。