Способы оплаты Abuse

Оптимизация JPEG в Linux

28.11.2022, 20:39

На вашем компьютере может быть много картинок, они занимают непозволительно много места, можно ли с этим что-то сделать? Например, сжать без потери качества. Сжатие может также весьма уместным в случае загрузки пакета картинок на облачный сервер. Именно об этом дальше пойдет речь в нашей статье.

Способ сжатия изображений

Известно немало различных графических инструментов, которые позволяют решить эту задачу, но на самом деле все намного проще. Как сжать изображения с помощь утилит? 

Есть два полноценных вариант:

  • jpegoptim;
  • optipng.

JPEG - самый распространенный формат картинок, в этой статье рассмотрим сжатие этого формата изображений. Поэтому рассмотрим работу в jpegoptim, благодаря которому удастся выполнить сжатие картинок этого формата.

Как выполнить сжатие картинок

Программа jpegoptim - полноценный инструмент, позволяющий использовать для сжатия формата JPEG, JPG и JFIF. Причем сжатие происходит без потери качества. Утилита оптимизирует картинки на основе принципов таблицы Хаффмана. В алгоритме JPEG происходит сжатие, но работает оно так, что снижает качество. Сжатие же с помощью jpegoptim не вредит качеству картинки.  

Устанавливаем программу

Чтобы установить программу в Ubuntu нужно выполнить: 

$ sudo apt install jpegoptim

В Fedora, CentOS и схожих дистрибутивах необходимо сперва добавить репозиторий epel-release.

Это можно выполнить командой:

$ sudo yum install epel-release

Или:

$ sudo dnf install epel-release

Можно установить jpegoptim из недавно подключенного репозитория:

$ sudo yum install jpegoptim

Или:

$ sudo dnf install jpegoptim

Как пользоваться утилитой

Применять программу в Linux не составит особого труда. Нужно выполнить программу и передать имя файла.

Синтаксис будет следующим:

$ jpegoptim опции имя_файла.jpeg

Рассмотрим опции утилиты:

сжатие изображений

Как выполнить оптимизацию картинки при помощи программы?

Сначала посмотрим исходный размер:

$ du image.jpg

сжатие jpeg

Выполняем самую простую оптимизацию:

$ jpegoptim image.jpg

сжатие jpeg

Смотрим размер:

$ du image.jpg

Оптимизация JPEG в Linux

Сжатие jpg произошло, открываем картинку любой программой и видим, что качество вообще не изменилось. Исходник и готовое изображение идентичны.

Слева картинка после сжатия, справа - оригинал:

Оптимизация JPEG в Linux

Нужно сжать изображение до определенного размера?

Придется жертвовать качеством:

$ jpegoptim --size=250k image.jpeg

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

$ cd images/

$ jpegoptim *.jpg

Оптимизация JPEG в Linux

Также вы можете перечислить несколько изображений разом:

$ jpegoptim image1.jpg image2.jpg

Для оптимизации всех картинок в конкретном каталоге можно командой xargs вместе с find. Например, оптимизируем все картинки из каталога с их последующем переносом ~/compressed:

$ find . -name "*.jpg" | xargs jpegoptim -d ~/compressed -p

Сжать jpg изображения в Linux очень просто и вы в этом могли убедиться. В следующей статье расскажем, как сжать png.