В недрах macOS спрятан sips — Scriptable Image Processing System — инструмент командной строки, который годами является частью ОС, и о котором большинство пользователей Mac никогда не слышали, не говоря уже о том, чтобы использовать. Он умеет изменять размер, поворачивать и конвертировать форматы изображений полностью из терминала без установки сторонних программ. Для целей скриптинга это по-настоящему полезный инструмент. Для повседневной пакетной работы у него есть реальные неудобства.
В чём sips хорош
Одна команда вроде sips -s format jpeg input.png --out output.jpg конвертирует файл без установки чего-либо — она уже есть на каждом Mac. Обёрнутая в цикл shell, она может обработать целую папку: for f in *.png; do sips -s format jpeg "$f" --out "${f%.png}.jpg"; done. Если вы уверенно работаете в терминале и вам нужен быстрый разовый скрипт, sips справляется с задачей без каких-либо затрат на настройку.
Где становится неудобно
Синтаксис неинтуитивен, и его легко перепутать — флаги вроде -Z для изменения размера с сохранением соотношения сторон против --resampleWidth для точных размеров — это не то, что большинство людей помнит от использования к использованию. Нет визуальной очереди, нет индикации прогресса кроме вывода терминала, и нет способа объединить изменение размера, обрезку и водяной знак без написания более сложного скрипта. А если вы не уверены в циклах shell, конвертация папки вместо одного файла становится отдельным маленьким исследовательским проектом.
Когда побеждает GUI-инструмент
Если пакетная конвертация — регулярная часть вашего рабочего процесса, а не редкая скриптовая задача, графический инструмент вроде Mediasmith полностью убирает синтаксис. Перетащите файлы в очередь, задайте формат, изменение размера, обрезку и водяной знак как визуальные опции — и запустите конвертацию.
Честное сравнение
sips бесплатен, предустановлен и идеален для встраивания в более крупный автоматизированный процесс, если вы уже пишете shell-скрипты по другим причинам. GUI-конвертер быстрее в использовании для повседневных разовых и пакетных задач, особенно всего, что связано с цепочками изменения размера, обрезки или водяного знака, и не требует запоминания синтаксиса команд с промежутками в месяцы между использованиями.
Ни один вариант не является универсально лучше — всё зависит от того, строите ли вы автоматизированный конвейер или просто хотите конвертировать несколько файлов сегодня.