Задача:
Один раз оптимизировать все изображения на сайте, чтобы потом не тратить ресурсы сервера на их конвертацию «на лету».
Решение:
Будем использовать 3 библиотеки: ImageMagic, JPEGOptim, OptiPNG.
Первыми двумя обрабатываем файлы *.jpg
Устанавливаем необходимые библиотеки
#yum install ImageMagick ImageMagick-devel
Проверяем версию#convert -version
#yum install jpegoptim
#yum install optipng
Оптимизируем
Перемещаемся в нужный родительский каталог командой #cd
.
Проверим размер текущего каталога до компрессии командой #du -h -s
затем ей же посмотрим что получилось после.
Запускать все будем в цикле for, иначе выдаст ошибку, если у нас много файлов.
ImageMagic
#for file in *; do convert $file -quality 85 $file; done
Где:
* — любой файл. Иногда стоит попробовать использовать такие конструкции: */* или *.jpg
-quality 85 — Качество изображения на выходе.
JPEGOptim
#for f in *.jpg; do jpegoptim --strip-all --all-progressive -pt "$f"; done
Он вырежет все лишние мета зоговки из картинок и сделает их прогрессивными.
Далее запускаем его же но уже с *.jpeg вместо *.jpg
Возможные параметры:
–strip-all удаляет комментарии, Exif, IPTC, ICC, XMP
–all-progressive преобразует в прогрессивный jpeg
-p сохранит время создания такими же как у исходного файла
-t покажет итоговый результат оптимизации для нескольких изображений
-m85 устанавливает максимальное сжатие jpeg в 85. Этот параметр влияет на качество изображения!
OptiPNG
#find -type f -iname "*.png" -exec optipng -strip all -o4 {} \;
Возможные параметры:
-strip all удалит всю “лишнюю” информацию из файла
-o4 указывает степень сжатия, от 1 до 7. По умолчанию 2.