Russian Qt Forum
Ноябрь 01, 2024, 09:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Как быстро создавать миниатюры изображений  (Прочитано 7868 раз)
BagmutA
Гость
« Ответ #15 : Апрель 20, 2011, 17:07 »

Так QIcon уже уменьшен до размера 200х200.
так вы же сами сказали, что 80% времени тратится на загрузку файла. причём тут уменьшение?

Есть предположение что в QIcon оптимизировано создание миниатюр(я это проверял без сохранения иконки), а вот собствено чтобы проверить действительно ли это так надо организовать сохранение QIcon реализованое в моем потоке QThread. В замешательстве
Записан
BagmutA
Гость
« Ответ #16 : Апрель 23, 2011, 11:09 »

Проблема решена.
Может кому то пригодится:
Код
C++ (Qt)
int icoWidth = 200;
int icoHeight = 200;
   QImageReader imageReader(MainWindow::currentDir + MainWindow::listImage.at(i));
 
   QSize size;
   int image_width;
   int image_height;
 
   if (imageReader.supportsOption(QImageIOHandler::Size))
   {
       size = imageReader.size();
       image_width = size.width();
       image_height = size.height();
   }
 
   double ratio = (double)image_width / (double)image_height;
   if (ratio >= 1)
   {
image_width = icoWidth;
image_height = image_width / ratio;
   }
   else
   {
    image_height = icoHeight;
    image_width = image_height * ratio;
   }
 
   imageReader.setScaledSize(QSize(image_width, image_height));
   QImage image = imageReader.read();
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.065 секунд. Запросов: 21.