GraphicsMagick: консольный пакет для обработки, конвертации
GraphicsMagick — это программа для обработки изображений через командную строку, графическое окно просмотра и программные API. Ее основная задача — не ручная ретушь мышкой, а точная, повторяемая и быстрая работа с файлами: конвертация форматов, изменение размера, сжатие, поворот, кадрирование, наложение текста, создание миниатюр, сравнение картинок, сборка сеток, подготовка изображений для сайта или сервера. Программа работает через единый исполняемый файл gm, а основные функции вызываются как подкоманды: gm convert, gm mogrify, gm identify, gm compare, gm composite, gm montage, gm display, gm import, gm animate и другие.
Содержание
- 1 Скачать GraphicsMagick
- 2 Общая логика работы
- 3 Интерфейс GraphicsMagick
- 4 Для чего нужна GraphicsMagick
- 5 Поддерживаемые форматы
- 6 Основные команды GraphicsMagick
- 7 Практическая работа с изображениями
- 7.1 Как конвертировать JPG в PNG
- 7.2 Как сделать JPEG легче
- 7.3 Как пакетно уменьшить все изображения в папке
- 7.4 Как сделать миниатюры
- 7.5 Как повернуть изображение
- 7.6 Как отразить изображение
- 7.7 Как кадрировать изображение
- 7.8 Как добавить рамку
- 7.9 Как изменить яркость, гамму и насыщенность
- 7.10 Как сделать изображение черно-белым
- 7.11 Как сделать водяной знак
- 7.12 Как собрать изображения в сетку
- 7.13 Как подготовить изображения для сайта
- 8 Работа с PDF
- 9 Работа с метаданными и профилями
- 10 Работа с цветом и каналами
- 11 Командная строка против графического окна
- 12 История версий программы
- 13 Возможности GraphicsMagick
- 14 Сценарии использования
- 15 Сравнение с аналогами
- 16 Преимущества GraphicsMagick
- 17 Недостатки GraphicsMagick
- 18 Безопасность при обработке файлов
- 19 Частые ошибки и решения
- 20 Практичные наборы команд
- 21 Лучшие сценарии для GraphicsMagick
- 22 Где GraphicsMagick не лучший выбор
- 23 Итоговая оценка
Скачать GraphicsMagick
Новейшая версия для Windows и macOS. Удобный редактор с ИИ и профессиональными функциями.
GraphicsMagick часто воспринимают как инструмент для разработчиков, но это не значит, что он нужен только программистам. Его удобно использовать везде, где нужно обработать не одно изображение, а десятки, сотни или тысячи файлов по одинаковым правилам. Например, уменьшить все фотографии до 1600 пикселей по широкой стороне, перевести PNG в WebP, убрать EXIF, сделать JPEG легче, собрать контактный лист, проверить размеры файлов перед загрузкой на сайт или автоматически подготовить изображения при публикации товара в каталоге.
Главная особенность программы — отсутствие привычной тяжелой графической оболочки в стиле Photoshop или GIMP. В GraphicsMagick пользователь чаще пишет команду, чем нажимает кнопку. Это делает программу менее дружелюбной для новичка, но намного удобнее для автоматизации. Один раз настроенная команда дает одинаковый результат каждый раз, ее можно вставить в .bat, .cmd, .ps1, .sh, cron-задачу, серверный скрипт, обработчик загрузок или пайплайн сборки сайта.
GraphicsMagick подходит для задач, где важны:
пакетная обработка изображений;
предсказуемый результат;
работа без ручного открытия каждого файла;
запуск из терминала;
обработка на сервере;
минимальная зависимость от графического интерфейса;
гибкая настройка качества, формата, геометрии, цвета и метаданных.
Программа поддерживает чтение, запись и обработку большого количества графических форматов, включая JPEG, PNG, GIF, TIFF, WebP, PDF, PNM, DPX, JPEG-2000, JXL, AVIF, HEIC и другие. Конкретный набор форматов зависит от сборки и подключенных библиотек.
Общая логика работы
GraphicsMagick устроен вокруг короткой команды gm. После нее указывается действие, затем параметры, входной файл и выходной файл. Базовая структура выглядит так:
gm convert input.jpg output.pngЗдесь:
gm— основная команда GraphicsMagick;convert— подкоманда для конвертации и обработки;input.jpg— исходное изображение;output.png— файл, который будет создан после обработки.
Если нужно не просто поменять формат, а еще изменить размер, команда расширяется:
gm convert input.jpg -resize 1200x1200 output.jpgЕсли нужно сжать JPEG и удалить лишние профили:
gm convert input.jpg -resize 1600x1600 -quality 82 +profile "*" output.jpgТакой подход кажется непривычным только сначала. На практике команда читается как инструкция: взять файл, выполнить действия слева направо, сохранить результат. Чем больше повторяющихся операций, тем заметнее преимущество GraphicsMagick перед обычным фоторедактором.
Вместо открытия каждой картинки в отдельном окне можно обработать папку:
gm mogrify -resize 1200x1200 -quality 85 +profile "*" *.jpgКоманда mogrify работает уже не как безопасная конвертация в новый файл, а как массовое изменение исходников. Это мощно, но требует аккуратности: при обычном сценарии mogrify перезаписывает исходные изображения, если не задан отдельный путь или новый формат.
Интерфейс GraphicsMagick
Основной интерфейс GraphicsMagick — командная строка. На Windows это может быть Command Prompt, PowerShell или терминал в редакторе кода. На Linux и macOS — обычный терминал. Проверка установки и доступных возможностей обычно начинается с команды:
gm versionПосле запуска выводится информация о сборке, разрядности, поддержке библиотек и доступных форматах. В этом окне удобно сразу проверить, видит ли система команду gm, включена ли поддержка JPEG, PNG, TIFF, WebP, FreeType, Ghostscript, Little CMS, OpenMP и других компонентов.

У GraphicsMagick есть и графическая часть, но она не является главным способом работы. Через gm display можно открыть изображение в окне просмотра, вызвать меню и выполнить часть операций интерактивно. В графическом окне встречаются пункты File, Edit, View, Transform, Enhance, Effects, F/X, Image Edit, Miscellany, Help. В меню Enhance доступны операции вроде Hue..., Saturation..., Brightness..., Gamma..., Spiff, Dull, Equalize, Normalize, Negate, Grayscale, Map..., Quantize.... Это не современный редактор с панелями слоев, но для просмотра, проверки и быстрых действий окно полезно.

В Windows-окне просмотра можно увидеть более привычные верхние меню: File, Edit, View, Transform, Window, Help. В меню Transform доступны команды Crop, Chop, Flip, Flop, Rotate Right, Rotate Left, Rotate..., Shear..., Roll..., Trim Edges. Это показывает, что GraphicsMagick умеет не только консольные операции, но и базовые визуальные трансформации через окно изображения.

