3

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");

私の現在の回避策は、2番目の配列を使用することであり、汚れていると感じます

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で解決される可能性は十分にあります。

4

2 に答える 2