Название: QImage большие файлы Отправлено: deMax от Май 28, 2013, 10:03 painter->drawImage(screenArea.rect(), *image, imgArea.rect());
painter->drawImage(0,0,QImage("./img/1.jpg")); рисует черным цветом (изображение точно не черное), меньшие размеры отображает корректно команда: qDebug()<<image->size()<<QColor (image->pixel(5,5)).lightness(); вывод: QSize(6400, 3200) 151 Рисование в QGLWidget через QPainter. Название: Re: QImage большие файлы Отправлено: xokc от Май 28, 2013, 11:43 А в чём собственно вопрос-то? Или это просто баг репорт?
Название: Re: QImage большие файлы Отправлено: deMax от Май 28, 2013, 13:00 Вопрос в том, как нарисовать картинку больших размеров.
ps. Qt 4.7.4 (из набора Qt_SDK ~1_2_1), Win7 Предположу что под линухом опять все ок будет. Название: Re: QImage большие файлы Отправлено: xokc от Май 28, 2013, 13:07 Можно попробовать, например, копировать нужные данные во временный QPixmap и рисовать уже его.
Название: Re: QImage большие файлы Отправлено: Bepec от Май 28, 2013, 13:08 Тестовый проект с собранным релизом и дллками кидай на файлообменник и давай ссылку. И будет тебе ответ.
Название: Re: QImage большие файлы Отправлено: Igors от Май 28, 2013, 14:04 По нынешним временам до "большого" еще далеко (до 1 Gb все работает везде). Другое дело OpenGL (карта) имеет ограничение на размер текстуры (обычно 8192), Это стоит проверить
Название: Re: QImage большие файлы Отправлено: deMax от Май 29, 2013, 15:44 Тестовый проект с собранным релизом и дллками кидай на файлообменник и давай ссылку. И будет тебе ответ. зачем релиз и библиотеки? у всех же qt стоит.http://rghost.ru/46350884 6400x3200 рисует черным 24000х12000 не загружает 2353х3521 работает Название: Re: QImage большие файлы Отправлено: Bepec от Май 29, 2013, 20:25 Потому что каждая версия Qt имеет свой неповторимый вкус и цвет. И баг или сочетание страшных вещей в одной версии может вызвать ошибку, а в другой нет :)
Название: Re: QImage большие файлы Отправлено: _OLEGator_ от Май 30, 2013, 08:51 Это не баг. QImage не предназначен для работы с такими большими изображениями.
Название: Re: QImage большие файлы Отправлено: xokc от Май 30, 2013, 12:03 Это не баг. QImage не предназначен для работы с такими большими изображениями. Почему бы тогда об этом не упомянуть в документации, ну и, естественно, явным образом реализовать в коде, на уровне хотя-бы адекватного результата QImage::Format или QImage::isNull?Название: Re: QImage большие файлы Отправлено: Авварон от Май 30, 2013, 15:01 А, собственно, почему не предназначен? Тоже вчера столкнулся с тем, что имадж спамит в консоль про невозможность выделить память. Но в это слабо верится, на 64битной-то системе. Кто-нибудь в сорцы глядел?
Название: Re: QImage большие файлы Отправлено: _OLEGator_ от Май 30, 2013, 15:08 Пишут, что 32768x32768 для 16-битного цвета. И что width * height * depth_for_format должно быть меньше INT_MAX.
http://stackoverflow.com/questions/7080052/qimage-qpixmap-size-limitations А так у меня тоже не грузились большие изображения. Но это априори неправильный подход - грузить такие изображения в память, надо либо резать, либо читать блоками. Название: Re: QImage большие файлы Отправлено: Авварон от Май 30, 2013, 15:22 Пишут, что 32768x32768 для 16-битного цвета. И что width * height * depth_for_format должно быть меньше INT_MAX. Вы правы, я таки заглянул в код (ф-ия QImageData::create):http://stackoverflow.com/questions/7080052/qimage-qpixmap-size-limitations А так у меня тоже не грузились большие изображения. Но это априори неправильный подход - грузить такие изображения в память, надо либо резать, либо читать блоками. Код: // sanity check for potential overflows К сожалению, иногда огромные картинки бывают, и невозможность ее загрузить целиком может напрягать. Название: Re: QImage большие файлы Отправлено: Bepec от Май 30, 2013, 15:47 Хм. Зачем вам такую агромадину в память?
Я после пары программ на гигантских массивах данных для себя решил, что все операции должны проводиться с минимумом данных. Нечего грузить память. Название: Re: QImage большие файлы Отправлено: Авварон от Май 30, 2013, 16:00 Хм. Зачем вам такую агромадину в память? Я после пары программ на гигантских массивах данных для себя решил, что все операции должны проводиться с минимумом данных. Нечего грузить память. Ну, всегда можно заммапить кусок памяти. Но, допустим, у вас есть картографические картинки, которые вы хотите батчпроцессить. Открыли файл, применили фильтр, записали, закрыли файл. Как считать "кусок" имаджа я не преставляю (если он не лежит как массив ARGB на диске) не городя велосипеда. Ничего плохого нет в том, что картинка большая - главное, чтобы в память влезла. Название: Re: QImage большие файлы Отправлено: _OLEGator_ от Май 30, 2013, 16:09 А QImageReader?
http://www.prog.org.ru/topic_18847_0.html Название: Re: QImage большие файлы Отправлено: Авварон от Май 30, 2013, 16:38 А QImageReader? http://www.prog.org.ru/topic_18847_0.html Окей, уболтали, когда я писал свои хэнлеры, я не обратил внимание на эту опцию. Название: Re: QImage большие файлы Отправлено: deMax от Май 31, 2013, 08:23 Пишут, что 32768x32768 для 16-битного цвета. И что width * height * depth_for_format должно быть меньше INT_MAX. http://stackoverflow.com/questions/7080052/qimage-qpixmap-size-limitations А так у меня тоже не грузились большие изображения. Но это априори неправильный подход - грузить такие изображения в память, надо либо резать, либо читать блоками. Цитировать 6400x3200 рисует черным 32бита это адресация 4гб, 6400х3200х32 625Мб24000х12000 не загружает 2353х3521 работает |