Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Поддержка TGA в Qt


Автор: Jeka178RUS 14.8.2013, 15:34
Сижу под виндой на Qt 4.8.4, с удивлением в папке с плагинами обнаружил модули для поддержки tga и решил проверить,  QImageReader::supportedImageFormats() выдает ("bmp", "gif", "ico", "jpeg", "jpg", "mng", "pbm", "pgm", "png", "ppm", "svg", "svgz", "tga", "tif", "tiff", "xbm", "xpm"), однако попытка открыть tga файл через QImage возвращает пустой объект ( Qimage.isNull == true )/

Скачал исходники Qt сам скомпилировал эти плагины - результат тот же.

Что я делаю не так?

Автор: Amp 14.8.2013, 15:44
Кажется в 4.8 отломали tga, попробуй 4.7 или 5.X.

Автор: bsa 15.8.2013, 11:32
http://qt-project.org/doc/qt-4.8/qimagereader.html#supportedImageFormats
Цитата
TGA support only extends to reading non-RLE compressed files.

Автор: Jeka178RUS 15.8.2013, 11:34
TGA не сжатые проверял

Автор: Jeka178RUS 15.8.2013, 12:24
Попробовал так
QFile tgaFile( fileName );
QImageReader imgRead( &tgaFile, "tga" );
QImage tga = imgRead.read(  );
if ( tga.isNull() ){
    qDebug() << "Fail" << imgRead.error();
}

Получил ошибочку 4
Цитата

QImageReader::InvalidDataError    4    The image data was invalid, and QImageReader was unable to read an image from it. The can happen if the image file is damaged.


К сожалению отладчик не смог добраться по внутренностей tga plugina, чтобы найти место откуда возвращается ошибка :( Однако я точно знаю, что программа находит и загружает плагин

Автор: Jeka178RUS 15.8.2013, 14:23
Проблема решена:

XnView записывал tga файлы без секции подвала, а Photoshop следуя спецификации tga 2.0 записывал подвал. Плагин Qt не обнаружив подвала считал это за ошибку, я решил закомментировать проверку подвала, так как чтение каких либо секций специфичных для tga 2.0 в плагине не реализовано.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)