私は独自の画像フォーマットを持つソフトウェアを扱っています。 QT GUIにこれらのイメージの修正版を表示できる必要があります。 16ビット整数(ピクセルあたり16ビット)を返すメソッド(Image-> getpixel(x、y))があります。明確にするために、16ビット数はRGBカラーフォーマットを表していません。文字通り、撮影されている部分の特定の点(高さマップ)に対する測定値または寸法を表します。私は、画像内の次元(整数)の範囲を取り、色で表現するためにスケールを適用する必要があります。次に、その情報を使って、Qlabelに表示できるQPixmap用のイメージを構築する必要があります。ここに一般的な要点は...16ビット整数の画像をQPixmapに変換する方法
QByteArray Arr;
unsigned int Temp;
for (int N = 0; N < Image->GetWidth(); N++) {
for (int M = 0; M < Image->GetHeight(); M++) {
Temp = Image.GetPixel(N,M);
bytes[0] = (Temp >> 8) & 0xFF;
bytes[1] = Temp & 0xFF;
Arr.push_back(bytes[0]);
Arr.push_back(bytes[1]);
}
}
// Take the range of 16 bit integers. Example (14,982 to 16,010)
// Apply a color scheme to the values
// Display the image
QPixmap Image2;
Image2.loadFromData(Arr);
ui->LabelPic->setPixmap(Image2);
思考?
このスクリーンショットは、私が複製しようとしているものの例です。画像の色付けは、画像内の基礎となるデータに固有のものではないことに注意することが重要です。これは、高さの値を拡大し、整数の範囲に配色を適用するアプリケーションの結果です。
私はこの方法を知っていますが、実際の問題は16ビットのunsigned intからconst uchar *にデータを取得する方法です。新しいコードで私の投稿を更新しました。どう考えているか教えてください。 – bluebass44
ucharは単なるバイトであり、ここへのポインタはグラフィックスデータバッファの先頭へのポインタです。そのため、reinterpret_castまたはそれ以前のCスタイルのキャストがそこにあります。あなたはソースバッファを指し示すことを試みるかもしれません、そして、私が詳細を知らない限り、あなたがそのコードでしていることは私には説明できません。 – AlexanderVX
私は徐々に収集している新しい情報を投稿に更新しました。文書がひどく欠けているので、不完全な情報を許す必要があります。あなたが見たい他の情報は? – bluebass44