Способи оплати 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.