Як змінити розмір файлів зображень у Linux

Обсяг файлів зображень може бути досить значним. Навіть якщо ви використовуєте формат JPEG, розмір файлу може сягати 2 або навіть 5 МБ. Якщо ж ви працюєте з файлами RAW, вони будуть ще більшими. Тому, якщо ви плануєте зберігати велику колекцію зображень на своєму комп’ютері з Linux, вам варто навчитися оптимізувати їх розмір. Одним з найефективніших способів заощадити місце на диску є зменшення розміру зображень. Змінюючи їхні розміри, ви можете значно зменшити обсяг необхідного місця для зберігання великої бібліотеки фотографій.

Процес зменшення розміру зображень потребує уваги, оскільки надмірне стиснення може негативно вплинути на їх якість. Тому в цьому посібнику ми розглянемо, як правильно змінювати розмір файлів зображень, зберігаючи їхню якість на прийнятному рівні.

Інсталяція ImageMagick

Операційна система Linux пропонує різноманітні корисні інструменти. Одним з них є Convert – невелика програма, що входить до складу ImageMagick, яка дозволяє маніпулювати зображеннями за допомогою командного рядка. Для використання Convert, потрібно спочатку встановити ImageMagick. У більшості дистрибутивів Linux він вже може бути встановлений, але якщо його немає, процес встановлення досить простий.

Щоб інсталювати ImageMagick, відкрийте термінал і введіть відповідну команду для вашої операційної системи:

Ubuntu

sudo apt install imagemagick

Debian

sudo apt-get install imagemagick

Arch Linux

sudo pacman -S imagemagick

Fedora

sudo dnf install imagemagick

OpenSUSE

sudo zypper install imagemagick

Інші дистрибутиви Linux

Як зазначалося раніше, ImageMagick є важливим компонентом для відображення та обробки зображень у багатьох Linux-програмах. Тому ваш дистрибутив може використовувати альтернативне рішення. Знайдіть “ImageMagick” у менеджері пакетів вашої системи та встановіть його. Після встановлення ви матимете доступ до інструменту Convert.

Зменшення розміру зображень за допомогою Convert

Стиснення зображень часто призводить до втрати якості. Для отримання файлів меншого розміру з гарною якістю краще зменшувати розмір зображень. Цей підхід дозволяє зберегти якість зображення, значно зменшуючи розмір файлу.

Для зміни розміру за допомогою Convert, відкрийте термінал, знайдіть потрібний файл зображення та скористайтеся командою CD, щоб перейти до його розташування. У цьому прикладі, зображення знаходяться у каталозі /home/username/pictures/.

cd ~/Pictures/

Використовуйте команду convert для зміни розміру. Спробуйте зменшити зображення на 20%, оскільки це забезпечує гарний баланс між якістю та розміром файлу. Якщо потрібно зменшити розмір ще більше, спробуйте 25%, 30% або 40%. Варто пам’ятати, що чим більше ви змінюєте розмір, тим нижчою буде якість.

convert -resize 20% image-file-name-original.jpg image-file-name-resized.jpg

Convert підтримує різні формати файлів, не тільки JPG, використаний у прикладі. Для зміни розміру, скоригуйте команду, вказавши відповідне розширення файлу та потрібний новий розмір. Обов’язково вкажіть як ім’я оригінального файлу, так і ім’я нового файлу.

Обробка декількох зображень

Convert відмінно підходить для обробки одного зображення за раз, але обробка великої кількості зображень таким чином може бути втомливою. На щастя, за допомогою bash можна автоматизувати Convert для обробки декількох файлів одночасно.

Примітка: пакетна обробка файлів зображень із різними іменами може не працювати. Рекомендовано пакетно обробляти файли одного типу.

Пакетна обробка починається зі створення папки для роботи. Наявність окремої папки для зображень, які ви плануєте конвертувати, допоможе підтримувати порядок. За допомогою команди mkdir створіть робочий каталог.

mkdir -p ~/Pictures/Convert-Images/

Потім відкрийте файловий менеджер, знайдіть новостворену папку та перемістіть всі файли зображень, які потрібно обробити, у цю папку. Після переміщення файлів, скористайтеся командою cd у терміналі, щоб перейти до нової папки.

cd ~/Pictures/Convert-Images/

У терміналі введіть наведену нижче команду. Вона вкаже Convert змінити розмір декількох файлів одночасно, створюючи вихідні файли з доданим “-resize” у кінці. У коді команда шукає файли JPG. Якщо ви працюєте з файлами PNG або іншим форматом, підтримуваним Convert, змініть *.jpg на *.png тощо.

for img in *.jpg; do
  convert -resize 20% "$img" "opt-$img"
done

Створення сценарію для зміни розміру

Команда для пакетної обробки є корисною, але необхідність кожного разу вводити довгу команду може бути незручною. Щоб спростити роботу, можна створити сценарій. Відкрийте термінал і за допомогою команди touch створіть новий файл. Цей файл буде містити код нашого сценарію конвертації.

touch ~/Pictures/Convert-Images/batch-resize.sh

Далі відкрийте текстовий редактор Nano.

nano ~/Pictures/Convert-Images/batch-resize.sh

Вставте наступний код у файл сценарію:

#!/bin/bash

# Запит введення користувача для визначення типу файлу.

echo «Введіть розширення файлу для файлів зображень:»

# Збереження введених даних у змінній $files.

read files

# Зміна розміру зображень.

for img in *.$files; do
convert -resize 20% “$img” “resize-$img”
done

Збережіть сценарій у Nano, натиснувши Ctrl + O. Закрийте редактор за допомогою Ctrl + X.

Оновіть дозволи сценарію, щоб він міг виконуватися. Не пропускайте цей крок, інакше сценарій не працюватиме!

chmod +x ~/Pictures/Convert-Images/batch-resize.sh

Щоб використати сценарій, помістіть усі файли зображень, які потрібно конвертувати, у ~/Pictures/Convert-Images/. Потім введіть cd, щоб перейти до цього каталогу та виконайте сценарій. Під час введення розширення файлу (наприклад, JPG, PNG тощо) не використовуйте крапку, інакше скрипт може не працювати!

cd ~/Pictures/Convert-Images/
./batch-resize.sh