我希望在我的应用程序中将视频游戏《战地 2》中的高度图显示为图像。
我是 C++ 和 Qt 的新手,它可能很简单,但我遇到的问题是显示灰度16-bit 1025x1025 2101250
字节图像。该文件没有标题。我需要访问显示的像素(不必是完美的像素精度),这样我就可以指向一个像素并获取它的值。
我试过的
我已经将二进制数据QByteArray
从 QFile 加载到一个 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 框架来做到这一点。