Com C ++ e Qt como faço para exibir um arquivo raw de 16 bits como uma imagem?
Eu estou olhando para exibir mapas de altura do jogo de vídeo Battlefield 2 como imagens na minha aplicação.
Eu sou novo em C ++ e Qt e pode ser direto, mas o que eu estou tendo problemas com a exibição de uma escala de cinza16-bit 1025x1025 2101250
imagem de bytes. Não há cabeçalho para o arquivo. Preciso acessar os pixels exibidos (não é preciso ter precisão de pixels perfeitos) para poder apontar para um pixel e obter seu valor.
O que eu tentei
Eu carreguei os dados binários em umQByteArray
de um QFile e eu tentei usar oQImage::fromData
função para fazer a imagem, mas eu estou fazendo um monte de erros e gastar muito tempo não chegar muito longe. É minha esperança que postar aqui me dê a (s) pista (s) de que preciso progredir. Aqui está o meu 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.";
}
Daqui eu estou sem saber o que fazer. Eu li algumas das documentações do Qt, mas sendo novo eu preciso de um guia na direção certa para entender esse problema e obter a solução.
Observe Eu sou praticamente um iniciante, então não desconte soluções fáceis que eu não poderia ter pensado. Eu gostaria de fazer isso apenas usando o framework Qt.