Через графическое меню можно открыть файл, посмотреть изображение, выполнить поворот, обрезку, отражение, изменение яркости или насыщенности. Но сильная сторона программы все равно в другом: командная строка позволяет выполнять те же действия быстро, массово и без ручного участия.
Для чего нужна GraphicsMagick
GraphicsMagick закрывает широкий набор задач, связанных с подготовкой изображений. Это не классический фоторедактор для красоты, а инструмент обработки. Он особенно полезен там, где есть поток файлов.
Конвертация форматов
Самая простая задача — перевести изображение из одного формата в другой:
gm convert photo.jpg photo.pngИли из PNG в JPEG:
gm convert screenshot.png screenshot.jpgИли сразу в WebP, если сборка поддерживает этот формат:
gm convert photo.jpg photo.webpФормат результата обычно определяется по расширению выходного файла. Если файл называется result.png, программа пишет PNG. Если result.jpg — JPEG. Если нужно явно указать формат, можно использовать префикс:
gm convert input.bin PNG:output.pngТакой способ полезен, когда расширение файла отсутствует, задано нестандартно или поток данных идет из другой программы.
Изменение размера изображений
Команда -resize — одна из самых частых в GraphicsMagick. Она уменьшает или увеличивает изображение с сохранением пропорций:
gm convert photo.jpg -resize 1200x1200 photo-1200.jpgЗапись 1200x1200 не означает обязательное растягивание в квадрат. Она задает ограничивающую рамку: изображение будет уменьшено так, чтобы ширина и высота не превышали 1200 пикселей, а пропорции сохранятся.
Для уменьшения только по ширине:
gm convert photo.jpg -resize 1200x photo-wide.jpgДля уменьшения только по высоте:
gm convert photo.jpg -resize x900 photo-height.jpgДля принудительного изменения размера без сохранения пропорций используется восклицательный знак:
gm convert photo.jpg -resize 1200x800! photo-forced.jpgТакой режим нужно использовать осторожно: он может исказить изображение.
Сжатие JPEG
Для JPEG используется параметр -quality:
gm convert photo.jpg -quality 82 photo-compressed.jpgНа практике для веба часто выбирают диапазон 78–88. Ниже файл становится легче, но могут появиться артефакты: квадратные блоки, шум на границах, потеря деталей в градиентах. Выше качество лучше, но размер файла растет.
Для каталога товаров, блога или карточек сайта часто используют такую команду:
gm convert input.jpg -resize 1600x1600 -quality 85 +profile "*" output.jpgОна одновременно уменьшает изображение, задает качество JPEG и удаляет профили/метаданные.
Удаление EXIF и профилей
Фотографии с камеры или телефона могут содержать EXIF: модель устройства, параметры съемки, дату, GPS, ориентацию, миниатюры и цветовые профили. Для сайта это часто лишний вес и иногда лишняя приватная информация.
Удалить профили можно так:
gm convert input.jpg +profile "*" output.jpgВ пакетном режиме:
gm mogrify +profile "*" *.jpgЕсли нужно сохранить исходники, безопаснее писать результат в отдельную папку:
mkdir cleangm mogrify -path clean +profile "*" *.jpgПакетная обработка папки
GraphicsMagick особенно силен в пакетной обработке. Например, нужно уменьшить все JPEG в папке до 1200 пикселей по длинной стороне:
gm mogrify -resize 1200x1200 *.jpgНужно перевести все PNG в JPEG:
gm mogrify -format jpg *.pngНужно сделать WebP-копии всех JPEG:
gm mogrify -format webp *.jpgНужно уменьшить, сжать и очистить метаданные:
gm mogrify -resize 1600x1600 -quality 85 +profile "*" *.jpgВажное правило: перед gm mogrify лучше сделать копию папки. Эта команда создана именно для массового изменения файлов, поэтому ошибка в параметрах может испортить всю директорию.
Наложение текста
GraphicsMagick умеет добавлять текст через -draw, label:, caption: и параметры шрифта:
gm convert input.jpg -font Arial -pointsize 36 -fill white -draw "text 40,60 'Sample text'" output.jpgДля подписи внизу можно использовать -gravity:
gm convert input.jpg -font Arial -pointsize 32 -fill white -gravity South -draw "text 0,40 'example.com'" output.jpgЕсли нужен текст с подложкой, часто используют дополнительный прямоугольник:
gm convert input.jpg -fill "rgba(0,0,0,0.45)" -draw "rectangle 0,880 1600,1000" -font Arial -pointsize 42 -fill white -draw "text 40,950 'Новая коллекция'" output.jpgВ серверных сценариях это применяют для автоматических подписей, временных заглушек, технических меток, генерации изображений с текстом, превью и бейджей.
Наложение логотипа
Для наложения одного изображения на другое используется gm composite. Например, есть основная фотография photo.jpg и прозрачный PNG-логотип logo.png:
gm composite -gravity SouthEast logo.png photo.jpg photo-logo.jpgЧтобы отодвинуть логотип от края:
gm composite -gravity SouthEast -geometry +40+40 logo.png photo.jpg photo-logo.jpgЗдесь -gravity SouthEast ставит логотип в правый нижний угол, а -geometry +40+40 добавляет отступы.
Сравнение изображений
Команда gm compare сравнивает два похожих изображения, выводит статистику отличий и может создать файл с визуальной подсветкой различий.
Пример числового сравнения:
gm compare -metric mse original.png changed.pngПример создания изображения с разницей:
gm compare -metric mse -file diff.png original.png changed.pngТакой режим полезен при тестировании генерации изображений, проверке регрессий, сравнении результатов после оптимизации, контроле качества рендера, проверке скриншотов интерфейса.
Создание контактного листа
gm montage собирает несколько картинок в одну сетку. Это удобно для предпросмотра папки, каталога товаров, вариантов обработки или серии кадров. Команда montage создает составное изображение из отдельных файлов, размещая их плитками, а размер плиток и сетка задаются параметрами -geometry и -tile.
Пример:
gm montage *.jpg -thumbnail 220x220 -tile 5x -geometry +8+8 contact-sheet.jpgЗдесь:
*.jpg— все JPEG в текущей папке;-thumbnail 220x220— размер миниатюр;-tile 5x— пять изображений в строке;-geometry +8+8— отступы между плитками;contact-sheet.jpg— итоговая сетка.
Просмотр изображения
Открыть файл в графическом окне можно так:
gm display photo.jpgВ окне просмотра доступны операции через меню. Например, для открытия файла используется File → Open, для визуальной директории — File → Visual Directory, для интерактивного вырезания — Edit → Cut, для копирования — Edit → Copy, для вставки — Edit → Paste, для поворота — Transform → Rotate..., для подписи — Image Edit → Annotate, для рисования — Image Edit → Draw, для наложения — Image Edit → Composite.
Поддерживаемые форматы
GraphicsMagick работает с большим количеством растровых, векторных, документных и технических форматов. В реальной работе важнее не просто наличие формата в списке, а поддержка чтения и записи в конкретной сборке. Например, JPEG и PNG почти всегда доступны, а PDF зависит от Ghostscript, WebP — от соответствующей библиотеки, HEIC/AVIF — от HEIF-компонентов, JPEG XL — от JXL-компонентов.
| Формат | Типичная задача | Особенности |
|---|---|---|
| JPEG / JPG | фотографии, карточки товаров, изображения для сайта | хорошо сжимается, не поддерживает прозрачность |
| PNG | скриншоты, интерфейсы, изображения с прозрачностью | без потерь, но может быть тяжелее JPEG |
| GIF | простая анимация, индексированные изображения | ограниченная палитра, поддержка кадров |
| TIFF | сканы, полиграфия, архивные изображения | может быть многостраничным, поддерживает разные сжатия |
| WebP | веб-оптимизация | поддерживает сжатие с потерями и без, прозрачность |
| извлечение или запись страниц как изображений | зависит от внешних компонентов | |
| PNM / PBM / PGM / PPM | технические и промежуточные форматы | удобны в скриптах и обработке |
| DPX | кино, видео, профессиональные пайплайны | используется в технических потоках |
| JPEG-2000 | архивирование, медицинские и профессиональные сценарии | зависит от библиотек |
| HEIC / HEIF | изображения с телефонов и современных устройств | поддержка зависит от сборки |
| AVIF | современный веб-формат | поддержка зависит от сборки |
| JXL | JPEG XL | поддержка зависит от сборки |
| SVG / MVG | векторная графика и внутренние сценарии | результат зависит от рендера и библиотек |
| BMP / ICO / PCX / TGA | старые и служебные форматы | полезны для совместимости |
Проверить поддержку форматов в установленной сборке можно командой:
gm convert -list formatsИли через:
gm identify -list formatsВ выводе будут указаны форматы и режимы доступа. Обычно рядом с форматом видно, можно ли его читать, писать или читать и писать.
Основные команды GraphicsMagick
gm convert
gm convert — основная команда для преобразования одного изображения в другое. Она конвертирует формат, но одновременно может выполнять обработку: менять размер, кадрировать, поворачивать, сжимать, удалять профили, добавлять текст, применять эффекты и сохранять результат в новый файл.
Простейшие примеры:
gm convert input.jpg output.pnggm convert input.png output.jpggm convert input.tif output.jpgИзменение размера:
gm convert input.jpg -resize 1200x1200 output.jpgСжатие JPEG:
gm convert input.jpg -quality 80 output.jpgУдаление профилей:
gm convert input.jpg +profile "*" output.jpgКомбинированная команда:
gm convert input.jpg -resize 1600x1600 -quality 85 +profile "*" output.jpgconvert безопаснее, чем mogrify, потому что обычно создает новый файл и не меняет исходник. Поэтому для проверки параметров лучше начинать именно с gm convert.
gm mogrify
gm mogrify нужен для изменения файла или группы файлов на месте. Он удобен для пакетной обработки, но опаснее из-за перезаписи. Если задать:
gm mogrify -resize 1200x1200 *.jpgвсе JPEG в папке будут изменены. Чтобы не перезаписывать оригиналы, используйте -path:
mkdir outputgm mogrify -path output -resize 1200x1200 *.jpgКонвертация всех PNG в JPEG:
gm mogrify -format jpg *.pngПакетное сжатие JPEG:
gm mogrify -quality 82 *.jpgПодготовка папки изображений для сайта:
mkdir webgm mogrify -path web -resize 1600x1600 -quality 84 +profile "*" *.jpgmogrify особенно удобен, когда нужно обработать коллекцию однотипных файлов: фотографии товаров, сканы, экспортированные кадры, аватары, превью, изображения статей.
gm identify
gm identify описывает характеристики изображения: формат, размеры, цветовую модель, глубину, количество кадров, размер файла и другую информацию. Команда также помогает понять, поврежден файл или нет.
Базовая проверка:
gm identify photo.jpgПример вывода может содержать формат, ширину, высоту, глубину цвета и размер файла.
Подробная информация:
gm identify -verbose photo.jpgТолько размер:
gm identify -format "%wx%hn" photo.jpgШирина:
gm identify -format "%wn" photo.jpgВысота:
gm identify -format "%hn" photo.jpgФормат:
gm identify -format "%mn" photo.jpgКоманда полезна в скриптах. Например, можно отобрать слишком маленькие изображения, проверить, что все карточки имеют нужный размер, найти PNG с альфа-каналом или отличить настоящие JPEG от файлов с неправильным расширением.
gm compare
gm compare используется для сравнения двух изображений. Он может вернуть метрику отличий и создать изображение с подсвеченными измененными пикселями. Это не инструмент визуального дизайна, а инструмент контроля.
Числовое сравнение:
gm compare -metric mse before.png after.pngСоздание файла различий:
gm compare -metric mse -file diff.png before.png after.pngСравнение удобно для:
автоматических тестов интерфейса;
проверки, изменился ли результат обработки;
контроля качества после сжатия;
сравнения двух экспортов;
поиска отличий между скриншотами;
проверки рендера после обновления библиотеки.
gm montage
gm montage собирает изображения в сетку:
gm montage img1.jpg img2.jpg img3.jpg -tile 3x1 -geometry +10+10 result.jpgС миниатюрами:
gm montage *.jpg -thumbnail 180x180 -tile 6x -geometry +6+6 sheet.jpgС подписями:
gm montage *.jpg -thumbnail 180x180 -label "%f" -tile 5x -geometry +8+8 sheet.jpgСветлый фон:
gm montage *.jpg -thumbnail 220x220 -background white -geometry +10+10 sheet.jpgЭта команда полезна для фотосетов, отчетов, выбора дублей, предпросмотра экспортированных вариантов и быстрой проверки папки.
gm composite
gm composite накладывает одно изображение на другое. Оно используется для логотипов, водяных знаков, масок, декоративных элементов, бейджей и технических оверлеев. Команда работает по схеме: изображение-изменение, базовое изображение, результат.
Пример:
gm composite logo.png photo.jpg result.jpgПозиционирование:
gm composite -gravity SouthEast -geometry +30+30 logo.png photo.jpg result.jpgПолупрозрачный логотип обычно готовят заранее в PNG с альфа-каналом. Тогда composite корректно накладывает его на базовую картинку.
gm display
gm display открывает изображение в окне просмотра:
gm display photo.jpgКоманда полезна, если нужно быстро посмотреть результат без запуска отдельного фоторедактора. В графическом окне можно открыть файл через File → Open, вызвать визуальный каталог через File → Visual Directory, повернуть изображение через Transform, выполнить Crop, Chop, Flip, Flop, Trim Edges, а также использовать интерактивные действия через Image Edit.
gm import
gm import захватывает изображение с экрана или окна в X11-среде. Это не универсальный современный скриншотер для всех платформ, но в Unix/X11-сценариях команда полезна:
gm import screenshot.pngМожно использовать ее для автоматизации снимков окон, технических отчетов или тестовых окружений.
gm animate
gm animate отображает последовательность изображений или анимацию, например GIF, в X11-среде:
gm animate animation.gifКоманда нужна реже, чем convert или mogrify, но входит в набор утилит GraphicsMagick.
gm batch
gm batch выполняет набор команд в пакетном режиме. Это удобно, когда нужно снизить накладные расходы на многократный запуск процесса или выполнить длинную последовательность действий.
Пример идеи:
gm batch commands.txtВнутри файла могут быть команды обработки. Такой режим интересен для серверных сценариев, где GraphicsMagick вызывается много раз.
Практическая работа с изображениями
Как конвертировать JPG в PNG
Самая простая команда:
gm convert photo.jpg photo.pngЕсли исходный файл находится в другой папке:
gm convert "C:Imagesphoto.jpg" "C:Imagesphoto.png"На Linux/macOS:
gm convert "/home/user/images/photo.jpg" "/home/user/images/photo.png"Если в пути есть пробелы, используйте кавычки:
gm convert "my photos/photo 01.jpg" "my photos/photo 01.png"После конвертации стоит проверить результат:
gm identify "my photos/photo 01.png"Как сделать JPEG легче
Базовая команда:
gm convert photo.jpg -quality 82 photo-small.jpgБолее практичная команда для сайта:
gm convert photo.jpg -resize 1600x1600 -quality 84 +profile "*" photo-web.jpgЗдесь выполняются три операции:
Изображение уменьшается до разумного размера.
JPEG сохраняется с контролируемым качеством.
Удаляются профили и метаданные, которые часто увеличивают файл.
Если картинка уже маленькая, но содержит тяжелый EXIF, можно удалить только профили:
gm convert photo.jpg +profile "*" photo-clean.jpgКак пакетно уменьшить все изображения в папке
Без сохранения оригиналов:
gm mogrify -resize 1200x1200 *.jpgС сохранением результата в отдельную папку:
mkdir resizedgm mogrify -path resized -resize 1200x1200 *.jpgС одновременным сжатием:
mkdir webgm mogrify -path web -resize 1600x1600 -quality 85 +profile "*" *.jpgДля PNG:
mkdir small-pnggm mogrify -path small-png -resize 1200x1200 *.pngДля всех JPEG и PNG лучше запускать команды отдельно, чтобы контролировать качество и формат.
Как сделать миниатюры
Миниатюры можно делать через -resize или -thumbnail. Для веб-превью обычно используют -thumbnail:
gm convert photo.jpg -thumbnail 300x300 thumb.jpgЕсли нужно строго 300×300 с обрезкой по центру, сначала масштабируют, потом кадрируют:
gm convert photo.jpg -resize 300x300^ -gravity center -crop 300x300+0+0 +repage thumb.jpgЗдесь:
300x300^— заполнить квадрат без пустых полей;-gravity center— брать центр;-crop 300x300+0+0— обрезать до квадрата;+repage— сбросить служебную геометрию после кадрирования.
Такой вариант подходит для аватаров, превью карточек, сеток изображений, обложек статей.
Как повернуть изображение
Поворот на 90 градусов:
gm convert photo.jpg -rotate 90 photo-rotated.jpgПоворот против часовой стрелки:
gm convert photo.jpg -rotate -90 photo-rotated.jpgПоворот на произвольный угол:
gm convert photo.jpg -rotate 12 photo-tilted.jpgПри повороте на произвольный угол вокруг изображения появятся пустые области. Их можно заполнить цветом:
gm convert photo.jpg -background white -rotate 12 photo-tilted.jpgКак отразить изображение
Вертикальное отражение:
gm convert photo.jpg -flip photo-flip.jpgГоризонтальное отражение:
gm convert photo.jpg -flop photo-flop.jpgЭти команды часто используют для технических изображений, зеркальных вариантов, обработки сканов или подготовки ассетов.
Как кадрировать изображение
Обрезка задается через -crop:
gm convert photo.jpg -crop 800x600+100+50 output.jpgФормат такой:
ширина x высота + смещение_x + смещение_yТо есть 800x600+100+50 означает: вырезать область 800×600 пикселей, начиная с координаты X=100 и Y=50.
Обрезка от центра:
gm convert photo.jpg -gravity center -crop 800x600+0+0 +repage output.jpgАвтоматическое удаление однотонных краев:
gm convert scan.png -trim +repage scan-trimmed.png-trim полезен для скриншотов, сканов, изображений с белыми полями и экспортов из редакторов.
Как добавить рамку
Простая рамка:
gm convert photo.jpg -bordercolor white -border 20x20 photo-border.jpgСерая рамка:
gm convert photo.jpg -bordercolor "#dddddd" -border 10x10 photo-border.jpgПсевдообъемная рамка:
gm convert photo.jpg -frame 20x20+6+6 photo-frame.jpgТакие операции применяют для превью, галерей, документации, технических отчетов.
Как изменить яркость, гамму и насыщенность
Изменение гаммы:
gm convert photo.jpg -gamma 1.15 photo-gamma.jpgНормализация тонов:
gm convert photo.jpg -normalize photo-normalized.jpgЭквализация:
gm convert photo.jpg -equalize photo-equalized.jpgПовышение резкости:
gm convert photo.jpg -sharpen 0x1.0 photo-sharp.jpgРазмытие:
gm convert photo.jpg -blur 0x2 photo-blur.jpgЭти операции нужно использовать аккуратно. GraphicsMagick не понимает художественную задачу сам по себе: он точно применяет математический фильтр. Поэтому для фотографий товаров или портретов лучше сначала проверить результат на одном файле.
Как сделать изображение черно-белым
Черно-белый вариант через цветовое пространство:
gm convert photo.jpg -colorspace Gray photo-gray.jpgИли через меню графического окна Enhance → Grayscale, если используется gm display.
Как сделать водяной знак
Простой текстовый водяной знак:
gm convert photo.jpg -font Arial -pointsize 36 -fill "rgba(255,255,255,0.55)" -gravity SouthEast -draw "text 30,30 'site.ru'" photo-watermark.jpgГрафический знак:
gm composite -gravity SouthEast -geometry +30+30 watermark.png photo.jpg photo-watermark.jpgЕсли нужен полупрозрачный PNG, лучше подготовить прозрачность в самом watermark.png, а затем накладывать его через composite.
Как собрать изображения в сетку
Простая сетка из всех JPEG:
gm montage *.jpg -thumbnail 200x200 -tile 5x -geometry +8+8 sheet.jpgС белым фоном:
gm montage *.jpg -thumbnail 200x200 -tile 5x -geometry +8+8 -background white sheet.jpgС подписями файлов:
gm montage *.jpg -thumbnail 200x200 -label "%f" -tile 4x -geometry +10+10 sheet.jpgТакая сетка удобна, когда нужно быстро показать заказчику варианты изображений, проверить серию обработок или сделать визуальный индекс папки.
Как подготовить изображения для сайта
Практичный сценарий:
mkdir webgm mogrify -path web -resize 1600x1600 -quality 84 +profile "*" *.jpgДля миниатюр:
mkdir thumbsgm mogrify -path thumbs -thumbnail 400x400 -quality 82 +profile "*" *.jpgДля квадратных превью:
mkdir squarefor f in *.jpg; do gm convert "$f" -resize 600x600^ -gravity center -crop 600x600+0+0 +repage -quality 84 +profile "*" "square/$f"; doneНа Windows PowerShell аналогичная идея выглядит так:
New-Item -ItemType Directory -Force squareGet-ChildItem *.jpg | ForEach-Object { gm convert $_.FullName -resize 600x600^ -gravity center -crop 600x600+0+0 +repage -quality 84 +profile "*" ("square" + $_.Name)}Работа с PDF
GraphicsMagick может работать с PDF как с изображениями страниц, но результат зависит от установленной поддержки PostScript/PDF через внешние компоненты. Практический сценарий — получить PNG или JPEG из первой страницы PDF:
gm convert -density 150 document.pdf[0] page.pngЗдесь:
-density 150задает плотность рендеринга;document.pdf[0]указывает первую страницу;page.png— результат.
Для всех страниц:
gm convert -density 150 document.pdf page-%03d.pngЕсли PDF не открывается, причина чаще всего не в синтаксисе команды, а в отсутствии нужного обработчика PDF/PostScript или в ограничениях сборки. При серверной обработке PDF нужно быть особенно осторожным: документы могут быть большими, поврежденными, специально созданными для нагрузки или содержащими сложную векторную графику.
Работа с метаданными и профилями
Метаданные могут быть полезными, но для веб-изображений часто становятся лишними. В JPEG-фотографии может быть EXIF, ICC-профиль, встроенная миниатюра, комментарии, данные камеры. В PNG могут быть текстовые чанки и цветовые профили.
Удаление профилей:
gm convert input.jpg +profile "*" output.jpgПакетно:
gm mogrify +profile "*" *.jpgПри работе с цветом нужно понимать компромисс. Если изображение готовится для сайта, удаление профилей обычно уменьшает вес. Если изображение готовится для печати, цветовые профили могут быть важны, и удалять их без проверки нельзя.
Работа с цветом и каналами
GraphicsMagick позволяет менять цветовое пространство:
gm convert input.jpg -colorspace RGB output.jpgЧерно-белый вариант:
gm convert input.jpg -colorspace Gray output.jpgИнверсия:
gm convert input.jpg -negate output.jpgНормализация:
gm convert input.jpg -normalize output.jpgКвантизация цвета:
gm convert input.png -colors 256 output.pngТакие команды применяют для уменьшения палитры, подготовки технических изображений, оптимизации PNG, создания черно-белых копий и автоматической цветокоррекции.
Командная строка против графического окна
GraphicsMagick можно использовать через gm display, но программа раскрывается именно в терминале. Визуальное окно удобно для просмотра, но не заменяет командную обработку.
| Задача | Через окно | Через команду |
|---|---|---|
| Быстро открыть одно изображение | удобно | возможно |
| Повернуть одно изображение | удобно | удобно |
| Уменьшить 500 файлов | неудобно | удобно |
| Создать миниатюры для сайта | неудобно | удобно |
| Повторить обработку через неделю | вручную | той же командой |
| Запустить на сервере | почти не подходит | подходит |
| Встроить в скрипт | нет | да |
| Настроить сложный пайплайн | ограниченно | да |
Если нужна ручная ретушь, маски, кисти, слои, пластика, удаление объектов, локальная коррекция кожи или цветокоррекция на глаз, GraphicsMagick не будет хорошей заменой полноценному редактору. Если нужно обработать много файлов по правилам, он гораздо практичнее визуального редактора.
История версий программы
GraphicsMagick появился как самостоятельная ветка, отделившаяся от ImageMagick. Проект сохранил идею набора командных инструментов для обработки изображений, но сделал акцент на стабильности интерфейса, производительности, совместимости и предсказуемом поведении.
Развитие программы удобно воспринимать не как цепочку отдельных сборок, а как несколько этапов.
Ранний этап
На раннем этапе GraphicsMagick закрепил собственную архитектуру вокруг команды gm. Это важное отличие: вместо множества отдельных исполняемых файлов пользователь получает один входной пункт и набор подкоманд. Такой подход упростил использование в скриптах и сделал поведение более единообразным.
В этот период сформировались основные команды:
convert— конвертация и обработка;mogrify— массовое изменение файлов;identify— анализ свойств изображения;compare— сравнение;composite— наложение;montage— сборка сетки;display— просмотр;import— захват изображения;animate— просмотр анимации.
Линия 1.0
Линия 1.0 закрепила базовый набор возможностей: конвертацию, изменение размера, работу с популярными форматами, командную структуру и библиотечные интерфейсы. Для пользователя это означало, что GraphicsMagick уже можно применять как самостоятельный инструмент пакетной обработки, а не как экспериментальную ветку.
Линия 1.1
Линия 1.1 развивала стабильность и совместимость. Для таких программ это важнее, чем внешние изменения интерфейса. Пользователи используют GraphicsMagick в скриптах, и внезапная смена поведения команды может сломать автоматизацию. Поэтому история программы во многом строится вокруг аккуратного развития существующих функций.
Линия 1.2
Линия 1.2 усиливала форматную совместимость, обработку изображений и работу с библиотеками. Для серверных сценариев становились важнее ограничения ресурсов, корректная обработка поврежденных файлов, предсказуемое поведение на больших изображениях и стабильность при пакетной обработке.
Линия 1.3
Линия 1.3 стала основной долгоживущей веткой GraphicsMagick. В ней появлялись исправления безопасности, улучшения кодеков, обновления сторонних библиотек, доработки TIFF, WebP, JPEG, PNG, PDF/PostScript-сценариев, HEIF/AVIF/JXL-направления, SVG-рендера, MSL и внутренних механизмов. История изменений показывает регулярные релизы, исправления проблем, найденных fuzz-тестированием, и внимание к защите от некорректных или вредоносных файлов.
Для обычного пользователя история GraphicsMagick означает следующее: программа развивалась не как визуальный редактор с ежегодным редизайном, а как рабочий инструмент для стабильной обработки изображений. Ее ценность не в новом интерфейсе, а в том, что команды остаются понятными, воспроизводимыми и пригодными для автоматизации.
Возможности GraphicsMagick
Изменение геометрии изображения
GraphicsMagick умеет:
менять размер через
-resize;создавать миниатюры через
-thumbnail;обрезать через
-crop;удалять поля через
-trim;поворачивать через
-rotate;зеркалить через
-flipи-flop;сдвигать изображение через
-roll;растягивать или скашивать через
-shear;добавлять рамки через
-borderи-frame;расширять холст через
-extent.
Примеры:
gm convert input.jpg -resize 1200x1200 output.jpggm convert input.jpg -crop 800x600+20+20 output.jpggm convert input.jpg -trim +repage output.jpggm convert input.jpg -rotate 90 output.jpggm convert input.jpg -flip output.jpggm convert input.jpg -flop output.jpgКоррекция изображения
Доступны операции:
-normalize;-equalize;-gamma;-sharpen;-blur;-despeckle;-colorspace;-colors;-negate;-modulate.
Примеры:
gm convert input.jpg -normalize output.jpggm convert input.jpg -gamma 1.2 output.jpggm convert input.jpg -sharpen 0x1 output.jpggm convert input.jpg -blur 0x2 output.jpggm convert input.jpg -colorspace Gray output.jpgЭто не замена ручной цветокоррекции, но хороший набор для автоматических операций.
Создание изображений
GraphicsMagick может создавать изображения с нуля:
gm convert -size 800x400 xc:white blank.pngСоздать плашку с текстом:
gm convert -size 800x300 xc:white -font Arial -pointsize 48 -fill black -gravity center -draw "text 0,0 'GraphicsMagick'" title.pngСоздать градиент:
gm convert -size 800x300 gradient:white-gray gradient.pngТакие команды полезны для заглушек, технических изображений, баннеров, тестовых картинок и генерации простых превью.
Работа с многостраничными файлами
Некоторые форматы могут содержать несколько страниц или кадров: TIFF, PDF, GIF. Выбор конкретной страницы выполняется через индекс:
gm convert document.pdf[0] page1.pnggm convert document.pdf[1] page2.pngДля GIF можно извлечь кадры:
gm convert animation.gif frame-%03d.pngДля создания GIF из кадров:
gm convert -delay 10 frame-*.png animation.gifКонтроль ресурсов
При обработке больших файлов важно ограничивать память и временные ресурсы. GraphicsMagick поддерживает параметр -limit, который позволяет задавать ограничения. Это особенно важно на сервере, где пользователи могут загружать неизвестные файлы.
Пример:
gm convert -limit memory 256MiB -limit disk 1GiB input.tif output.jpgОграничения помогают снизить риск аварийной нагрузки при обработке огромных TIFF, PDF, PNG или специально поврежденных файлов.
Сценарии использования
Для вебмастера
GraphicsMagick удобен для подготовки изображений к публикации. Типовой набор задач:
уменьшить фотографии до разумного размера;
убрать EXIF;
сжать JPEG;
сделать WebP-копии;
создать миниатюры;
проверить размеры изображений;
привести имена и форматы к единому виду.
Пример обработки папки:
mkdir webgm mogrify -path web -resize 1600x1600 -quality 84 +profile "*" *.jpgПроверка размеров:
gm identify -format "%f %wx%hn" web/*.jpgДля разработчика
Разработчику GraphicsMagick полезен как backend-инструмент. Его можно вызывать из PHP, Python, Node.js, Ruby, Go, shell-скриптов и других сред. Типичные задачи:
обработать изображение после загрузки;
создать несколько размеров;
сделать превью;
проверить формат;
удалить метаданные;
ограничить размеры;
подготовить файл для CDN;
сравнить скриншоты в тестах.
Пример логики:
Пользователь загружает файл.
Сервер проверяет MIME и размер.
GraphicsMagick получает временный файл.
Создаются версии
large,medium,thumb.Метаданные удаляются.
Результаты сохраняются в нужную директорию.
Для фотографа
Фотографу GraphicsMagick не заменит Lightroom, Capture One или Photoshop. Но он полезен на этапе технического экспорта:
быстро уменьшить отобранные JPEG;
подготовить изображения для отправки клиенту;
создать контактный лист;
удалить EXIF перед публикацией;
привести серию к одинаковому максимальному размеру;
сделать легкие копии для сайта.
Контактный лист:
gm montage selected/*.jpg -thumbnail 240x240 -label "%f" -tile 5x -geometry +8+8 proof.jpgДля контент-менеджера
Контент-менеджеру GraphicsMagick удобен, если работа идет с большим количеством картинок: статьи, каталоги, карточки товаров, галереи, документация. Один набор команд можно использовать постоянно:
mkdir readygm mogrify -path ready -resize 1400x1400 -quality 82 +profile "*" *.jpgПосле этого все изображения в папке ready будут легче, без лишних профилей и с ограничением размера.
Для системного администратора
Администратору GraphicsMagick полезен на серверах, где изображения обрабатываются автоматически. Важные задачи:
проверка форматов;
ограничение ресурсов;
пакетная конвертация;
диагностика проблемных файлов;
запуск по расписанию;
массовое создание превью;
обработка архивов изображений.
Пример проверки всех файлов:
gm identify *.jpgЕсли файл поврежден, команда может сообщить об ошибке, что удобно для автоматической диагностики.
Сравнение с аналогами
GraphicsMagick находится между несколькими категориями программ: командные конвертеры, графические пакетные обработчики, полноценные редакторы и программные библиотеки. Поэтому сравнивать его нужно не с одним конкурентом, а с разными инструментами для разных задач.
| Программа | Сильная сторона | В чем уступает для сценариев GraphicsMagick | Кому подойдет |
|---|---|---|---|
| ImageMagick | очень широкий набор функций, активная экосистема, мощная командная строка, большое количество форматов | может быть сложнее в совместимости между поколениями команд и поведением отдельных операций | разработчикам, которым нужен максимально широкий CLI-набор |
| XnConvert | удобный графический пакетный конвертер, много действий без командной строки | хуже подходит для серверных скриптов и автоматизации без GUI | пользователям, которым нужна пакетная обработка через окно |
| FastStone Photo Resizer | простая пакетная обработка на Windows: конвертация, переименование, resize, crop, текст, watermark | ограничен как серверный инструмент и менее гибок в сложных пайплайнах | пользователям Windows, которым нужен понятный GUI |
| IrfanView | быстрый просмотрщик с пакетной конвертацией и плагинами | меньше подходит для Linux/macOS-серверов и сложных автоматических цепочек | тем, кто хочет просмотрщик и быстрые массовые операции |
| GIMP | полноценное ручное редактирование, слои, маски, кисти, ретушь | тяжелее для массовой автоматизации и серверных задач | дизайнерам, ретушерам, пользователям визуального редактора |
| libvips | высокая скорость и низкое потребление памяти в больших потоках | менее привычен как универсальная CLI-программа для пользователя | высоконагруженным веб-сервисам и разработчикам |
| Pillow | удобная Python-библиотека для обработки изображений в коде | не является самостоятельной универсальной CLI-программой | Python-разработчикам |
ImageMagick ближе всего по философии. Он тоже работает через командную строку и поддерживает множество операций. Если нужен максимально широкий набор возможностей и свежие функции экосистемы, его часто выбирают первым. GraphicsMagick сильнее там, где ценится стабильность поведения, компактность и предсказуемость командного пайплайна. ImageMagick поддерживает большой набор форматов и командных инструментов, а его современная команда magick объединяет многие операции.
XnConvert удобнее для пользователя, который не хочет писать команды. Там можно выбрать файлы, добавить действия, указать формат вывода и запустить обработку через интерфейс. Он хорошо подходит для пакетного изменения размера, конвертации, поворота, сжатия и базовой коррекции. Но если нужно встроить обработку в сервер, cron, CI/CD или backend, командный подход GraphicsMagick практичнее. XnConvert позиционируется как кроссплатформенный пакетный конвертер с автоматизацией редактирования и десятками действий.
FastStone Photo Resizer проще для типичного Windows-пользователя. Его удобно открыть, добавить изображения, выбрать выходную папку, включить изменение размера, текст или водяной знак. Но это именно пользовательская программа с графическим сценарием. GraphicsMagick лучше подходит для тех случаев, где обработка должна выполняться без участия человека. FastStone Photo Resizer ориентирован на пакетную конвертацию, переименование, resize, crop, rotate, изменение глубины цвета, добавление текста и watermark.
IrfanView хорош как быстрый просмотрщик с полезными дополнительными функциями. Он удобен для просмотра папок, простого редактирования и пакетной конвертации через File → Batch Conversion/Rename. Но GraphicsMagick сильнее в автоматизации и работе из скриптов. IrfanView рационален на рабочем компьютере, GraphicsMagick — в потоке обработки.
GIMP нужен, когда изображение редактируют руками. Слои, маски, кисти, выделения, ретушь, сложная цветокоррекция, композиции — это зона GIMP. GraphicsMagick работает иначе: он не дает дизайнеру полноценную рабочую среду, зато быстро выполняет формализованные операции. GIMP — кроссплатформенный свободный графический редактор для GNU/Linux, macOS, Windows и других систем.
libvips ближе к высокопроизводительной библиотеке, чем к пользовательскому конвертеру. Он хорош для больших серверных нагрузок, особенно там, где важны скорость и память. GraphicsMagick проще воспринимается как универсальная командная утилита, а libvips — как технологическая основа для производительного сервиса. libvips использует demand-driven и horizontally threaded подход, что помогает ему работать быстро и экономно по памяти.
Pillow — выбор Python-разработчика. Если обработка изображений пишется прямо в Python-коде, Pillow удобнее: открыл файл, изменил размер, сохранил. Но если нужна готовая системная команда, которую можно вызвать из любого языка, GraphicsMagick проще встроить как внешний обработчик. Pillow является развитием Python Imaging Library и добавляет возможности обработки изображений в Python.
Преимущества GraphicsMagick
Хорошо подходит для автоматизации
Главное преимущество GraphicsMagick — работа в скриптах. Команду можно сохранить, повторить, передать другому человеку, встроить в процесс публикации, запускать по расписанию.
Пример:
gm convert input.jpg -resize 1200x1200 -quality 84 +profile "*" output.jpgЭта команда не зависит от того, кто ее запускает. Она выполняет одинаковые действия и дает предсказуемый результат.
Удобен для пакетной обработки
Одна команда может обработать всю папку:
gm mogrify -resize 1200x1200 *.jpgДля визуального редактора такая задача превращается в серию действий или запись макроса. В GraphicsMagick это обычный сценарий.
Работает без тяжелого интерфейса
Программа не требует открывать большое окно редактора, загружать панели, плагины, кисти, шрифты и рабочую среду. Она получает файл, выполняет операцию и завершает работу. Это удобно на сервере и в автоматических сценариях.
Поддерживает много форматов
GraphicsMagick работает с популярными и техническими форматами. Это важно, когда в одной папке могут быть JPEG, PNG, TIFF, GIF, WebP, PDF, PNM или более редкие форматы.
Подходит для серверов
Программу можно вызвать из backend-кода. Она не требует ручного взаимодействия, умеет читать параметры из команды, возвращает код завершения и может быть включена в обработчик загрузок.
Умеет не только конвертировать
GraphicsMagick — не просто конвертер изображений. Он умеет:
анализировать файлы;
сравнивать изображения;
накладывать изображения друг на друга;
создавать сетки;
делать подписи;
применять фильтры;
обрабатывать многостраничные файлы;
создавать новые изображения;
работать с анимацией;
ограничивать ресурсы.
Команды легко документировать
Команду можно вставить в инструкцию, README, документацию проекта или техническое задание. Это упрощает повторение процесса.
Например:
gm mogrify -path ready -resize 1600x1600 -quality 85 +profile "*" *.jpgЛюбой пользователь, у которого установлен GraphicsMagick, может выполнить такую команду и получить тот же тип результата.
Недостатки GraphicsMagick
Порог входа выше, чем у GUI-программ
Новичку проще открыть XnConvert или FastStone Photo Resizer, чем писать:
gm convert input.jpg -resize 1200x1200 -quality 85 +profile "*" output.jpgКомандная строка требует аккуратности: кавычки, пути, расширения, порядок параметров, маски файлов.
Нет полноценной современной графической оболочки
gm display позволяет смотреть изображения и выполнять некоторые интерактивные действия, но это не рабочая среда уровня GIMP, Photoshop или Affinity Photo. Здесь нет привычного слоя инструментов для визуальной ретуши.
Ошибки в mogrify могут испортить исходники
mogrify перезаписывает файлы. Если запустить неправильную команду в папке с оригиналами, можно потерять качество или размеры файлов. Поэтому безопасная практика — сначала использовать gm convert на одном файле, затем mogrify -path в отдельную папку.
Поддержка форматов зависит от сборки
На одном компьютере WebP может работать, на другом — нет. На одном сервере PDF конвертируется, на другом команда падает. Причина обычно в библиотеках, с которыми собран GraphicsMagick.
Не все задачи удобно решать одной командой
Можно построить сложные цепочки, но иногда проще использовать Python, Node.js или специализированный редактор. Например, сложная обработка с условиями, анализом содержимого, распознаванием объектов и разными ветками логики лучше реализуется в коде.
Не заменяет ручную ретушь
GraphicsMagick не понимает композицию, кожу, предметную ретушь, локальные маски, художественную цветокоррекцию. Он выполняет команды. Если команда задана грубо, результат будет грубым.
Безопасность при обработке файлов
GraphicsMagick часто используют на сервере, где пользователь может загрузить неизвестный файл. В таком сценарии нельзя просто взять любой файл и передать его в обработчик без ограничений.
Нужны базовые меры:
ограничивать размер файла до обработки;
проверять MIME и расширение;
работать во временной папке;
задавать лимиты памяти и диска;
не хранить результат поверх оригинала;
не обрабатывать PDF/PostScript без понимания рисков;
обновлять системные библиотеки;
проверять код завершения команды;
логировать ошибки;
удалять временные файлы.
Пример с лимитами:
gm convert -limit memory 256MiB -limit disk 1GiB input.png -resize 1200x1200 output.jpgДля пользовательских загрузок также лучше ограничивать итоговые размеры:
gm convert input.jpg -resize 4000x4000> output.jpgСимвол > означает: уменьшать только если изображение больше заданного размера. В shell его часто нужно экранировать или брать команду в кавычки, потому что > может восприниматься как перенаправление вывода.
Частые ошибки и решения
Команда gm не найдена
Ошибка означает, что система не видит исполняемый файл GraphicsMagick. Причины:
программа не установлена;
путь к
gmне добавлен вPATH;терминал открыт до изменения
PATH;используется не та оболочка;
на Windows команда запускается не из нужной среды.
Проверка:
gm versionЕсли команда не работает, нужно проверить путь к установленной программе и переменную PATH.
Файл не найден
Частая причина — пробелы в пути. Неправильно:
gm convert my photos/photo.jpg output.jpgПравильно:
gm convert "my photos/photo.jpg" output.jpgНа Windows:
gm convert "C:UsersUserPicturesphoto 01.jpg" "C:UsersUserPicturesphoto 01.png"mogrify перезаписал исходники
Это не ошибка программы, а нормальное поведение команды. Чтобы избежать перезаписи, используйте отдельную папку:
mkdir outputgm mogrify -path output -resize 1200x1200 *.jpgИли сначала тестируйте на одном файле через convert:
gm convert input.jpg -resize 1200x1200 test.jpgPDF не конвертируется
Частые причины:
отсутствует поддержка PDF/PostScript;
не установлен Ghostscript;
PDF поврежден;
PDF слишком большой;
включены ограничения безопасности;
страница содержит сложную векторную графику.
Проверка первой страницы:
gm convert -density 150 document.pdf[0] page.pngЕсли ошибка остается, нужно проверять поддержку PDF в конкретной сборке.
WebP, HEIC, AVIF или JXL не работают
Поддержка современных форматов зависит от библиотек. Проверка:
gm convert -list formatsЕсли формата нет в списке или рядом нет режима записи, эта сборка не сможет выполнить нужную операцию.
Результат стал хуже
Причины:
слишком низкий
-quality;повторное сохранение JPEG;
слишком сильное уменьшение;
неправильное принудительное изменение размера через
!;удален важный цветовой профиль;
применен резкий фильтр без проверки.
Для JPEG лучше не перезаписывать файл много раз. Каждый цикл сохранения с потерями может ухудшать качество.
Неправильно работает маска файлов
На Linux/macOS *.jpg раскрывает shell. На Windows поведение может отличаться в зависимости от cmd, PowerShell и самой программы. Если команда не находит файлы, проверьте текущую папку:
dirили:
lsИ используйте кавычки для путей с пробелами.
Кириллица в путях
Современные системы обычно справляются с Unicode-путями, но проблемы возможны в старых оболочках, скриптах и сборках. Для надежности в автоматизации лучше использовать латиницу в технических папках:
C:workimagesinputC:workimagesoutputПрактичные наборы команд
Подготовка фотографий для сайта
mkdir webgm mogrify -path web -resize 1600x1600 -quality 84 +profile "*" *.jpgСоздание миниатюр
mkdir thumbsgm mogrify -path thumbs -thumbnail 400x400 -quality 82 +profile "*" *.jpgКвадратные превью
mkdir squarefor f in *.jpg; do gm convert "$f" -resize 600x600^ -gravity center -crop 600x600+0+0 +repage -quality 84 +profile "*" "square/$f"; doneКонвертация PNG в JPEG
mkdir jpggm mogrify -path jpg -format jpg -quality 85 *.pngКонвертация JPEG в WebP
mkdir webpgm mogrify -path webp -format webp *.jpgУдаление метаданных
mkdir cleangm mogrify -path clean +profile "*" *.jpgПроверка размеров всех изображений
gm identify -format "%f %wx%hn" *.jpgКонтактный лист
gm montage *.jpg -thumbnail 220x220 -label "%f" -tile 5x -geometry +8+8 sheet.jpgНаложение логотипа
gm composite -gravity SouthEast -geometry +30+30 logo.png photo.jpg photo-logo.jpgСравнение двух файлов
gm compare -metric mse -file diff.png before.png after.pngЛучшие сценарии для GraphicsMagick
GraphicsMagick стоит использовать, если задача формулируется так:
Нужно обработать всю папку одинаково.
Нужно запускать обработку автоматически.
Нужно встроить обработку в сайт.
Нужно сделать несколько размеров одного изображения.
Нужно удалить EXIF перед публикацией.
Нужно быстро проверить формат и размер.
Нужно создать миниатюры без ручного редактора.
Нужно сравнить два результата обработки.
Нужно собрать сетку из множества картинок.
Нужно повторять одну и ту же операцию регулярно.
Программа особенно хороша в рабочих процессах, где изображения являются частью конвейера: загрузка, проверка, обработка, сохранение, публикация.
Где GraphicsMagick не лучший выбор
GraphicsMagick не стоит выбирать как основной инструмент, если нужна:
ретушь лица;
удаление сложных объектов;
работа со слоями;
ручное выделение областей;
дизайн баннеров;
рисование кистями;
точная художественная цветокоррекция;
визуальная работа с макетами;
простой интерфейс для неподготовленного пользователя.
Для этих задач лучше использовать GIMP, Photoshop, Affinity Photo, Krita или другой визуальный редактор. GraphicsMagick — не программа для посидеть и красиво поправить фото, а программа для обработать по правилам.
Итоговая оценка
GraphicsMagick — сильный инструмент для конвертации, пакетной обработки и автоматизации изображений. Он не пытается быть красивым фоторедактором и не конкурирует с программами, где пользователь работает кистями, слоями и масками. Его область — командная строка, сервер, повторяемые операции, массовая обработка, техническая подготовка файлов.
Главные плюсы программы — стабильная логика команд, гибкость, работа с множеством форматов, пакетная обработка, возможность встроить ее в скрипты и backend-процессы. Главные минусы — высокий порог входа, отсутствие современной графической оболочки и необходимость аккуратно обращаться с mogrify.
GraphicsMagick особенно рационален для вебмастеров, разработчиков, администраторов, контент-менеджеров и пользователей, которым нужно не отредактировать одну фотографию, а регулярно готовить много изображений по понятным правилам. Для ручной ретуши лучше взять визуальный редактор. Для автоматической подготовки изображений GraphicsMagick остается одним из самых практичных вариантов.
