4

それを行うより良い方法 (なしQImage)?:

QImage image(width, height, QImage::Format_RGB888);
memcpy(image.bits(), m_frameRGB->data[0], height * width * 3);
QPixmap pixmap = QPixmap::fromImage(image);

QImage中間バッファーとして使用する理由はわかりませんがQPixmap::loadFromData、このコンテキストでデータをロードしないでください。

pixmap.loadFromData(m_frameRGB->data[0], height * width * 3); // Need pixmap resize?
4

2 に答える 2

2

ドキュメントには、「形式が指定されていない場合 (デフォルト)、ローダーはファイルのヘッダーを調べてファイル形式を推測します」と述べています。生の画像バイトへのポインターのみを提供しますが、圧縮されていない PPM 形式などの場合、バッファーの先頭にヘッダーを提供する必要があります。

編集: Roku の提案をテストして、画像データをパラメーターとして受け取る QImage コンストラクターを使用することもできますが、ドキュメントのコメントを参照してください:「バッファーは、QImage の有効期間を通じて有効である必要があります。」

于 2012-06-26T16:22:32.510 に答える