среда, 30 мая 2018 г.

Оптимизация изображений для сайта – JPEGoptim и OptiPNG

Рассказ про то, как быстро оптимизировать вес изображений без потери качества используя только консоль.

JPEGoptim оптимизация JPG

sudo apt-get install jpegoptim
JPEGoptim можно использовать со следующими ключами:
  • –strip-all удаляет комментарии, Exif, IPTC, ICC, XMP
  • –all-progressive преобразует в прогрессивный jpeg
  • -p сохранит время создания такими же как у исходного файла
  • -t покажет итоговый результат оптимизации для нескольких изображений
  • -m85 устанавливает максимальное сжатие jpeg в 85. Этот параметр влияет на качество изображения!
JPG файлы будем оптимизировать и преобразовывать в прогрессивный вид при помощи JPEGoptim. Прогрессивный jpeg, это когда при загрузке сначала появляется размытый контур изображения и по мере загрузки обретается четкость. Jpg в прогрессивном режиме позволяет получить представление обо всём изображении уже после передачи незначительной части JPEG-файла. В обычном режиме jpeg загружается последовательно, с верху в низ.
В итоге для оптимизации jpeg файлов в текущей папке надо запустить
jpegoptim --strip-all --all-progressive -ptm85 *.jpg
Для рекурсивного (во всех вложенных подкаталогах) преобразования запускаем
find -type f -iname "*.jpg" -exec jpegoptim --strip-all --all-progressive -pm85 {} \;
Обратите внимание, на версии 1.3.0 которая идет в составе ubuntu 14.04 права на файлы будут изменены на чтение и запись только для владельца файла (-rw——-). Для решения этой проблемы добавим -exec chmod 644 {} \; что будет менять права на -rw-r–r–. В более новых версиях этой проблемы нет и добавлен новый ключ -P который сохраняет права такими же как у исходного файла.
Для запуска на сервере от имени www-data и сохранением прав доступа на версии 1.3.0 используем
sudo -u www-data find -type f -iname "*.jpg" 
-exec jpegoptim --strip-all 
--all-progressive -pm85 {} \; -exec chmod 644 {} \;

OptiPNG оптимизация PNG

OptiPNG уменьшает размер файла путем удаления ненужных для изображения функций таких как на примем полноцветность для черно-белых изображений.

Устанавливаем OptiPNG
sudo apt-get install optipng
OpiPNG будем использовать с ключами:
  • -strip all удалит всю “лишнюю” информацию из файла
  • -o4 указывает степень сжатия, от 1 до 7. По умолчанию 2.
Для рекурсивной оптимизации запускаем
find -type f -iname "*.png" -exec optipng -strip all -o4 {} \;
Итоговые комманды для рекурсивной оптимизации изображений на сервере от имени пользователя www-data
Для JPG
sudo -u www-data find -type f -iname "*.jpg" -exec jpegoptim 
--strip-all
 --all-progressive -pm85 {} \; -exec chmod 644 {} \;
Для PNG
sudo -u www-data find -type f -iname "*.png" -exec optipng
 -strip all -o4 {} \;

IT-записки

comments powered by Disqus