Как пакетно конвертировать изображения в WebP на Mac с помощью Quick Action
Мы создадим в Automator Quick Action, которая использует консольную утилиту cwebp для преобразования файлов в формат WebP. В итоге в контекстном меню Finder появится пункт «Convert to WebP», который можно применять к одному или нескольким изображениям.
- Установите HomeBrew и cwebp, если еще этого не сделали (инструкции по установке Homebrew можно найти в сети, как и для cwebp).
- Откройте Automator на Mac.
- Создайте новый «Quick Action».
- Вверху рабочей области, где написано «Workflow receives current», выберите «image files», а в поле «in» укажите «Finder».
- Теперь в левой панели Automator выберите «Utilities» в библиотеке, затем перетащите действие «Run Shell Script» в правую рабочую область.
- В действии «Run Shell Script» найдите опцию «Pass input» и выберите «as arguments».
- Теперь введите следующий код* точно как есть:
- Сохраните Quick Action через Файл > Сохранить, назовите её, например, «Convert to WebP» (именно это название появится в контекстном меню Finder).
- Перейдите в Finder на Mac, найдите любой файл изображения или группу файлов, щёлкните правой кнопкой мыши и выберите «Convert to WebP».


for FILE in "$@"
do
/opt/homebrew/bin/cwebp -q 85 "$FILE" -o "${FILE%.*}.webp"
done
Ваш рабочий процесс Quick Action теперь должен выглядеть так:

Сконвертированные файлы WebP появятся в той же папке с теми же именами, но с расширением .webp.
С помощью созданного Quick Action «Convert to WebP» можно конвертировать в WebP как один файл, так и несколько выбранных изображений оптом.

* Несколько замечаний об этом скрипте, которые можно изменить под свои нужды:
- Путь к cwebp указан для установки через Homebrew. Если вы ставили cwebp вручную, он, скорее всего, находится в /usr/bin — тогда нужно поправить путь.
- Параметр качества -q сейчас установлен на 85, но можно задать любое значение от 1 до 100 (чем выше, тем лучше качество, но меньше сжатие).
Повторюсь, этот метод работает и для одиночного файла, и для пакетного преобразования множества изображений в WebP.

Учитывая растущую популярность WebP и то, что в macOS уже есть встроенная возможность конвертировать WebP в JPG, открывать такие файлы в Preview и сохранять как JPEG (даже пакетно!), логично ожидать, что в будущих версиях системы появится и обратная функция — сохранение и прямая конвертация в WebP. Если и когда это случится, этот Quick Action и ручная установка cwebp через HomeBrew станут не нужны. Но пока что без них не обойтись.
Для тех, кто не в теме: WebP — это формат изображений от Google, который задуман как эффективный и универсальный, поддерживающий статичные картинки, анимацию, а также lossy- и lossless-сжатие. Утилита cwebp, которую мы здесь используем для пакетной конвертации, — это официальный кодировщик WebP от Google (подробнее о нём можно почитать здесь, если интересно). Скрипт, выполняющий фоновое преобразование и сжатие, — это модифицированная версия решения, созданного Джейем Холтслендером (оригинал был здесь). Ну а Homebrew — это очень популярный менеджер пакетов для командной строки на Mac, который позволяет легко устанавливать тысячи консольных утилит, включая cwebp, без необходимости компилировать их самостоятельно.
Если у вас есть свой любимый способ пакетной конвертации изображений в WebP на Mac или альтернативный подход — делитесь в комментариях!