8

смотреть и не могу найти идеальный.
у меня есть 100 гигабайт последовательности изображений 4K для обработки.

нашел imagizer2 на sourceforge. многопоточный, но не 64-битный (имеет значение?).
Я думаю, что самый быстрый будет использовать библиотеку Intel IPP Image Core.

Я нахожусь на Windows, но если какой-то сумасшедший быстрый вариант Linux доступен, я буду рассматривать (тесты?).

включены тесты, которые я запускал на тестовой партии из 100 файлов по 5 КБ (4,3 МБ)

6 ответов6

4

Не уверен, как он будет сравниваться в бенчмарке, но вы можете попробовать ImageMagick, используя инструменты "convert" или "mogrify". Похоже, что он хорошо использует 64-битные, количество ядер и тому подобное.
Все, что я знаю, это то, что он действительно мощный и полнофункциональный. Я могу изменить размер на месте или добавить параметры, такие как фильтры выборки и преобразования типов файлов.

mogrify -format jpg -filter Cubic -resize 20%x20% rgb-?.png
4

Проверьте эти программы:

  1. Batch Picture Resizer.
  2. Image Resizer.

Изменение размера изображений с помощью пакетных файлов: Batch Resize.

4

Я использую IrfanView для преобразования 1 ГБ файлов формата TIFF в файлы меньшего размера GIF каждую ночь. Занимает всего несколько минут.

Пример команды woulöd выглядит следующим образом (я использую это для преобразования изображений для отображения моих цифровых фотографий)

"C:\Program Files (x86)\IrfanView\i_view32.exe" "C:\Pictures\Best\*.jpg" /resample=(720,540) /aspectratio /convert="C:\Temp\miniDisp\*_rsz.jpg"

Это изменяет размер всех файлов JPG с C:\Picutres\Best\ до 720x540 и сохраняет их как C:\ Temp\ miniDisp\ OrgFilename _rsz.jpg.

Коммутаторы командной строки, которые понимает IrfanView, можно найти в интерактивной справке (см. Индекс - Параметры командной строки) или онлайн здесь.

0

Параллель может использоваться для ускорения пакетного преобразования с помощью imagemagick.

Сократите каждый * .jpg в каталоге так, чтобы ни высота, ни ширина не превышали 1080 пикселей:

parallel mogrify "{}" -resize 1080x1080 ::: *.jpg

Используя команду convert для создания отдельных файлов меньшего размера:

parallel convert "{}" -resize 1080x1080 "{.}-small.jpg" ::: *.jpg

Обратите внимание, что это относится к параллельной GNU, а не к версии, упакованной в moreutils Debian, которая имеет другой синтаксис и меньше функций. См. Справочную страницу для получения дополнительной информации о параллели.

0

Випс быстрее, для меня:

$ header sample.jpg 
sample.jpg: 8888x5000 uchar, 3 bands, srgb, jpegload
$ for i in {1..100}; do cp sample.jpg t$i.jpg; done
$ time vipsthumbnail --size 1280 t*
real  0m14.672s
user  0m17.631s
sys   0m0.988s

Скорость ограничена кодированием / декодированием jpeg, которое (благодаря libjpeg) является однопоточным. Вы можете сделать это немного быстрее, если запустите несколько vipsthumbnail параллельно:

$ mkdir a b c d e
$ for j in a b c d e; do for i in {1..20}; do cp sample.jpg $j/t$i.jpg; done; done
$ time (for i in a b c d e; do vipsthumbnail --size 1280 $i/t* & done; wait)
real  0m5.258s
user  0m18.557s
sys   0m0.891s

Это на IMAC 2012 года, но есть и двоичные файлы Windows.

http://www.vips.ecs.soton.ac.uk/supported/current/

0

Отличная статистика - спасибо за ссылки. Возможно, слишком поздно, но вы не упомянули результаты ImageResizer (из Codeplex), предложенные с Batch Picture Resizer выше. (не то же самое, что упомянутое "дерьмо"). Я начал использовать его после того, как MS перестала обновлять свой Image Resizer. Но, конечно, нет необходимости в скорости и объеме - просто чистые и быстрые изменения размеров для вложений электронной почты и тому подобное.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .