crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Как быстро создавать миниатюры изображений
BagmutA
  опции профиля:
сообщение 20.4.2011, 11:20
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 27
Регистрация: 13.4.2011
Пользователь №: 2599

Спасибо сказали: 0 раз(а)




Репутация:   0  


Созаю миниатюры изображений:
QImage im;
    im.load(filename);
    im = im.scaled(icoWidth, icoHeight, Qt::KeepAspectRatio, Qt::SmoothTransformation);            
    im.save( filename_s, "JPG", 95);

Самый медленый этап: im.load(filename); -- занимает 80-90% процетов времени на создание миниатюр.
В общей сложности получается раза в 2-3 медленее чем это происходит в любом просмотрщике изображений(например Gwenview).
Подскажите, пожалуйста, как можно ускорить этот процесс, как создавать миниатюры не загружая полностью изображение.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
wiz29
  опции профиля:
сообщение 20.4.2011, 13:54
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

Спасибо сказали: 94 раз(а)




Репутация:   12  


Тогда нужно использовать конкретные библиотеки для чтения файлов графических форматов, например в JPEG могут хранится миниатюры, но не всегда они есть, поэтому придется загружать файл целиком (в случае когда нет миниатюры в файле). Это сэкономит время лишь в ряде случаев и не для всех типов форматов.

Если время создания миниатюр критично (например известно что они должны создаваться в основном для файлов фоток, в них как правило хранятся миниатюры) то используй libJPEG библиотеку для работы с jpeg'ом. в api libjpeg есть функции по загрузке миниатюр. Есть более общая либа, freeImage, она объединяет в себе несколько библиотек для чтения нескольких форматов файлов, на сколько универсально ее api не могу сказать, в моих проектах используются конкретные библиотеки для конкретных форматов.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.4.2024, 10:26