Наличие файла изображения буферизует в памяти, что самый быстрый путь состоит в том, чтобы создать свою миниатюру?

Grrr. Единственная причина этой функции для существования состоит в том, чтобы использовать в своих интересах инструкцию ЦП для этого, и они даже не сделали этого!

7
задан hamid reza 22 August 2009 в 15:23
поделиться

2 ответа

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

Если вы можете найти Источники его можно найти в EPEG из проекта Enlightenment. Он делает именно то, что вы ищете, с файлами JPEG, полностью без декодирования или распаковки изображения. Исходный код был бы очень поучительным.

Для других форматов изображений это не так просто - вам нужно будет декодировать и визуализировать изображение в буфер памяти, а затем выполнить собственное масштабирование. В этом могут помочь библиотеки CImg и boost :: GIL.

7
ответ дан 7 December 2019 в 01:24
поделиться

Насколько я понимаю, проблема в том, что преобразование изображения в миниатюру занимает больше времени, чем получение изображения, правильно?

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

3
ответ дан 7 December 2019 в 01:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: