Я искал метод Automator, в соответствии с которым размер файла изображения должен быть изменен (уменьшена высота и ширина) до определенного размера файла (в байтах) или близкой к нижней границе этого размера файла.
Это было бы очень полезно для быстрых действий MacOS Mojave, так как многие загрузки на сайт не принимают, например, полноразмерные изображения iPhone.
Моя интуиция заключается в том, что это довольно сложная проблема, которую Automator может решить даже с помощью сценариев bash и т. Д. Обычно даже такие приложения, как Adobe Photoshop, не способны предсказать окончательный размер файла после сжатия файла в JPG или PNG, и т. д. Возможно, он может постепенно уменьшать размеры изображения, пока не станет меньше максимального размера файла. Проще всего было бы, если бы для этого была полезная программа.
Поэтому я подумал спросить:
- а) это выполнимо, и
- б) Как это будет сделано?
источник
Ответы:
Меня немного смущает подход к правильному сжатию изображений, с которыми вы хотите работать. Как уже упоминалось, есть
sips
рабочий пример, основанный на перетаскивании каталога изображений и пошаговом просмотре списка с изменением размера, если ширина не 800px:Это всего лишь пример того, что вы можете сделать с шириной. Как упомянуто в комментарии, вы можете проверить, какая длина больше ширины или высоты и изменить размер оттуда. Если вы делаете
man sips
в терминале, вы можете получить все виды информации. Приведенный выше код использует tail и cut для обрезки возврата. Изменение размера сделано с--resampleWidth
. Вы можете пересчитать на основе высоты с--resampleHeight
.Что касается аспекта сжатия, если это PNG, вы можете использовать Optipng . Если вы хотите что-то, что вы можете запустить с PNG и JPG, вы можете использовать Trimage . AppleScript / Automater также может быть встроен в утилиту сжатия. Вам просто нужно позвонить из
bin
проверки, если сжатие существует:Выше проверяется на OptiPNG. Если вы хотите проверить, установлено ли что-то с HomeBrew, вы можете использовать аналогичную команду
/usr/local/Cellar
.Все вышеперечисленное может быть полностью сделано в скрипте оболочки. Это зависит только от того, что вы хотите и как вы хотите выполнить код.
источник
quoted form of
при работе с путями к файлам. Это позволит избежать проблем с пробелами, именами файлов, содержащими кавычки, и escape-символами.Да, с помощью сценария оболочки
Вы можете написать сценарий оболочки, чтобы делать то, что вы хотите, и обернуть это в рабочий процесс Automator.
Только в Automator это невозможно. В Automator отсутствует логика ветвления, необходимая для определения момента остановки.
Я не знаю ни о каких ярлыках, кроме как изменять размеры и сжимать изображения разного размера, пока они не достигнут вашей цели.
Это можно сделать с помощью встроенных в MacOS инструментов, таких как
sips
изменение размера изображения иbash
логика сценариев.См. Уменьшение размера файла изображения до определенного размера для тесно связанного вопроса.
источник