Автоматизація компресії зображень
По компресії є кілька методів. Зняв відео, а нижче опис:
1. ImageOptim
На Мак є програма ImageOptim. Пачкою оптимізує будь-яку кількість картинок. Працює на алгоритмі PNGQuant і також доступний, як програма для терміналу.
2. Terminal: optipng, jpegopti, gifsicle, svgo
Є кілька програм оптимізації зображень для термінала:
а) Для PNG є PNGQuant, pngcrush та optipng. Останній також вміє конвертувати BMP, GIF, TIFF у PNG, сайт. На його прикладі і подивимось.
Працює так: оптимізує всі файли PNG у теці
optipng *.png
Або ще отакий :
find . -name '*.png' | xargs optipng -nc -nb -o7 -full
А отак рекурсивно шукає та оптимізує PNG у всіх підтеках:
find . -iname "*.png" -exec optipng -o7 {} \;
б) jpegopti для JPG. Github
Працює так (-m70 — відсоток стискання):
jpegoptim -m70 img-name
в) gifsicle для GIF. Сайт. Для одного зображення:
gifsicle --batch -V -O2 image-name.gif
Так само рекурсивно шукає та оптимізує GIF у всіх підтеках:
find . -iname "*.gif" -exec gifsicle --batch -V -O2 {} \;
г) svgo для SVG. Працює так для всіх файлів:
svgo *.svg
Інсталюються всі вони через Homebrew:
brew install optipng
3.1 Automator: quick action
Попередні команди збираємо у окремий bash-скріпт, сценарій для автоматора та сценарій на теку.
Сценарій будується так:
- отримання файлів (у даному випадку всі виділені)
- встановлення хз як змінних для скрипта (Set Value та Get Value)
- запуск bash-скрипта на виділених файлах (Run Shell Script, з налаштуваннями Shell /bin/bash та Pass Input: as arguments)
Завантажити цей сценарій (попередньо треба встановити термінальні команди optipng, jpegopti, pngcrush, svgo).
3.2 Automator: folder action
А на теку попередній сценарій підлаштовується просто з відключеним першим кроком. А на теку попередній сценарій підлаштовується просто з відключеним першим кроком. Завантажити скрипт для теки.
Originally published at https://blog.alexkolodko.com and telegram channel https://t.me/alexkolodko1