Массовый ресайз изображений в поддиректориях

Всем доброй ночи!

Наверняка многие пользуются замечательной утилитой mogrify из пакета Imagemagick для массового ресайза картинок в директории.

Действительно, это дело можно довольно просто сделать просто набрав в консоли:Copy

mogrify -resize 800x600 \*.jpg

И в директории из которой запущена программа вс файлы с расширением jpg подвергнутся ресайзу до разрешения 800×600. Все довольно просто и быстро. Сюда стоит добавить лишь ключ -quality xx позволяющий выставить соответствующие параметры качества картинки для оптимального размера конечного файла.

Чтобы было и качественно и места занимало немного достаточно сконвертить все командой:Copy

mogrify -resize 800x600 -quality 75 \*.jpg

И картинки отресайзятся еще и с нужным качеством. Но что делать когда файлов изображений много и они раскиданы по куче поддиректорий? Ну не выполнять же каждый раз эту команду в новой папке, это мартышкин труд, а не unix-way получается =)

Столкнувшись сегодня с этой проблемой на просторах интернетов откопал я команду которая ресайзит картинки в поддиректориях. Оказалось что самый простой вариант это симбиоз утилит find и mogrify:Copy

find folder/ -name '\*.jpg' -exec mogrify -resize 800x600 -quality 75 {} \;

Утилита find сканирует директорию folder и поддиректории на предмет наличия файлов с расширением .jpg и затем передает список файлов утилите mogrify которая уже делает свое дело. Вот так ребятки, все просто и понятно! Удачи!

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *