そのcharポインターにdataBuffer [1000] [1000]のdoubleポインターcharを持っているImは、16進値0xFFを作成し、残りの0x00を作成します(openGLプロット用)
今、私はピクセルの16進値を持つQWidgetとしてそれを表示したい.
1000x1000 ピクセルをマップできる QImage を見つけましたが、char の 16 進値をピクセルにマップする方法がわかりません。
助けてください、よろしくお願いします。
次のことを試してみてください。
まず、次のコンストラクターを使用しQImage
てバッファーから構築します。QImage(const uchar* data, int width, int height, Format format)
QImage::Format_Indexed8
format
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に変換されます。基本的にはこれで、ウィジェットにこの画像を描画したり、ファイルに保存したりできます。