jpegtran для оптимизации JPEG


Утилита jpegtran предназначена для оптимизации изображений в формате JPEG — главным образом это означает сжатие их без потери качества. Для больших ресурсов со значительным количеством изображений такая оптимизация может увеличить скорость загрузки сайта и снизить нагрузку на сервер.



Кроме сжатия (оно фактически производится за счет изменения способа кодирования м удаления служебной информации)  jpegtran позволяет проводить реорганизацию данных (например, изменение представления с landscape на portrait и наоборот).



Для Debian подобных системах jpegtran устанавливается из репозитория как часть пакета libjpeg-progs

apt-get install libjpeg-progs



В CentOS устанавливается так:

yum install libjpeg*



Инструмент требует указания имя файла на входе и имя файла на выходе. Способ кодировки изображения jpegtran позволяет изменять без потерь, изменение качества происходит с потерями.



Утилита запускается из консоли с необходимыми флагами, в общем случае так:

jpegtran -copy none -perfect -optimize -outfile new-picture.jpg picture.jpg

copy none — удаляет служебную информацию

optimize — оптимизирует энтропию закодированных параметров, за счет этого ключа JPEG изображение  уменьшается в размере

perfect  — произведет преобразование только если не произошло никаких ошибок



Другие опции jpegtran, которые часто применяются:


rotate 180 — поворачивает изображение относительно оригинала (в примере — на 180 градусов)

flip vertical — переворачивает вертикально (ключ horizontal также применим)

quality 60 — обеспечивает изменение уровня сглаживания JPEG. уменьшение (значения менее 100) будут снижать качество, но дадут плюс в производительности при больших нагрузках

progressive — создает прогрессивный JPEG файл, изображение, приведенное к progressive виду будет загружаться быстрее.



Это аналог асинхронной загрузки javascript. При рендеринге HTML страницы прогрузится сначала общий вид изображения, затем мелкие детали.



Чаще всего jpegtran пользуются как раз для получения progressive JPEG

jpegtran  -progressive -outfile progressive-picture.jpg picture.jpg


Утилита позволяет выполнить многие операции из тех, для которых используется convert. У последнего jpegtran выигрывает в том, что для двух базовых операций  (optimize и progressive) позволяет добиться результата без каких-либо потерь.

Читайте также о том, как выбрать формат для изображений на сайте.

Сказать спасибо