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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Image preview  (Прочитано 6865 раз)
OKTA
Гость
« : Апрель 14, 2014, 10:48 »

Товарищи, посоветуйте пожалуйста.
Имею картинку вес которой может быть > 100 Mb. Как быстро и не затратно получить ее уменьшенную копию? Через QImage очень затратно, а как происходит в той же винде, когда вместо файлов  в проводнике показываются маленькие превьюшки, я не догоняю  В замешательстве
« Последнее редактирование: Апрель 14, 2014, 11:39 от OKTA » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #1 : Апрель 14, 2014, 10:52 »

Товарищи, посоветуйте пожалуйста.
Имею картинку вес которой может быть > 100 Mb. Как быстро и не затратно получить ее уменьшенную копию? Через QImage очень затратно, а как происходит в той же винде, когда вместо файлов  в проводнике показываются маленькие превьюшки, я не догоняю  В замешательстве
По моему венда в фоне готовит превьюшки (загружает весь файл и сохраняет его уменьшенную копию) и показывает в проводнике уже их.
Записан
vizir.vs
Гость
« Ответ #2 : Апрель 14, 2014, 10:56 »

У меня была схожая задача. Было много объемных рисунков, превью которых надо было показывать. С предварительно запускал программку, которая делала уменьшенные превьюшки и отображала их. Когда я делал это на лету получалось долго и с тормозами.
Записан
OKTA
Гость
« Ответ #3 : Апрель 14, 2014, 10:58 »

У меня была схожая задача. Было много объемных рисунков, превью которых надо было показывать. С предварительно запускал программку, которая делала уменьшенные превьюшки и отображала их. Когда я делал это на лету получалось долго и с тормозами.

А превьюшки делал с помощью QImage, сохраняя в  наихудшем качестве или каким-то другим способом? У меня предварительно не получится - надо на лету именно.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #4 : Апрель 14, 2014, 11:00 »

А превьюшки делал с помощью QImage, сохраняя в  наихудшем качестве или каким-то другим способом?
Можно с помощью QImage. Загрузил, scale, сохранил.
Записан
OKTA
Гость
« Ответ #5 : Апрель 14, 2014, 11:13 »

Да, так и буду делать, спасибо!
Scaled работает быстрее, нежели если делать через сохранение в байт-эррэй с ухудшением качества и последующей загрузкой из этого же байт-эррэя.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #6 : Апрель 14, 2014, 16:52 »

По моему венда в фоне готовит превьюшки (загружает весь файл и сохраняет его уменьшенную копию) и показывает в проводнике уже их.

Именно, и хранит превьюшки в Thumbs.db.
Записан
Kolobok
Гость
« Ответ #7 : Апрель 16, 2014, 10:58 »

Если формат поддерживает скалирование (QImageIOHandler::ScaledSize) то QImageReader будет быстрее, особенно на больших картинках.

Код:
    QImage image;
    QImageReader imageReader(file);

    imageReader.setScaledSize(QSize(...));
    image = imageReader.read();
Записан
OKTA
Гость
« Ответ #8 : Апрель 16, 2014, 11:19 »

Странно, может что-то не так делал, но на картинке в 100Мб он медленнее, да и еще после передачи изображения в QImage, оно на столько заскейлилось, что пиксели повылеазали  Смеющийся Хотя без него при том же скейле с QImage все ок  Непонимающий
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #9 : Апрель 18, 2014, 14:18 »

Я бы посмотрел на что то такое(погуглил бы):
Python, C and C++ efficiency on JPG thumbnail creation http://www.rkblog.rk.edu.pl/w/p/python-c-and-c-efficiency-jpg-thumbnail-creation

Если действительно быстро надо, для создания предварительного просмотра можно не загружать всю картинку, а считать только определенные байты.
Записан
OKTA
Гость
« Ответ #10 : Апрель 18, 2014, 14:42 »

Какие-то странные там тесты - картинку в 1.3. Mb конвертить за 4 секунды?  Непонимающий
Qt через
Код:
QImage img;
    img.load(path);
    img.scaledToHeight(50);
картинку в 100 Mb за пол секунды шлёпает.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #11 : Апрель 18, 2014, 16:16 »

Какие-то странные там тесты - картинку в 1.3. Mb конвертить за 4 секунды?  Непонимающий

подозреваю запуск на микроконтроллере
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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