На днях понадобилось изменить размеры у небольшой кучки фотографий, которые лежат на хостинге. Перекачивать файлы туда и обратно было лень и трафика жалко (фотки большие по 2-3 мега). Немного подумал и сделал всё с помощью утилиты convert из состава пакета ImageMagick и командной строки:

ls -1 *.jpg | while read file; do convert -size 800x600 $file -resize 800x600 +profile "*" medium/$file; echo $file; done

Пара минут — и содержимое каталога с фотографиями было сконвертировано в подкаталог medium с нужными размерами.
Немного расскажу, что делает команда.
Сначала формируется список файлов (ls -1), затем через конвейер (значок «|») этот список передаётся далее. С помощью цикла while read содержимое списка построчно считывается, обрабатывается утилитой convert и выводится для информации на экран (достаточно важный пункт: всегда полезно знать, что происходит в данный момент). А если дополнить эту строку до полноценного скрипта на shell, то с его помощью можно легко и быстро создавать целые фотоальбомы.

Оставить комментарий