На вашому комп'ютері може бути багато картинок, вони займають недозволено багато місця, чи можна з цим щось зробити? Наприклад, стиснути без втрати якості. Стиснення може також бути вельми доречним у разі завантаження пакета картинок на хмарний сервер. Саме про це далі піде мова в нашій статті.
Відомо чимало різних графічних інструментів, які дають змогу вирішити це завдання, але насправді все набагато простіше. Як стиснути зображення за допомогою утиліт?
Є два повноцінних варіанти:
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
Виконуємо найпростішу оптимізацію:
$ jpegoptim image.jpg
Дивимося розмір:
$ du image.jpg
Стиснення jpg відбулося, відкриваємо картинку будь-якою програмою і бачимо, що якість взагалі не змінилася. Вихідний файл і готове зображення ідентичні.
Ліворуч картинка після стиснення, праворуч - оригінал:
Потрібно стиснути зображення до певного розміру?
Доведеться жертвувати якістю:
$ jpegoptim --size=250k image.jpeg
Картинка буде стиснута, але якість постраждає. Якщо картинок багато, використовуйте пакетне стиснення: перейдіть у папку з картинками, виконайте команду стиснення
$ cd images/
$ jpegoptim *.jpg
Також ви можете перерахувати кілька зображень разом:
$ jpegoptim image1.jpg image2.jpg
Для оптимізації всіх картинок у конкретному каталозі можна скористатися командою xargs разом із find. Наприклад, оптимізуємо всі картинки з каталогу з їх подальшим перенесенням ~/compressed:
$ find . -name "*.jpg" | xargs jpegoptim -d ~/compressed -p
Стиснути jpg зображення в Linux дуже просто і ви в цьому могли переконатися. У наступній статті розповімо, як стиснути png.