Автоматизация рутины в OS X. Урок 1. Пакетная обработка изображений

Автоматизация рутины в OS X. Урок 1. Пакетная обработка изображений

В процессе работы над сайтом/статьей/курсовой/презентацией иногда приходится сталкиваться с задачей приведения большего числа картинок к единому размеру и формату. Эта весьма скучная и однообразная работа, если делать ее руками с помощью графического редактора. Но если доверить ее командной строке, то она магическим образом превращается в удивительно легкую и приятную.

Что мы научимся делать?

Менять размер картинок и конвертировать их из одного формата в другой с помощью OS X Terminal.

Как открыть Terminal?

В Finder открыть папку Macintosh HD -> Программы -> Утилиты и найти в ней иконку приложения Terminal.
Снимок экрана 2015-10-12 в 20.19.32
В результате на экране должно появиться такое окно.

Снимок экрана 2015-10-12 в 20.23.40

Как сделать чтобы окно терминала выглядело как в фильмах про хакеров?

  • Открыть «Настройки».
    Снимок экрана 2015-10-12 в 20.26.46
  • На панели настроек выбрать вкладку «Профили» и два раза щелкнуть на теме «Homebrew».Снимок экрана 2015-10-12 в 20.27.27

Как изменить размер картинки?

Обработка картинок осуществляется с помощью утилиты sips. Изменение размера изображений осуществляется с помощью команды -z. Пример:
sips -z 640 430 example.png
Выполнение этой команды сделает высоту картинки example.png равной 640 пикселям, а ширину 430. Обратите внимание на порядок указания значений в команде. Сначала пишется высота, а потом ширина.

А что делать если у изображения нужно изменить размер только одного измерения? Здесь пригодятся команды --resampleHeight и --resampleWidth.

sips --resampleHeight 640 example.png

Вторая сторона изменит размер в соответствии с исходными пропорциями изображения.

Как изменить размер всех картинок в текущей папке?

Затевать работу с «Терминалом» ради обработки одного изображения нерационально. То ли дело когда нужно подравнять ширину у сотни-другой картинок. Их нужно сложить в папку из которой запущен Терминал и выполнить следующую команду:

sips --resampleHeight 640 *.png

Это команда изменит высоту у всех картинок формата .png в текущей папке. Если нет желания копировать изображения в корневую папку пользователя, которая по умолчанию является активной, то можно перейти в папку, в которой лежат картинки с помощью команды cd:

cd img

А что делать если изображения, которые надо обработать хранятся в файлах разных форматов? Их можно привести к единому формату.

Как конвертировать картинку из одного формата в другой?

Это делается с помощью все той же утилиты sips и команды -s, для выполнения которой надо указать формат, имя файла для конвертации и имя для выходного файла.

sips -s format png example.jpg --out example.png

Как изменить формат всех картинок в определенной папке?

Для того чтобы изменить формат всех изображений в заданной директории необходимо выполнить нижеприведенную команду для всех имеющихся в папке форматов изображений:

for i in *.jpg; do sips -s format png $i --out forSite/$i.png;done

Здесь мы добавили немного bash-скриптинга. Этот код поочередно перебирает все файлы формата .jpg в текущей папке, конвертирует png и складывает в папку forSite.

Другие статьи серии «Автоматизация рутины в OS X»:

Урок 2. Генерация слайдов для презентаций.


✅ Подписывайтесь на нас в Telegram, ВКонтакте, и Яндекс.Дзен.



Добавить комментарий