W C ++ i Qt jak wyświetlić 16-bitowy surowy plik jako obraz?

Chcę wyświetlać mapy wysokości z gry wideo Battlefield 2 jako obrazy w mojej aplikacji.
Jestem nowym użytkownikiem C ++ i Qt i może to być proste, ale problem z wyświetlaniem skali szarości16-bit 1025x1025 2101250 obraz bajtów. Plik nie zawiera nagłówka. Potrzebuję dostępu do wyświetlanych pikseli (nie musi to być precyzja pikseli), więc mogę wskazać piksel i uzyskać jego wartość.

Co próbowałem

Dane binarne załadowałem doQByteArray z QFile i próbowałem użyćQImage::fromData funkcja tworzenia obrazu, ale robię wiele błędów i spędzam dużo czasu, nie robiąc zbyt wiele. Mam nadzieję, że opublikowanie tutaj da mi wskazówkę (e), którą muszę rozwinąć. Oto mój kod:

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.";
}

Od tego momentu tracę to, co robić. Przeczytałem część dokumentacji Qt, ale będąc nowym, potrzebuję przewodnika we właściwym kierunku, aby zrozumieć ten problem i uzyskać rozwiązanie.

Proszę zanotować Jestem prawie początkującym, więc nie dyskontuj łatwych rozwiązań, o których mógłbym nie myśleć. Chciałbym to zrobić za pomocą frameworka Qt.

questionAnswers(3)

yourAnswerToTheQuestion