Google Page Speed предлагает несколько инструментов для сжатия изображений без потерь для JPEG и PNG файлов (без влияния на качество изображения).
Оптимизаторы JPEG jpegtran и jpegoptim дают практически одинаковый результат, так что выбор того или иного остаётся за пользователем.
Главным недостатком jpegtran, как по мне, является необходимость указывать имена файла источника и файла приёмника, т.е. нельзя сразу же переписать оптимизированное изображение в тот же файл, что неудобно для большого количества файлов и нужно писать какую-то обёртку для вызова этого оптимизатора.
Поэтому в этом плане jpegoptim является предпочтительнее.
Оптимизация JPEG инструментом jpegoptim
JPEGoptim будем использовать со следующими ключами:
- --strip-all удаляет комментарии, Exif, IPTC, ICC, XMP
- --all-progressive преобразует в прогрессивный jpeg
- -p сохранит время создания такими же как у исходного файла
- -t покажет итоговый результат оптимизации для нескольких изображений
- -m85 устанавливает максимальное сжатие jpeg в 85. Этот параметр влияет на качество изображения!
- Установка (пример для CentOS)
rpm -Uhv path-to-jpegoptim-file
- Поиск файлов и оптимизация
find -name *.jpg -exec jpegoptim --strip-all '{}' \;Выполняет поиск всех *.jpg файлов и оптимизирует их (файлы переписываются). Поиск происходит в текущей директории (для изменения используйте ключи утилиты find).
JPG файлы будем оптимизировать и преобразовывать в прогрессивный вид при помощи JPEGoptim. Прогрессивный jpeg, это когда при загрузке сначала появляется размытый контур изображения и по мере загрузки обретается четкость. Jpg в прогрессивном режиме позволяет получить представление обо всём изображении уже после передачи незначительной части JPEG-файла. В обычном режиме jpeg загружается последовательно, с верху в низ.
find -type f -iname "*.jpg" -exec jpegoptim --strip-all --all-progressive {} \;
Можно добавить параметр -pm85 устанавливает максимальное сжатие jpeg в 85. Влияет на качество изображения!
find -type f -iname "*.jpg" -exec jpegoptim --strip-all --all-progressive -pm85 {} \;
Оптимизация PNG инструментом OptiPNG
Для оптимизации PNG используем OptiPNG – свободную программу для уменьшения размера файлов в формате Portable Network Graphics путём их сжатия различными методами с игнорированием ненужных для данного изображения функций PNG, таких как полноцветность для чёрно‐белого изображения.
- Установка
-
CentOS 5.x /Red Hat 5.x / Fedora
yum install wget dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm rpm -ivh epel-release-5-4.noarch.rpm yum install optipng
-
CentOS 6.x and Red Hat 6.x
yum install wget wget dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -ivh epel-release-5-4.noarch.rpm yum install optipng
-
Fedora
yum install optipng
-
Ubuntu/Debian/Linux Mint
sudo apt-get update sudo apt-get install optipng
-
Windows
С сайта http://optipng.sourceforge.net/ скачать архив, распаковать и запустить optipng.exe
-
- Поиск файлов и оптимизация
find -name *.png -exec optipng -o3 '{}' \;
Всё аналогично. Здесь указывается ключ –oX, где о – сокр. от optimixation, X – уровень сжатия (1-7). На практике не стоит выставлять максимальный уровень сжатия, так как это приводит к значительному увеличению времени обработки и затрате ресурсов (обычно достаточно 3).
После оптимизации изображений показатель Page Speed может значительно увеличиться.
Добавить комментарий