Оптимизируем картинки

Алексей Будагов,

Как уменьшить размеры слишком больших картинок и сжимать остальные без потерь? Нам понадобятся плагины: imagemagick, jpegoptim и optipng

Устанавливаем плагины (centos)
yum -y install jpegoptim optipng ImageMagick

Далее переходим в папку с картинками (например upload) и выполняем команды:

Уменьшаем слишком большие файлы (больше 2000px) Осторожно! Перезаписывает существующие файлы.

find -name *.jpg -exec mogrify -resize '2000x>' '{}' \;

Сжатие без потерь:

find -name *.jpg -exec jpegoptim --all-progressive --strip-all -t '{}' \;
find -name *.png -exec optipng -o3 '{}' \;

Автоматизируем оптимизацию, повесив скрипт на cron. Создаем файлик img-optim.sh в /home/bitrix и кладем в него наши команды с небольшим изменением. Команда find будет искать только те файлы которые были созданы/изменены в течение дня. Т.ч. заранее необходимо запустить вручную команду для оптимизации всех картинок, а дальше уже добавлять обработчик на крон.

#!/bin/bash

find /home/bitrix -name *.jpg -ctime -1 -exec jpegoptim --all-progressive --strip-all -t '{}' \;
find /home/bitrix -name *.png -ctime -1 -exec optipng -o3 '{}' \;

Добавляем в крон crontab -e

0 0 * * * /home/bitrix/img-optim.sh >/dev/null 2>&1
Опубликовано 20 Декабря 2016 | Обновлено 25 Февраля 2017
разработчику, производительность

Возврат к списку

Комментарии