QImageReader. Ошибка "unable to read image data"

Модератор: Fastman

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
SoeR
рядовой
Сообщения: 20
Зарегистрирован: 2007-06-08 14:17:52

QImageReader. Ошибка "unable to read image data"

Непрочитанное сообщение SoeR » 2010-09-28 8:05:16

Доброго времени суток, уважаемые форумчане.
Столкнулся со следующей траблой - объект класса QImageReader не может взять контент из файлов png. - "unable to read image data".

Часть кода чтения файла:

Код: Выделить всё

QImageReader Reader(FileName);
qDebug() << "Supported formats... = " << QImageReader::supportedImageFormats();
qDebug() << "Image format - " << Reader.format();
qDebug() << "Images count = " << Reader.imageCount();
QImage Image(Reader.read());
qDebug() << "Error = " << Reader.errorString();
int Width = Image.width();
qDebug() << "Width = " << Width;
Вывод в консоли следующий:

Код: Выделить всё

Supported formats... =  ("BW", "EPS", "EPSF", "EPSI", "EXR", "PCX", "PSD", "RGB", "RGBA", "SGI", "TGA", "XCF", "bmp", "bw", "dds", "eps", "epsf", "epsi", "exr", "gif", "ico", "jpeg", "jpg", "pbm", "pcx", "pgm", "png", "ppm", "psd", "rgb", "rgba", "sgi", "svg", "tga", "xbm", "xcf", "xpm", "xv")
Image format -  "png"
Images count =  1
Error =  "Unable to read image data"
Width = 0
Как видно из списка поддерживаемых форматов - формат png присутствует, но данные считать не может ((
Права на файл позволяют его читать - через QFile всё читается на ура, да и с форматом jpeg всё нормально - QImage его парсит.
Картинки PNG пробовал разные - ни одна не прочиталась.

Прогу пишу на машине с FreeBSD 8.0 на борту. Кстати, пробовал вставлять свой код в форточное приложение - рисунки png читаются и отображаются.
Кто сталкивался с подобной проблемой - прошу помочь :)

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Dambo
ефрейтор
Сообщения: 61
Зарегистрирован: 2009-11-27 22:29:58

Re: QImageReader. Ошибка "unable to read image data"

Непрочитанное сообщение Dambo » 2010-09-28 11:36:34

В вашем случае ошибка заключается не в QImageReader, а в QImage на создание и приёме файлов, QImage является наследником QPaintDevice тут то все и тараканы спрятались))), QPaintDevice базовый класс для рисования всего, чтобы использовать его(вам это не надо) и наследников(вот оно надо) его вам придётся вручную переписать paintEngine() и подпихивать его соответственно.
Геморра вам и счастья, осилите выложите пожалуйста в этой теме исходники и по этапный процесс как переделывали QPaintDevice у него все функции рисования виртуальные соответственно...
Сам подобное не делал, что то похожее видел в книге Земскова(там точно есть пример как переделывать подобные механизмы в qt, не именно про графику), вечером найду в книжке место сюда отпишу.

SoeR
рядовой
Сообщения: 20
Зарегистрирован: 2007-06-08 14:17:52

Re: QImageReader. Ошибка "unable to read image data"

Непрочитанное сообщение SoeR » 2010-09-28 11:49:44

Поэксперементировав, понял что грабли действительно не в QImageReader... В случае с jpeg-ами QImageReader выдает "Unknown error", а QImage хавает его на ура... А PNG-шки QImage кушать не хочет по какой-то причине.

Dambo
ефрейтор
Сообщения: 61
Зарегистрирован: 2009-11-27 22:29:58

Re: QImageReader. Ошибка "unable to read image data"

Непрочитанное сообщение Dambo » 2010-09-28 21:17:37

Прошу прощения за указание в неверную сторону, QImage работает только с 32 битным изображением курсор таковым не является надо использовать другой класс для таких изображений, вообще QImage медленный если верить Масу Шлее он был создал для ситуаций, когда точность обработки изображений превосходит над скоростью.
И в предыдущем посте тоже перепутал авторов...

SoeR
рядовой
Сообщения: 20
Зарегистрирован: 2007-06-08 14:17:52

Re: QImageReader. Ошибка "unable to read image data"

Непрочитанное сообщение SoeR » 2011-02-27 10:53:10

Разобрался. Решилось удалением qt, установленного из портов, установкой из архива с официального сайта и пересборкой плагинов.