ビデオ ゲーム バトルフィールド 2 の高さマップをアプリケーションで画像として表示しようとしています。
私は C++ と Qt が初めてで、簡単かもしれませんが、問題があるのはグレースケールの16-bit 1025x1025 2101250
バイト画像を表示することです。ファイルにヘッダーはありません。表示されたピクセルにアクセスする必要があるため (ピクセル単位の精度である必要はありません)、ピクセルをポイントしてその値を取得できます。
私が試したこと
バイナリ データをQByteArray
QFile からロードし、QImage::fromData
関数を使用して画像を作成しようとしましたが、多くの間違いを犯し、多くの時間を費やしています。ここに投稿することで、私が進歩するために必要な手がかりが得られることを願っています. これが私のコードです:
void LearningBinaryReader::setupReader()
{
qDebug("Attempting to open file..");
QFile file("HeightmapPrimary.raw");
if (!file.open(QFile::ReadOnly))
{
qDebug("Could not open file");
return;
} else {
qDebug() << file.fileName() << " opened";
}
QByteArray data = file.readAll();
file.flush();
file.close();
qDebug() << data.count() << "bytes loaded.";
}
ここから、どうしようか迷ってしまいます。Qt のドキュメントをいくつか読んだことがありますが、この問題を理解して解決策を得るには、初心者なので正しい方向へのガイドが必要です。
私はほとんど初心者なので、思いもよらなかった簡単な解決策を軽視しないでください。Qtフレームワークを使用してこれを行いたいと思います。