Обсяг файлів зображень може бути досить значним. Навіть якщо ви використовуєте формат 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