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).
Подскажите, пожалуйста, как можно ускорить этот процесс, как создавать миниатюры не загружая полностью изображение.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
BagmutA
  опции профиля:
сообщение 20.4.2011, 15:23
Сообщение #2


Студент
*

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

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




Репутация:   0  


Ну я же говорю, что в 2-3 раза медленне нежели в других просмотрщиках.

Есть идея использовать QIcon:
        QImage im;                    
    QIcon ico;
    QSize size(200, 200);
        ico.addFile(MainWindow::currentDir + MainWindow::listImage.at(i), size);
        im = ico.pixmap(size).toImage();
        im.save( MainWindow::currentDir + ".prev/" + MainWindow::listName.at(i), "JPG", 95);

Но проблема в том, что в QThread небезопасно использовать QPixmap, пишет:QPixmap: It is not safe to use pixmaps outside the GUI thread. И соответственно не сохраняется миниатюра.
Как можно преобразовать QIcon непосредственно в QImage или хотя бы без промежуточного использования QPixmap?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 28.3.2024, 15:48