С C ++ и Qt, как мне отобразить 16-битный необработанный файл как изображение?
Я хочу отображать карты высот из видеоигры Battlefield 2 в виде изображений в моем приложении.
Я новичок в C ++ и Qt, и это может быть прямо вперед, но у меня возникли проблемы с отображением оттенков серого16-bit 1025x1025 2101250
байтовое изображение. Нет заголовка к файлу.
Мне нужен доступ к отображаемым пикселям (не обязательно с точностью до пикселя), чтобы я мог указать на пиксель и получить его значение.
What I have tried
Я загрузил двоичные данные в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, но, поскольку я новичок, мне нужно руководство в правильном направлении, чтобы понять эту проблему и найти решение.
Please note Я в значительной степени новичок, поэтому не пренебрегайте легкими решениями, о которых я, возможно, и не подумал. Я хотел бы сделать это просто с помощью фреймворка Qt.