Con C ++ y Qt, ¿cómo muestro un archivo en bruto de 16 bits como una imagen?
Estoy buscando mostrar los mapas de altura del videojuego Battlefield 2 como imágenes en mi aplicación.
Soy nuevo en C ++ y Qt y podría ser sencillo, pero con lo que estoy teniendo problemas es mostrar una escala de grises16-bit 1025x1025 2101250
Imagen de bytes. No hay encabezado al archivo. Necesito acceder a los píxeles mostrados (no tiene que ser una precisión perfecta de píxeles) para poder apuntar a un píxel y obtener su valor.
Lo que he intentado
He cargado los datos binarios en unQByteArray
de un QFile y he intentado utilizar elQImage::fromData
Funciono para hacer la imagen pero estoy cometiendo muchos errores y paso mucho tiempo sin llegar muy lejos. Espero que la publicación aquí me brinde la (s) pista (s) que necesito para progresar. Aquí está mi código:
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.";
}
A partir de aquí estoy en una pérdida de qué hacer. He leído parte de la documentación de Qt, pero como soy nuevo, necesito una guía en la dirección correcta para comprender este problema y obtener la solución.
tenga en cuenta Soy prácticamente un principiante, así que no descarto soluciones sencillas que podría no haber pensado. Me gustaría hacer esto solo usando el framework Qt.