0

そのcharポインターにdataBuffer [1000] [1000]のdoubleポインターcharを持っているImは、16進値0xFFを作成し、残りの0x00を作成します(openGLプロット用)

今、私はピクセルの16進値を持つQWidgetとしてそれを表示したい.

1000x1000 ピクセルをマップできる QImage を見つけましたが、char の 16 進値をピクセルにマップする方法がわかりません。

助けてください、よろしくお願いします。

4

1 に答える 1

0

次のことを試してみてください。

まず、次のコンストラクターを使用しQImageてバッファーから構築します。QImage(const uchar* data, int width, int height, Format format)QImage::Format_Indexed8format

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 に答える