Какое программное обеспечение я могу использовать для периодического массового изменения размера изображения?

У меня очень большая коллекция изображений в куче вложенных папок.

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

Это позволит мне носить с собой все мои изображения в более низком разрешении на моих портативных устройствах.

Любые предложения по инструменту, который я мог бы запланировать (в идеале я хотел бы, чтобы он обрабатывал каждое изображение только один раз)?

какие операционные системы вас интересуют?
@Rowland, я использую и Windows, и Linux ... так что все, что не относится к Mac, должно работать.
Где хранятся ваши фотографии и где вам, вероятно, понадобится конвертация? Винда или линукс? Это имело бы небольшую разницу. Можно ли удалить все существующие изображения перед созданием новых? Должен ли он создавать новую структуру папок по мере ее дублирования?
@drchenstern ... я хотел бы избежать двойной обработки файла
~ Это только из-за желания сократить время обработки? Я думаю, что использование какой-либо системы на основе Linux будет работать лучше в долгосрочной перспективе из-за действий по манипулированию изображениями в командной строке, которые уже написаны для систем Linux.

Ответы (8)

ImageMagick будет очевидной возможностью для самого масштабирования. Однако планирование поиска новых изображений и создание масштабированной копии каждого из них не встроено в него. Однако в большинстве ОС есть возможность планирования, которая может его запустить. Как программист, я, вероятно, подумал бы об использовании make-файла для запуска преобразования только тогда, когда цель не существует. Хотя большинство нормальных людей сочли бы это действительно странным способом делать что-то...

У меня возник соблазн написать для этого рубиновый скрипт... но если что-то уже существует, я бы предпочел просто использовать это
@Sam Saffron ~ Есть ли причина для рубинового сценария? Будет ли это размещено на веб-сайте? Я думаю, что это то, что лучше всего запускать через cron ...

В Windows Irfanview — еще один бесплатный просмотрщик изображений, который имеет хороший режим пакетного изменения размера / повторной выборки.

С качественной точки зрения вас должны интересовать алгоритмы передискретизации, которые использует выбранный вами инструмент. Irfanview обеспечивает контроль и выбор целого ряда высококачественных алгоритмов передискретизации, а более поздние версии также обеспечивают контроль над повышением резкости ваших передискретизированных изображений.

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

Для ручного использования пакет Irfanview работает на Windows, и вы можете использовать gThumb на Linux.

FastStone бесплатный и простой, и он может немного больше, чем просто изменение размера.

http://www.faststone.org/

+1 за FastStone, отличный просмотрщик изображений и очень полное изменение размера изображения.

XnView , вероятно, является ответом, если вы либо используете планировщик, либо запускаете его вручную на регулярной основе. Лично я использую свой собственный скрипт, который запускает nconvert, чтобы сделать именно это. Nconvert поставляется с XnView, а также доступен отдельно.

XnView чрезвычайно мощен для пакетного преобразования, он даже может применять преобразования во время процесса. Самое главное, после того, как вы настроили преобразование между определенными каталогами, вы можете попросить его вывести пакетный файл, который выполняет такое же преобразование. Это очень удобно, если вы хотите добавить это в планировщик задач или задание cron.

Picasa позволит вам изменять размер фотографий в пакетном режиме, и это бесплатно . Вы можете выбрать несколько изображений для экспорта, а затем выбрать нужные размеры и местоположение. Затем он сохранит копию всех выбранных вами изображений в новом размере. Местом может быть другая папка или даже Интернет.

http://picasa.google.com/

Я не уверен, что он предлагает планирование, но накладные расходы на выполнение вышеуказанного процесса очень малы — на самом деле это всего лишь несколько кликов.

У него есть и другие замечательные функции, которые вы можете найти полезными, которые определенно стоит проверить.

Я решал точно такую ​​же проблему (имея копию моих изображений с низким разрешением для ноутбука) и написал скрипт Python под названием thumbtree . По сути, он создает копию каталога с уменьшенной версией всех файлов. Он использует ImageMagick для изменения размера и проверяет временные метки, чтобы масштабировать только те файлы, которые изменились с момента создания копии с низким разрешением.

Я обычно использую ImageMagick или GraphicsMagick (меньше возможностей, но быстрее, не всегда тот же результат). В Linux для планирования этой обработки нужно написать сценарий и поместить его в файл crontab. Чтобы сократить время запуска, вы можете выбрать только новые фотографии с расширением find. Если вам нужна помощь в написании такого скрипта, обращайтесь. Я могу помочь с этим.

Как пользователь Linux, я также использую Nautilus Image Converter . В Ubuntu/Debian вы можете установить его с помощью nautilus-image-converterpackage. Он добавляет параметр изменения размера в контекстное меню файлового менеджера. Я предполагаю, что он использует ImageMagick внутри.

Некоторые другие варианты Linux:

  • Gimp Batch Processor (плагин для массовой обработки в Gimp, имеет графический пользовательский интерфейс, часть gimp-plugin-registryпакета на Ubuntu) (см. также мини-учебник )
  • Пакетная очередь в digiKam (довольно продвинутый инструмент для массовой обработки, с графическим интерфейсом, приятно, если вы уже являетесь пользователем digiKam)
  • Пакетный режим Gimp (чрезвычайно гибкий, но требует некоторого программирования в Scheme; подходит для обработки по расписанию)

У меня были очень хорошие результаты с digikam и плагином изменения размера в Ubuntu. http://www.digikam.org/plugins.html#p5