Документація з використання вбудованих командних утиліт для обробки зображень у ServBay
Як спеціалізоване локальне середовище веб-розробки для розробників, ServBay не лише пропонує багатий набір мовних рантаймів і СУБД, а й містить різноманітні потужні командні інструменти для обробки зображень. Ці утиліти незамінні для поширених завдань у веб-розробці — конвертації форматів, стиснення, зміни розмірів, додавання водяних знаків тощо. У цьому документі детально розглядаються основні інструменти для обробки зображень, що постачаються з ServBay, а також наводяться практичні приклади використання, які допоможуть вам ефективно працювати з графікою у локальному середовищі.
Передумови
Переконайтесь, що ServBay встановлено та запущено. Усі інструменти, згадані в цій статті, вже інтегровані в ServBay — додаткового встановлення чи налаштування не потрібно.
Поширені інструменти для обробки зображень
ServBay постачається з наступними популярними командними утилітами для роботи з графікою:
ImageMagick
ImageMagick — це потужний набір інструментів і бібліотек для обробки зображень, який підтримує майже всі основні формати. Розробники часто використовують його для конвертації форматів, зміни розміру, створення складних ефектів тощо.
Базове використання
Конвертація формату зображення Перетворити зображення JPEG у формат PNG:
bashmagick convert input.jpg output.png
1Зміна розміру зображення Змінити розмір зображення до 300x300 пікселів:
bashmagick convert input.jpg -resize 300x300 output.jpg
1Додавання водяного знаку Додати текстовий водяний знак "ServBay" у правий нижній кут зображення:
bashmagick convert input.jpg -gravity southeast -draw "text 10,10 'ServBay'" output.jpg
1
cwebp
WebP — це сучасний формат графічних файлів, розроблений Google для забезпечення кращого (без втрат і з втратами) стиснення порівняно з JPEG і PNG. cwebp
— офіційний інструмент для перетворення зображень інших форматів у WebP.
Базове використання
Конвертація JPEG у WebP
bashcwebp input.jpg -o output.webp
1Конвертація PNG у WebP
bashcwebp input.png -o output.webp
1Налаштування якості стиснення Використовуйте параметр
-q
, щоб встановити якість вихідного WebP (від 0 до 100), наприклад 80:bashcwebp -q 80 input.jpg -o output.webp
1
jpegtran
jpegtran
— це утиліта з пакету libjpeg, розроблена для без втрати якості перетворень JPEG: обертання, віддзеркалення, обрізка тощо. Чудово підходить для оптимізації чи зміни орієнтації, не змінюючи якість.
Базове використання
Обертання JPEG Без втрати якості обернути JPEG на 90 градусів:
bashjpegtran -rotate 90 input.jpg > output.jpg
1Зверніть увагу: тут використовується перенаправлення
>
, щоб записати результат у файл.Горизонтальне віддзеркалення JPEG
bashjpegtran -flip horizontal input.jpg > output.jpg
1
djpeg
djpeg
— ще одна утиліта з libjpeg, призначена для декодування (розпакування) JPEG-файлів у формат сирих пікселів, наприклад PPM (Portable Pixmap), що зручно для подальшої низькорівневої обробки або конвертації у формати, відмінні від JPEG.
Базове використання
- Розпакування JPEG у формат PPMbash
djpeg input.jpg > output.ppm
1
cjpeg
cjpeg
— протилежна утиліта до djpeg
, яка кодує (стискає) сирі графічні дані, наприклад PPM, у формат JPEG. Зазвичай використовується разом із djpeg
або для перетворення зображень, створених іншими засобами, у JPEG.
Базове використання
- Стиснення PPM у JPEGbash
cjpeg input.ppm > output.jpg
1
img2webp
img2webp
— це частина пакету WebP, спеціально створена для об’єднання кількох статичних зображень (PNG, JPEG тощо) в один анімований WebP, аналогічно GIF-анімаціям.
Базове використання
- Об’єднання декількох зображень в анімований WebP Об’єднати
frame1.png
,frame2.png
,frame3.png
в один анімований WebPoutput.webp
:bashimg2webp -o output.webp frame1.png frame2.png frame3.png
1
Практичні приклади та розширені прийоми
Завдяки цим інструментам ви можете автоматизувати обробку складних завдань для зображень. Ось кілька корисних прикладів:
Масова зміна розміру зображень
За допомогою ImageMagick і скриптів Shell можна швидко змінити розмір усіх JPEG-файлів у поточному каталозі, наприклад, встановити ширину 300 пікселів зі збереженням пропорцій:
bash
# Перейдіть у каталог із зображеннями, наприклад: cd /Applications/ServBay/www/your-project/images
for file in *.jpg; do
# Змінити розмір за допомогою magick convert, -resize 300x автоматично масштабуватиме висоту
# Зберегти результат із новим ім'ям файлу або у нову папку для уникнення перезапису
magick convert "$file" -resize 300x "${file%.*}-resized.jpg"
echo "Оброблено: $file -> ${file%.*}-resized.jpg"
done
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Підказка: ${file%.*}
— це розширення параметрів Shell, яке видаляє розширення файлу.
Масова конвертація формату та оптимізація
Використовуючи cwebp
, можна масово конвертувати всі PNG або JPEG-файли, що починаються на servbay
, у WebP із якістю 45:
bash
# Перейдіть у папку з картинками
for file in servbay*.jpg servbay*.png; do
# Створити ім'я вихідного файлу, змінивши розширення на .webp
output_file="${file%.*}.webp"
# Конвертувати за допомогою cwebp, -q встановлює якість
cwebp -q 45 "$file" -o "$output_file"
echo "Конвертовано: $file -> $output_file (якість 45)"
done
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Масове додавання водяних знаків
Поєднуючи ImageMagick із Shell-скриптами, можна легко додати текстовий водяний знак "ServBay" до всіх JPEG-файлів у каталозі:
bash
# Перейдіть у папку з картинками
for file in *.jpg; do
# Додати водяний знак 'ServBay Demo' у правий нижній кут
# Зберегти результат із новим ім'ям файлу
magick convert "$file" -gravity southeast -pointsize 20 -fill white -annotate +10+10 'ServBay Demo' "${file%.*}-watermarked.jpg"
echo "Водяний знак: $file -> ${file%.*}-watermarked.jpg"
done
1
2
3
4
5
6
7
2
3
4
5
6
7
Оптимізація розміру JPEG-зображень
За допомогою jpegtran
можна без втрати якості оптимізувати JPEG, видалити зайві дані та конвертувати у прогресивний JPEG (корисно для швидшого завантаження в браузері):
bash
jpegtran -optimize -progressive input.jpg > output.jpg
1
Зверніть увагу: результати виконання jpegtran
спрямовуються у файл за допомогою перенаправлення.
Зверніть увагу
- Змінна PATH: ServBay додає шлях до своїх вбудованих інструментів у змінну PATH системи, тому ви можете запускати
magick
,cwebp
,jpegtran
тощо безпосередньо у терміналі. Якщо команда не розпізнається, перевірте, чи працює ServBay і чи коректно налаштовано змінну PATH. - Обробка помилок: При помилках командні утиліти зазвичай виводять повідомлення. У масових скриптах рекомендуємо додавати перевірку на помилки.
- Перезапис файлів: Багато командних інструментів за замовчуванням перезаписують вихідні файли. Під час пакетної обробки проявляйте обережність: зберігайте результати у іншу папку чи з новим ім’ям, і переконайтесь у правильності перед заміною оригіналів.
Часті запитання (FAQ)
Q: Ввів команду magick
у терміналі і отримав повідомлення, що команду не знайдено. Що робити?
A: Перевірте, чи ServBay правильно додав свої змінні середовища. Якщо проблема не зникла, відкрийте "Налаштування" у ServBay — розділ "Командний рядок" — налаштуйте інтеграцію для кожного типу терміналу (zsh
і bash
), після чого запустіть нове вікно терміналу.
Q: Які формати підтримують ці інструменти?
A: ImageMagick підтримує сотні форматів, включаючи JPEG, PNG, GIF, TIFF, BMP, SVG тощо. cwebp
спеціалізується на конвертації у WebP. jpegtran
, djpeg
, cjpeg
працюють переважно з JPEG та сумісними сирими форматами. Перелік підтримуваних форматів знайдете в офіційній документації відповідних інструментів.
Q: Чи можу я викликати ці інструменти із скриптів PHP, Python та ін.?
A: Так, ви можете запускати ці утиліти з PHP (exec()
, shell_exec()
, proc_open()
), Python (subprocess
), Node.js (child_process
) у середовищі ServBay для обробки завантажених зображень чи інших завдань.
Висновок
Як всеохопне рішення для локальної розробки, ServBay разом із вбудованими інструментами для обробки зображень (такими як ImageMagick, cwebp, jpegtran тощо) значно спрощує роботу з графікою. Вам не потрібно витрачати час на окрему інсталяцію чи налаштування — відразу використовуйте ці утиліти для конвертації форматів, стиснення, оптимізації, масової обробки та інших задач. Опанувавши ці інструменти, ви зможете значно підвищити ефективність і гнучкість під час роботи з графікою у веб-проектах. Почніть досліджувати можливості цих утиліт у своєму оточенні ServBay вже зараз!