Обработка изображений при помощи консольной утилиты Image Magic

Оцените статью

Инструкция по работе с ImageMagick в Linux

ImageMagick — мощный набор инструментов для обработки растровых изображений из командной строки. Поддерживает сотни форматов, позволяет выполнять обрезку, масштабирование, наложение фильтров, конвертацию и многое другое.

1. Установка

Debian/Ubuntu:

# apt update
# apt install imagemagick

CentOS/RHEL (с EPEL):

sudo yum install epel-release
sudo yum install ImageMagick

или

# dnf install ImageMagick

Проверка установки:

convert --version

(В новых версиях основные команды могут быть доступны через magick.)

В моем случае получилось:

# convert --version
Version: ImageMagick 7.1.2-3 Q16 x86_64 23340 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP(4.5) 
Delegates (built-in): bzlib djvu fftw fontconfig freetype heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png raw tiff webp wmf x xml zlib zstd
Compiler: gcc (15.2)

2. Основные команды и синтаксис

Общий шаблон:

convert [опции] входной_файл выходной_файл

или (в новых версиях):

magick [опции] входной_файл выходной_файл

Ключевые команды:

  • convert — преобразование и обработка;
  • identify — информация о файле;
  • montage — сборка коллажей;
  • composite — наложение изображений;
  • mogrify — массовая обработка (изменяет исходники!).

3. Базовые операции

3.1. Просмотр информации

identify image.jpg
identify -format "%f %w %h %m" image.png  # имя, ширина, высота, формат

3.2. Конвертация формата

convert image.png image.jpg
convert photo.tiff photo.webp

3.3. Изменение размера

convert image.jpg -resize 800x600 resized.jpg        # с сохранением пропорций
convert image.jpg -resize 800x600! resized.jpg      # принудительно (может искажать)
convert image.jpg -resize 50% smaller.jpg             # на 50%

3.4. Обрезка (crop)

convert image.jpg -crop 300x200+50+30 cropped.jpg
  • 300x200 — размер области;
  • +50+30 — смещение от левого верхнего угла.

3.5. Поворот

convert image.jpg -rotate 90 rotated.jpg
convert image.jpg -rotate -45 rotated_neg.jpg

3.6. Отражение

convert image.jpg -flip vertical.jpg     # по вертикали
convert image.jpg -flop horizontal.jpg   # по горизонтали

3.7. Наложение текста

convert image.jpg -pointsize 24 -fill white -draw "text 50,100 'Hello World'" texted.jpg
  • -pointsize — размер шрифта;
  • -fill — цвет текста;
  • -draw "text X,Y 'текст'" — координаты и текст.

3.8. Наложение логотипа

composite -gravity southeast logo.png background.jpg result.jpg
  • -gravity — положение (northeast, center и т. д.).

4. Продвинутые возможности

4.1. Регулировка яркости/контраста

convert image.jpg -brightness-contrast 10x20 bright.jpg
  • 10 — яркость (+/-);
  • 20 — контраст.

4.2. Применение фильтров

convert image.jpg -blur 0x8 blurred.jpg
convert image.jpg -sharpen 0x3 sharpened.jpg
convert image.jpg -edge 1 edged.jpg

4.3. Изменение глубины цвета

convert image.jpg -depth 8 8bit.jpg

4.4. Создание миниатюр (thumbnail)

convert image.jpg -thumbnail 100x100 thumb.jpg

4.5. Прозрачность (для PNG)

convert image.png -transparent "#ff0000" transparent.png
  • Заменяет указанный цвет на прозрачный.

4.6. Сохранение качества при конвертации

convert image.jpg -quality 90 high_quality.jpg
  • 90 — качество (0–100).

5. Массовая обработка

5.1. Через mogrify (осторожно: перезаписывает исходники!)

mogrify -resize 800x600 *.jpg
mogrify -format png *.jpg

5.2. Через цикл в bash

for img in *.jpg; do
    convert "$img" -resize 800x600 "resized_$img"
done

5.3. Рекурсивная обработка (с find)

find . -name "*.jpg" -exec convert {} -resize 800x600 resized_{} \;

6. Работа с несколькими изображениями

6.1. Объединение в одно (горизонтально)

convert img1.jpg img2.jpg +append combined.jpg

6.2. Вертикальное объединение

convert img1.jpg img2.jpg -append stacked.jpg

6.3. Коллаж с подписями

montage *.jpg -tile 2x2 -geometry +10+10 -label '%f' collage.jpg
  • -tile 2x2 — сетка 2×2;
  • -geometry — отступы;
  • -label — подпись (имя файла).

7. Полезные опции

  • -verbose — подробный вывод;
  • -debug — отладка;
  • -limit memory 256MiB — ограничение памяти;
  • -density 300 — разрешение для векторных форматов;
  • -background transparent — прозрачный фон.

8. Примеры сложных сценариев

8.1. Добавление водяного знака

convert photo.jpg \( watermark.png -resize 20% \) \
        -gravity southeast -composite result.jpg

8.2. Создание GIF из кадров

convert -delay 100 -loop 0 frame*.jpg animation.gif
  • -delay 100 — задержка между кадрами (в сотых долях секунды);
  • -loop 0 — бесконечное повторение.

8.3. Извлечение кадров из видео (через ffmpeg + ImageMagick)

ffmpeg -i video.mp4 -vf "fps=1" frame_%03d.jpg
convert frame_*.jpg animated.gif

9. Советы и предупреждения

  1. Резервные копии: mogrify изменяет исходники — делайте бэкапы!
  2. Проверка форматов: используйте identify, чтобы узнать поддерживаемые форматы.
  3. Память: для больших изображений указывайте -limit memory.
  4. Кэширование: при работе с большими файлами может потребоваться настройка кэша (-define registry:temporary-path=/tmp).
  5. Документация: полная справка — man convert или на сайте ImageMagick.

10. Ресурсы

  • Официальный сайт: https://imagemagick.org
  • Документация: man convert, convert --help
  • Примеры: в папке /usr/share/doc/imagemagick/ (зависит от дистрибутива).

Related Posts

Работа с APT-репозитариями через HTTP/HTTPS прокси

Основные способы настройки Есть несколько вариантов задать прокси для apt — от временного (для одной команды) до постоянного (системного). Вариант 1. Временный прокси (в командной строке) Используйте параметр -o при…

Установка OlnyOffice DocSpace в Ubuntu Linux

Для нашей небольшой команды понадобилась система для совместной работы над документами. Естественно, что можно просто использовать гугл-таблицы, но хотелось бы что-то что будет у нас, а то ведь обстановка не…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You Missed

Работа с APT-репозитариями через HTTP/HTTPS прокси

Работа с APT-репозитариями через HTTP/HTTPS прокси

Установка OlnyOffice DocSpace в Ubuntu Linux

Установка OlnyOffice DocSpace в Ubuntu Linux

Диагностика работы камеры (USB или интегрированная) в Ubuntu Linux

Диагностика работы камеры (USB или интегрированная) в Ubuntu Linux

Настройка простой конфигурации OpenVPN клиент-сервер

Настройка простой конфигурации OpenVPN клиент-сервер

Установка Windows Server 2012/2012R2 в качестве гостевой виртуальной машины в Proxmox

Установка Windows Server 2012/2012R2 в качестве гостевой виртуальной машины в Proxmox

Создание бесплатной виртуальной машины в облаке Cloud.ru

Создание бесплатной виртуальной машины в облаке Cloud.ru