Поделиться:

Как пакетно конвертировать изображения в WebP на Mac с помощью Quick Action

Мы создадим в Automator Quick Action, которая использует консольную утилиту cwebp для преобразования файлов в формат WebP. В итоге в контекстном меню Finder появится пункт «Convert to WebP», который можно применять к одному или нескольким изображениям.

  1. Установите HomeBrew и cwebp, если еще этого не сделали (инструкции по установке Homebrew можно найти в сети, как и для cwebp).
  2. Откройте Automator на Mac.
  3. Создайте новый «Quick Action».
  4. Вверху рабочей области, где написано «Workflow receives current», выберите «image files», а в поле «in» укажите «Finder».
  5. Теперь в левой панели Automator выберите «Utilities» в библиотеке, затем перетащите действие «Run Shell Script» в правую рабочую область.
  6. В действии «Run Shell Script» найдите опцию «Pass input» и выберите «as arguments».
  7. Теперь введите следующий код* точно как есть:
  8. for FILE in "$@"
    do
    /opt/homebrew/bin/cwebp -q 85 "$FILE" -o "${FILE%.*}.webp"
    done

    Ваш рабочий процесс Quick Action теперь должен выглядеть так:

  9. Сохраните Quick Action через Файл > Сохранить, назовите её, например, «Convert to WebP» (именно это название появится в контекстном меню Finder).
  10. Перейдите в Finder на Mac, найдите любой файл изображения или группу файлов, щёлкните правой кнопкой мыши и выберите «Convert to WebP».

Сконвертированные файлы 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 или альтернативный подход — делитесь в комментариях!