GraphicsMagick - скачать полную версию бесплатно на русском

GraphicsMagick: обработка изображений из командной строки

GraphicsMagick: обработка изображений из командной строки

Главная команда программы — gm. Через неё запускаются подкоманды: convert, mogrify, identify, compare, composite, display, montage, animate, import, batch, benchmark, conjure, time, version. Такой подход делает GraphicsMagick особенно полезной там, где нужно обработать не одну картинку вручную, а сотни, тысячи или миллионы файлов по одинаковым правилам.

Выбор редакции

Скачать GraphicsMagick бесплатно

Рекомендуем

ФотоМАСТЕР

  • Простой интерфейс
  • Ретушь и замена фона
  • Фильтры и автокоррекция
  • Быстрая обработка фото

GraphicsMagick

  • Сложнее простых редакторов
  • Может быть избыточна для быстрых правок
  • Нужно время на освоение
  • Не все функции нужны новичку

Программа подходит для веб-разработчиков, администраторов сайтов, DevOps-инженеров, контент-команд, владельцев каталогов изображений, специалистов по автоматизации, а также для пользователей, которым нужна пакетная обработка изображений без тяжёлого графического интерфейса. GraphicsMagick хорошо справляется с задачами вроде уменьшить все JPEG в папке, сделать WebP-копии PNG-файлов, проверить размер и цветовую модель изображений, создать миниатюры, удалить лишние профили, наложить логотип, сравнить две версии картинки или подготовить изображения для сайта.

При этом важно сразу понимать характер программы: GraphicsMagick не заменяет Adobe Photoshop, GIMP или Affinity Photo в задачах художественной ретуши, работы со слоями, кистями, масками и ручной цветокоррекции. Её сильная сторона — командная строка, скрипты, пакетная обработка, стабильное поведение команд и предсказуемый результат.


Что такое GraphicsMagick

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

Основной принцип GraphicsMagick простой: пользователь задаёт действие в виде команды, программа выполняет его и создаёт результат. Например, команда:

gm convert photo.png photo.jpg

преобразует PNG-файл в JPEG. Команда:

gm identify photo.jpg

показывает технические характеристики изображения. Команда:

gm mogrify -resize 1200x1200 *.jpg

массово изменяет размер JPEG-файлов в текущей папке.

Такой стиль работы сначала кажется сухим, но именно он делает GraphicsMagick удобной для автоматизации. В обычном редакторе пользователь открывает файл, выбирает меню, меняет параметры, сохраняет результат и повторяет то же самое для следующего файла. В GraphicsMagick та же операция записывается одной командой и может быть применена к любому количеству изображений.

GraphicsMagick используют в нескольких основных сценариях:

  • конвертация изображений между форматами;

  • пакетное изменение размера фотографий;

  • подготовка графики для сайтов;

  • создание миниатюр;

  • удаление метаданных и профилей;

  • проверка параметров файла перед публикацией;

  • обработка изображений в backend-скриптах;

  • генерация превью на сервере;

  • сравнение изображений после автоматической обработки;

  • наложение логотипов, рамок, масок и графических элементов;

  • обработка TIFF, PNG, JPEG, WebP, PDF и других форматов при наличии нужных библиотек в сборке.

GraphicsMagick удобно воспринимать как технический движок для работы с изображениями. У него есть графический компонент gm display, но основная ценность программы раскрывается именно через командную строку.


Интерфейс и принцип работы

GraphicsMagick не строится вокруг одного большого окна с панелями инструментов. Привычные кнопки вроде Открыть, Сохранить как, Экспорт, Размер изображения и Повернуть в основном сценарии заменены командами. Пользователь открывает терминал, вводит команду gm, добавляет нужную подкоманду и параметры.

Общая схема выглядит так:

gm подкоманда параметры входной_файл выходной_файл

Например:

gm convert input.jpg -resize 1200x1200 output.jpg

Здесь:

  • gm — главный исполняемый файл GraphicsMagick;

  • convert — подкоманда для создания нового файла с преобразованием;

  • input.jpg — исходное изображение;

  • -resize 1200x1200 — операция изменения размера;

  • output.jpg — результат.

Главные подкоманды GraphicsMagick:

Подкоманда Назначение Типичный пример задачи
convert Преобразует изображение и создаёт новый файл PNG в JPEG, JPEG в WebP, изменение размера с сохранением копии
mogrify Изменяет одно или несколько изображений, часто прямо на месте Массовый ресайз всех файлов в папке
identify Показывает характеристики изображения Проверка размера, формата, глубины цвета
compare Сравнивает два изображения Поиск отличий между оригиналом и обработанной версией
composite Накладывает одно изображение на другое Логотип, водяной знак, маска, декоративный слой
display Открывает изображение в графическом окне Просмотр и базовые интерактивные операции
montage Собирает несколько изображений в одну плитку Контактный лист, набор миниатюр
animate Показывает анимацию Просмотр GIF или последовательности кадров
import Делает снимок окна или области экрана в X-среде Захват экрана в файл
batch Выполняет набор команд Повторяемый сценарий обработки
benchmark Проверяет скорость выполнения операций Оценка производительности обработки
version Показывает сведения о сборке Проверка доступных возможностей установленной программы

У программы есть и графическая часть — gm display. Она выглядит старомодно, но даёт прямой доступ к просмотру и некоторым операциям над изображением. В окне gm display используется панель Commands, где расположены основные разделы: File, Edit, View, Transform, Enhance, Effects, F/X, Image Edit, Miscellany, Help.

На скриншоте видно характерный интерфейс gm display: слева находится панель Commands, а рядом раскрыто меню Enhance. В этом меню доступны команды Hue…, Saturation…, Brightness…, Gamma…, Spiff, Dull, Equalize, Normalize, Negate, Grayscale, Map…, Quantize…. Это не современная графическая оболочка, но для просмотра, проверки изображения и быстрых операций она полезна.


Командная логика GraphicsMagick

GraphicsMagick удобна тем, что операции можно комбинировать. Одна команда может не только изменить формат, но и одновременно уменьшить изображение, удалить профили, задать качество и переименовать результат.

Пример:

gm convert input.jpg -resize 1600x1600 -quality 82 -strip output.jpg

Эта команда:

  • берёт файл input.jpg;

  • уменьшает изображение так, чтобы оно вписывалось в 1600×1600 пикселей;

  • сохраняет JPEG с качеством 82;

  • удаляет профили и текстовые атрибуты через -strip;

  • записывает результат в output.jpg.

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

Команды GraphicsMagick читаются слева направо. Это важно: параметры применяются в том порядке, в котором они указаны. Если сначала изменить размер, а потом обрезать — результат будет одним. Если сначала обрезать, а потом изменить размер — другим.

Пример:

gm convert input.jpg -crop 800x600+100+50 -resize 400x300 output.jpg

Здесь программа сначала вырежет область 800×600 со смещением +100+50, а затем уменьшит её до 400×300.

Другой вариант:

gm convert input.jpg -resize 400x300 -crop 200x150+20+20 output.jpg

Здесь сначала будет выполнено изменение размера, а потом обрезка уже уменьшенной картинки.

Именно поэтому GraphicsMagick требует внимательности. Программа не скрывает логику за визуальными диалогами: пользователь сам задаёт точную последовательность обработки.


Поддерживаемые форматы

GraphicsMagick работает с большим количеством графических форматов. В практических задачах чаще всего используются JPEG, PNG, GIF, TIFF, WebP, BMP, HEIC, AVIF, PDF, SVG, JPEG 2000, JPEG XL, PNM, PPM, TGA, ICO и другие форматы. Конкретный набор доступных форматов зависит от сборки программы и подключённых библиотек: одна установка может поддерживать WebP и HEIC, другая — только базовые форматы.

Проверить список доступных форматов можно командой:

gm convert -list formats

В результате GraphicsMagick выводит таблицу с форматами, правами чтения и записи, а также кратким описанием. Это важная команда, потому что не стоит угадывать, поддерживает ли конкретная установка HEIC, AVIF, WebP, JXL или PDF. Правильнее проверить возможности прямо в системе, где будет выполняться обработка.

Практическая таблица форматов:

Формат Для чего использовать Что учитывать
JPEG / JPG Фотографии, изображения для сайтов, каталоги товаров Формат с потерями, повторное сохранение ухудшает качество
PNG Скриншоты, интерфейсная графика, изображения с прозрачностью Обычно крупнее JPEG на фотографиях
WebP Оптимизация изображений для веба Поддержка зависит от сборки
GIF Простая анимация, небольшая графика Ограниченная палитра, не лучший выбор для фото
TIFF Сканы, архивы, полиграфические и технические файлы Файлы могут быть очень большими
PDF Преобразование страниц в изображения Для нормальной работы часто требуется внешний обработчик PostScript/PDF
SVG Векторная графика, логотипы, схемы Результат растеризации зависит от подключённых библиотек
HEIC / HEIF Фото с мобильных устройств Поддержка зависит от кодеков и сборки
AVIF Современная веб-графика с высокой степенью сжатия Не в каждой сборке доступна запись
JPEG XL / JXL Современный формат для качественного сжатия Поддержка зависит от наличия соответствующей библиотеки
BMP Простая совместимость, служебные задачи Часто даёт большой размер файла
ICO Значки приложений и сайтов Может содержать несколько размеров в одном файле

Для обычного пользователя это означает следующее: если команда не открывает или не сохраняет нужный формат, проблема не всегда в самой команде. Часто причина в том, что конкретная сборка GraphicsMagick не имеет нужного делегата или библиотеки.


История версий и развития программы

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

Для программы это принципиально важно. В визуальном редакторе пользователь может привыкнуть к расположению кнопок, но в серверной обработке важнее другое: чтобы команда, написанная много лет назад, продолжала работать так же или почти так же. Если скрипт каждый день обрабатывает загружаемые изображения, внезапное изменение поведения параметров может сломать рабочий процесс. GraphicsMagick исторически делает ставку именно на стабильность таких сценариев.

Условно развитие программы можно разделить на несколько этапов.

Ранний этап: отделение и формирование самостоятельного инструмента

Первый этап связан с отделением от ImageMagick и закреплением собственной архитектуры. В этот период GraphicsMagick унаследовал многие идеи исходного проекта, но стал развиваться отдельно. Для пользователей это выразилось в появлении единой команды gm, через которую запускаются подкоманды.

Такой подход отличается от классической схемы, где отдельные утилиты запускаются самостоятельными командами. В GraphicsMagick пользователь работает через единый вход:

gm convert ...
gm identify ...
gm mogrify ...
gm compare ...

Это удобно для систем, где нужно ясно понимать, какая именно программа выполняет операцию.

Развитие ветки 1.x

Ветка 1.x стала основной долгосрочной линией GraphicsMagick. В ней постепенно улучшались кодеки, обработка форматов, устойчивость, поведение команд, производительность и совместимость с разными платформами.

На практике это означает, что программа не превращалась в визуальный редактор, а укрепляла свою главную роль: быть надёжным инструментом для командной обработки изображений. В разные периоды улучшалась работа с TIFF, PNG, JPEG, PDF/PostScript, WebP, HEIC, AVIF, JPEG XL и другими форматами, расширялись возможности библиотек и повышалась устойчивость к ошибочным или повреждённым файлам.

Развитие API и библиотек

GraphicsMagick — это не только командная строка. Вокруг программы развивались программные интерфейсы: C API, Magick++ для C++, PerlMagick, TclMagick и интеграции через сторонние обёртки. Такой подход сделал GraphicsMagick полезной не только для ручного запуска команд, но и для приложений, которые должны обрабатывать изображения внутри своей логики.

Для разработчика это выглядит так: можно вызвать gm как внешнюю команду из shell, Python, Node.js, Ruby, PHP или другого языка, а можно использовать библиотечный интерфейс там, где он подходит лучше.

Современная роль GraphicsMagick

GraphicsMagick сохраняет нишу программы для стабильной автоматизированной обработки изображений. Она не конкурирует с визуальными редакторами по удобству ретуши, но остаётся сильной в задачах, где важны повторяемость, скрипты, пакетная обработка, серверное использование и контроль над параметрами.

История программы показывает её характер: GraphicsMagick развивается не как модный редактор с новым интерфейсом, а как рабочий инструмент, который ценят за предсказуемость и точность.


Основные возможности GraphicsMagick

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

Конвертация изображений

Конвертация — одна из базовых задач GraphicsMagick. Подкоманда convert берёт исходный файл, применяет нужные параметры и создаёт новый файл.

Примеры:

gm convert input.png output.jpg
gm convert input.tif output.png
gm convert input.jpg output.webp
gm convert input.heic output.jpg

Если формат поддерживается установленной сборкой, расширение выходного файла обычно достаточно для выбора нужного кодека. Например, output.jpg создаст JPEG, output.png — PNG, output.webp — WebP.

Для конвертации с изменением качества:

gm convert input.jpg -quality 82 output.jpg

Для конвертации PNG в JPEG с белым фоном вместо прозрачности:

gm convert input.png -background white -flatten output.jpg

Это полезно, потому что JPEG не поддерживает прозрачность. Если просто сохранить прозрачный PNG в JPEG, прозрачные области могут стать чёрными или получить нежелательный фон. Параметры -background white -flatten явно задают белую подложку.

Изменение размера изображений

Изменение размера выполняется через -resize.

Простое уменьшение:

gm convert photo.jpg -resize 1200x800 resized.jpg

Уменьшение по максимальным границам:

gm convert photo.jpg -resize 1600x1600 output.jpg

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

Изменение размера в процентах:

gm convert photo.jpg -resize 50% small.jpg

Принудительный размер без сохранения пропорций:

gm convert photo.jpg -resize 800x600! forced.jpg

Восклицательный знак заставляет программу сделать ровно 800×600. Использовать его нужно осторожно: изображение может исказиться.

Изменение только если изображение больше заданного размера:

gm convert photo.jpg -resize 1600x1600> output.jpg

Символ > означает: уменьшать только те изображения, которые превышают указанную геометрию. Это удобно для каталогов, где часть файлов уже маленькая.

Создание миниатюр

Для миниатюр можно использовать -thumbnail. Этот параметр ориентирован на быстрое создание небольших копий.

gm convert photo.jpg -thumbnail 300x300 thumb.jpg

Если нужна миниатюра строго 300×300 с обрезкой под квадрат, можно сделать так:

gm convert photo.jpg -resize 300x300^ -gravity center -extent 300x300 thumb.jpg

Здесь:

  • -resize 300x300^ увеличивает или уменьшает изображение так, чтобы оно полностью покрывало область 300×300;

  • -gravity center выбирает центр;

  • -extent 300x300 обрезает или дополняет изображение до точного размера.

Такой сценарий полезен для аватаров, карточек товаров, галерей, CMS и интернет-магазинов.

Пакетная обработка через mogrify

mogrify — мощная подкоманда для массовых изменений. Она может обрабатывать сразу много файлов:

gm mogrify -resize 1200x1200 *.jpg

Эта команда изменит JPEG-файлы в текущей папке. Главная особенность mogrify: она может перезаписывать исходники. Поэтому работать с ней нужно аккуратно.

Безопасный подход — сначала сделать копию папки или использовать отдельную рабочую директорию.

Пакетная конвертация PNG в JPEG:

gm mogrify -format jpg *.png

Пакетная конвертация PNG в WebP:

gm mogrify -format webp *.png

Пакетное удаление профилей и уменьшение JPEG:

gm mogrify -resize 1600x1600 -quality 82 -strip *.jpg

Для задач, где нельзя рисковать исходниками, лучше использовать цикл с gm convert и отдельной папкой результата.

Пример для Linux/macOS:

mkdir output
for file in *.jpg; do
  gm convert "$file" -resize 1600x1600 -quality 82 -strip "output/$file"
done

Пример для Windows PowerShell:

mkdir output
Get-ChildItem *.jpg | ForEach-Object {
  gm convert $_.FullName -resize 1600x1600 -quality 82 -strip "output$($_.Name)"
}

Обрезка изображения

Обрезка выполняется через -crop.

gm convert input.jpg -crop 800x600+100+50 output.jpg

Формула читается так:

  • 800x600 — ширина и высота области;

  • +100+50 — смещение от левого верхнего угла;

  • output.jpg — новый файл.

Если нужно обрезать центр изображения, удобнее использовать -gravity center:

gm convert input.jpg -gravity center -crop 800x600+0+0 output.jpg

Для удаления пустых краёв используется -trim:

gm convert input.png -trim output.png

Это полезно при обработке скриншотов, логотипов и изображений с однотонной рамкой.

Поворот и отражение

Поворот на 90 градусов:

gm convert input.jpg -rotate 90 output.jpg

Поворот в другую сторону:

gm convert input.jpg -rotate -90 output.jpg

Горизонтальное отражение:

gm convert input.jpg -flop mirrored.jpg

Вертикальное отражение:

gm convert input.jpg -flip vertical.jpg

В графическом окне gm display похожие операции доступны через меню Transform. Там есть пункты Crop, Chop, Flip, Flop, Rotate Right, Rotate Left, Rotate…, Shear…, Roll…, Trim Edges.

На этом скриншоте видно, что даже графический интерфейс GraphicsMagick сохраняет техническую логику программы: пользователь выбирает не художественные инструменты вроде кистей и слоёв, а конкретные операции трансформации изображения.

Сжатие JPEG и управление качеством

Для JPEG часто используется параметр -quality.

gm convert input.jpg -quality 85 output.jpg

Чем выше значение, тем лучше качество и больше размер файла. Чем ниже значение, тем сильнее сжатие и заметнее артефакты.

Практические ориентиры:

Значение -quality Когда использовать
95 Почти максимальное качество, крупный файл
85 Хороший баланс для фотографий
80–82 Часто подходит для веба
70–75 Сильное сжатие, возможны заметные артефакты
Ниже 70 Только если размер важнее качества

Для изображений сайта часто применяют связку:

gm convert input.jpg -resize 1600x1600 -quality 82 -strip output.jpg

Эта команда одновременно уменьшает файл по пикселям, сжимает JPEG и удаляет лишние профили.

Удаление профилей и метаданных

Параметр -strip удаляет встроенные профили и текстовые атрибуты:

gm convert input.jpg -strip output.jpg

Для веб-публикации это часто полезно: файл становится меньше, из него удаляются лишние данные, а изображение быстрее загружается. Однако применять -strip нужно осознанно. Если файл содержит важную информацию об авторе, лицензии, цветовом профиле или производственном процессе, удаление профилей может быть нежелательным.

Альтернативный вариант:

gm convert input.jpg +profile "*" output.jpg

Эта команда удаляет профили через +profile "*".

Практическая разница для большинства веб-задач проста: если нужно быстро очистить файл перед публикацией, чаще используют -strip. Если требуется тонко управлять профилями, работают с +profile и конкретными именами профилей.

Получение информации о файле

identify — одна из самых полезных подкоманд GraphicsMagick. Она показывает технические сведения об изображении.

Короткий вывод:

gm identify image.jpg

Подробный вывод:

gm identify -verbose image.jpg

Через identify можно узнать:

  • формат файла;

  • ширину и высоту в пикселях;

  • глубину цвета;

  • цветовую модель;

  • наличие профилей;

  • количество кадров;

  • размер файла;

  • тип сжатия;

  • дополнительные свойства изображения;

  • признаки повреждения или неполного файла.

Пример практического применения:

gm identify *.jpg

Команда покажет параметры всех JPEG-файлов в текущей папке. Это удобно перед массовой обработкой: можно быстро увидеть, какие изображения слишком большие, какие имеют другой формат, какие отличаются по пропорциям.

Сравнение изображений

compare используется для поиска отличий между двумя изображениями.

gm compare original.png changed.png diff.png

Программа сравнит original.png и changed.png, а результат различий сохранит в diff.png.

Сценарии использования:

  • проверка, насколько изменилась картинка после сжатия;

  • сравнение результата автоматической обработки с эталоном;

  • тестирование генерации изображений в CI/CD;

  • поиск различий между двумя версиями скриншота;

  • контроль качества при массовом преобразовании.

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

Наложение изображений

composite накладывает одно изображение на другое.

Пример:

gm composite watermark.png photo.jpg result.jpg

Здесь watermark.png накладывается на photo.jpg, а результат сохраняется в result.jpg.

С указанием положения:

gm composite -gravity southeast watermark.png photo.jpg result.jpg

-gravity southeast размещает накладываемое изображение в правом нижнем углу.

Можно добавить отступ через геометрию:

gm composite -gravity southeast -geometry +20+20 watermark.png photo.jpg result.jpg

Такой вариант удобен для логотипов, водяных знаков, отметок, бейджей, рамок и оформления изображений перед публикацией.

Создание монтажей и контактных листов

montage собирает несколько изображений в одну плитку.

gm montage *.jpg montage.jpg

С указанием размера миниатюр и сетки:

gm montage *.jpg -thumbnail 200x200 -tile 4x -geometry +10+10 contact-sheet.jpg

Эта команда создаёт контактный лист: изображения будут уменьшены до 200×200, расположены по 4 в ряд, с промежутками 10 пикселей.

Это удобно для:

  • предпросмотра большой папки;

  • подготовки каталога изображений;

  • визуального контроля партии файлов;

  • создания листа миниатюр для архива.

Работа с цветом и простыми улучшениями

GraphicsMagick умеет выполнять базовые операции цветокоррекции и тональной обработки. В графическом меню Enhance доступны команды Hue…, Saturation…, Brightness…, Gamma…, Equalize, Normalize, Negate, Grayscale, Quantize….

Через командную строку можно сделать изображение чёрно-белым:

gm convert input.jpg -colorspace Gray gray.jpg

Инвертировать цвета:

gm convert input.jpg -negate negative.jpg

Нормализовать уровни:

gm convert input.jpg -normalize normalized.jpg

Изменить гамму:

gm convert input.jpg -gamma 1.2 gamma.jpg

Добавить резкость:

gm convert input.jpg -sharpen 0x1 sharpened.jpg

Эти функции не заменяют ручную цветокоррекцию в профессиональном редакторе, но хорошо подходят для автоматических сценариев: привести набор сканов к более контрастному виду, сделать технические превью, подготовить однотипные изображения для каталога.


Работа с GUI-компонентом gm display

gm display — это графический просмотрщик и интерактивный инструмент GraphicsMagick. Он особенно заметен на Unix-подобных системах с X-сервером, но общий стиль интерфейса остаётся характерным для старых X11-приложений.

Запуск:

gm display image.jpg

После запуска пользователь видит изображение и панель Commands. Через неё можно открыть меню и выбрать действие.

Основные разделы панели:

Меню Что в нём находится
File Открытие изображения, переход к другим файлам, визуальный каталог
Edit Операции выделения, копирования и вставки
View Масштаб просмотра, восстановление размера, сохранение вида
Transform Обрезка, поворот, отражение, сдвиг, обрезка краёв
Enhance Яркость, гамма, насыщенность, нормализация, оттенки серого
Effects Эффекты обработки изображения
F/X Более специфические визуальные преобразования
Image Edit Интерактивное редактирование и аннотации
Miscellany Служебные операции
Help Справка

Меню View содержит команды Half Size, Original Size, Double Size, Resize…, Restore, Save To. Они управляют отображением изображения в окне.

Меню Transform отвечает за изменение геометрии изображения. На практике здесь важны Crop, Flip, Flop, Rotate Right, Rotate Left, Rotate…, Trim Edges. Через эти пункты можно сделать часть операций без написания команды.

При этом gm display не стоит воспринимать как современный редактор. У него нет привычной системы слоёв, истории правок в стиле больших графических приложений, панели кистей, сложных масок и удобной ретуши. Он полезен для просмотра, проверки, простых интерактивных операций и понимания того, как GraphicsMagick работает с изображением.


Инструкция: как уменьшить папку фотографий

Одна из самых частых задач — уменьшить все фотографии в папке перед публикацией на сайте, отправкой клиенту или загрузкой в CMS.

Правильный порядок работы:

  1. Создать копию исходной папки.

  2. Открыть терминал в папке с копиями.

  3. Проверить, какие файлы находятся в папке.

  4. Выполнить команду обработки.

  5. Проверить результат через gm identify.

  6. Визуально открыть несколько файлов и убедиться, что качество подходит.

Вариант с сохранением результата в отдельную папку

Linux/macOS:

mkdir output
for file in *.jpg; do
  gm convert "$file" -resize 1600x1600 -quality 82 -strip "output/$file"
done

Windows PowerShell:

mkdir output
Get-ChildItem *.jpg | ForEach-Object {
  gm convert $_.FullName -resize 1600x1600 -quality 82 -strip "output$($_.Name)"
}

Что делает команда:

  • создаёт папку output;

  • перебирает JPEG-файлы;

  • уменьшает каждое изображение до максимального размера 1600×1600;

  • сохраняет JPEG с качеством 82;

  • удаляет лишние профили;

  • кладёт результат в отдельную папку.

Такой способ безопаснее, чем прямой mogrify, потому что оригиналы не меняются.

Вариант через mogrify

gm mogrify -resize 1600x1600 -quality 82 -strip *.jpg

Эта команда короче, но она меняет файлы в текущей папке. Использовать её стоит только на копиях.

Проверка результата

gm identify output/*.jpg

Вывод покажет размеры получившихся файлов. Если нужно проверить один файл подробно:

gm identify -verbose output/photo.jpg

Инструкция: как конвертировать PNG в JPEG или WebP

PNG часто используют для скриншотов, логотипов, интерфейсной графики и изображений с прозрачностью. JPEG лучше подходит для фотографий. WebP часто применяют для оптимизации изображений на сайтах.

Один файл PNG в JPEG

gm convert image.png image.jpg

Если PNG содержит прозрачность, лучше явно задать фон:

gm convert image.png -background white -flatten image.jpg

Один файл PNG в WebP

gm convert image.png image.webp

Если WebP не создаётся, нужно проверить поддержку формата:

gm convert -list formats

Пакетная конвертация PNG в JPEG

gm mogrify -format jpg *.png

Пакетная конвертация PNG в WebP

gm mogrify -format webp *.png

Для безопасной конвертации в отдельную папку:

mkdir output
for file in *.png; do
  base="${file%.*}"
  gm convert "$file" "output/$base.jpg"
done

PNG не всегда стоит переводить в JPEG. Если изображение содержит прозрачность, текст, тонкие линии, элементы интерфейса или плоские цвета, JPEG может дать грязные артефакты. Для таких задач лучше оставить PNG или использовать WebP с подходящими параметрами.


Инструкция: как проверить изображение через gm identify

gm identify — лучший способ быстро понять, что представляет собой файл.

Простая проверка:

gm identify photo.jpg

Типичный вывод содержит:

  • имя файла;

  • формат;

  • размер в пикселях;

  • глубину цвета;

  • цветовую модель;

  • размер файла.

Подробная проверка:

gm identify -verbose photo.jpg

Подробный вывод полезен, когда нужно узнать:

  • есть ли встроенный ICC-профиль;

  • какая у файла цветовая модель;

  • сколько кадров внутри GIF или TIFF;

  • есть ли признаки повреждения;

  • какой тип сжатия используется;

  • какие свойства записаны в файле.

Для проверки папки:

gm identify *.jpg

Для поиска слишком больших файлов можно объединять GraphicsMagick с обычными средствами оболочки. Например, сначала посмотреть все размеры, затем обработать только те файлы, которые превышают допустимые параметры.


Инструкция: как обрезать изображение

Обрезка через GraphicsMagick полезна, когда нужно автоматически подготовить изображения одного размера: карточки товаров, аватары, превью, баннеры.

Обрезка по координатам

gm convert input.jpg -crop 800x600+100+50 output.jpg

Параметр 800x600+100+50 означает:

  • ширина области — 800 пикселей;

  • высота области — 600 пикселей;

  • отступ слева — 100 пикселей;

  • отступ сверху — 50 пикселей.

Обрезка из центра

gm convert input.jpg -gravity center -crop 800x600+0+0 output.jpg

Квадратная миниатюра

gm convert input.jpg -resize 600x600^ -gravity center -extent 600x600 square.jpg

Эта команда удобна для аватаров и сеток, где все изображения должны быть одинакового размера.

Удаление однотонных полей

gm convert input.png -trim output.png

-trim удаляет края, похожие на фон. Это удобно для логотипов, сканов и изображений с пустыми полями.


Инструкция: как наложить логотип или водяной знак

GraphicsMagick умеет накладывать одно изображение поверх другого через composite.

Простой вариант:

gm composite logo.png photo.jpg result.jpg

Размещение в правом нижнем углу:

gm composite -gravity southeast logo.png photo.jpg result.jpg

Размещение с отступом:

gm composite -gravity southeast -geometry +24+24 logo.png photo.jpg result.jpg

Если водяной знак слишком плотный, его лучше заранее подготовить как PNG с прозрачностью. Тогда GraphicsMagick корректно наложит изображение с альфа-каналом.

Для массового наложения логотипа:

mkdir output
for file in *.jpg; do
  gm composite -gravity southeast -geometry +24+24 logo.png "$file" "output/$file"
done

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

На скриншоте видно несколько окон изображений в среде GraphicsMagick. Такой режим полезен при визуальной проверке исходного файла, наложенного элемента и результата.


Практические сценарии использования

GraphicsMagick особенно сильна в задачах, где одна и та же операция применяется много раз.

Подготовка изображений для сайта

Типичная задача: пользователь загрузил фотографию 6000×4000 пикселей, а сайту нужна версия не больше 1600 пикселей по стороне и миниатюра 400×400.

Команды:

gm convert upload.jpg -resize 1600x1600 -quality 82 -strip public.jpg
gm convert upload.jpg -resize 400x400^ -gravity center -extent 400x400 thumb.jpg

Результат:

  • большая версия для просмотра;

  • квадратная миниатюра для карточки;

  • меньший размер файла;

  • удалённые лишние профили.

Массовое уменьшение архива фотографий

Если есть папка с сотнями фотографий, GraphicsMagick позволяет привести их к единому размеру без ручной работы.

mkdir resized
for file in *.jpg; do
  gm convert "$file" -resize 2000x2000 -quality 88 "resized/$file"
done

Этот сценарий подходит для архивов мероприятий, внутренних фотобанков, отчётов, каталогов объектов и клиентских подборок.

Конвертация старого архива

В старых архивах часто лежат TIFF, BMP, PNG, JPEG и другие форматы. GraphicsMagick можно использовать для нормализации.

mkdir jpg
for file in *.tif; do
  base="${file%.*}"
  gm convert "$file" -quality 90 "jpg/$base.jpg"
done

Для сканов может быть полезен PNG:

gm convert scan.tif scan.png

Для веб-публикации чаще используют JPEG или WebP.

Генерация миниатюр для каталога

mkdir thumbs
for file in *.jpg; do
  gm convert "$file" -thumbnail 300x300 "thumbs/$file"
done

Миниатюры можно использовать в HTML-галерее, панели администратора, каталоге товаров, внутренней базе изображений.

Проверка параметров перед публикацией

Перед загрузкой изображений на сайт можно проверить их размер:

gm identify *.jpg

Если нужно получить подробные данные:

gm identify -verbose image.jpg

Это помогает обнаружить файлы с огромным разрешением, неправильным форматом, неожиданной цветовой моделью или повреждённой структурой.

Сравнение результата после обработки

gm compare original.jpg compressed.jpg diff.png

Так можно визуально оценить, где именно изменилось изображение после сжатия, ресайза или цветовой обработки.

Автоматическая серверная обработка

GraphicsMagick часто используют в серверных сценариях: приложение принимает изображение, сохраняет оригинал, создаёт несколько производных версий и отдаёт их пользователям.

Типовая логика:

  1. Пользователь загружает файл.

  2. Сервер сохраняет оригинал.

  3. GraphicsMagick проверяет параметры файла.

  4. Создаётся крупная версия.

  5. Создаётся миниатюра.

  6. Удаляются лишние метаданные.

  7. Результат попадает в публичное хранилище.


Архитектура и интеграция в рабочие процессы

GraphicsMagick удобна не только как самостоятельная команда, но и как часть производственного процесса. Её можно вызывать из скриптов, планировщиков задач, backend-приложений и систем сборки.

Shell-скрипты

Простой shell-скрипт для подготовки изображений:

#!/bin/sh

mkdir -p output

for file in *.jpg; do
  gm convert "$file" 
    -resize 1600x1600 
    -quality 82 
    -strip 
    "output/$file"
done

Такой файл можно сохранить как process-images.sh и запускать при необходимости.

PowerShell

Для Windows-сценариев:

New-Item -ItemType Directory -Force -Path output

Get-ChildItem *.jpg | ForEach-Object {
  gm convert $_.FullName `
    -resize 1600x1600 `
    -quality 82 `
    -strip `
    "output$($_.Name)"
}

Backend-приложения

В backend-приложении GraphicsMagick может вызываться как внешняя команда. Главное правило безопасности: нельзя напрямую вставлять пользовательский ввод в команду. Имя файла, путь, формат и параметры должны проходить проверку.

Неправильная идея:

gm convert пользовательский_ввод output.jpg

Правильный подход:

  • сохранять файл под контролируемым внутренним именем;

  • проверять MIME-тип и расширение;

  • ограничивать размер файла;

  • запускать заранее определённые команды;

  • не позволять пользователю самому составлять параметры gm;

  • обрабатывать ошибки и таймауты.

CI/CD и тестирование изображений

gm compare можно использовать в автоматических тестах. Например, если система генерирует графический отчёт, можно сравнить новый результат с эталонным PNG.

gm compare expected.png actual.png diff.png

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


Работа с качеством, профилями и цветом

GraphicsMagick позволяет управлять качеством изображения, но автоматическая обработка требует аккуратности.

JPEG и повторное сохранение

JPEG — формат с потерями. Каждый раз, когда изображение сохраняется с повторным сжатием, часть информации теряется. Поэтому правильный рабочий процесс выглядит так:

  1. Хранить оригинал отдельно.

  2. Создавать производные версии из оригинала.

  3. Не пересжимать уже обработанные JPEG без необходимости.

  4. Подбирать -quality под конкретный тип изображения.

Для фотографий часто подходит:

gm convert original.jpg -resize 1600x1600 -quality 82 public.jpg

Для более качественной выдачи:

gm convert original.jpg -resize 2400x2400 -quality 90 public-large.jpg

PNG и прозрачность

PNG хорошо подходит для изображений с прозрачностью, скриншотов, логотипов, схем и интерфейсов. Если нужно сохранить прозрачность, лучше не переводить файл в JPEG.

Правильно:

gm convert logo.png -resize 400x400 logo-small.png

Если всё же нужен JPEG:

gm convert logo.png -background white -flatten logo.jpg

Цветовые профили

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

Удаление профилей:

gm convert input.jpg -strip output.jpg

Сохранение профилей:

gm convert input.jpg -resize 1600x1600 output.jpg

Здесь профили не удаляются явно.

Нормализация и контраст

Для технических изображений, сканов и серийных материалов иногда полезна нормализация:

gm convert scan.jpg -normalize scan-normalized.jpg

Для перевода в оттенки серого:

gm convert scan.jpg -colorspace Gray scan-gray.jpg

Для пороговой чёрно-белой версии:

gm convert scan.jpg -threshold 50% scan-bw.png

Производительность и стабильность

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

На скорость влияют:

  • размер изображения в пикселях;

  • формат входного файла;

  • формат выходного файла;

  • тип операции;

  • скорость диска;

  • процессор;

  • объём оперативной памяти;

  • наличие нужных библиотек;

  • параметры сборки;

  • количество одновременно запущенных процессов.

Пример: уменьшить JPEG 1200×800 намного проще, чем обработать TIFF 12000×8000 с несколькими страницами. Конвертация PDF в изображения обычно тяжелее, чем PNG в JPEG. Создание миниатюр быстрее, чем сложные фильтры, размытие или композитинг.

Для больших потоков изображений полезны такие принципы:

  • не запускать слишком много процессов одновременно;

  • ограничивать максимальный размер входных файлов;

  • заранее отбрасывать неподходящие файлы;

  • хранить результат в отдельной директории;

  • проверять ошибки после выполнения команд;

  • логировать исходный файл, команду и результат;

  • тестировать параметры на небольшой выборке;

  • не пересжимать одно и то же изображение много раз.

GraphicsMagick особенно хорошо показывает себя там, где задача ясна и повторяется: сделать три размера, сжать до нужного качества, создать превью, наложить логотип, проверить файл, создать контактный лист.


Безопасность и осторожность при работе

GraphicsMagick может работать с файлами из разных источников, включая пользовательские загрузки. Это делает безопасность важной частью эксплуатации.

Не запускать mogrify по оригиналам без копии

mogrify может перезаписывать файлы. Если команда ошибочная, можно испортить всю папку.

Опасный сценарий:

gm mogrify -resize 200x200 *.jpg

Если это единственная копия оригиналов, вернуть качество уже не получится. Правильнее сначала сделать копию папки или использовать convert с отдельной директорией результата.

Не доверять пользовательским файлам

Файл с расширением .jpg не обязательно является нормальным JPEG. Он может быть повреждённым, слишком большим, специально сформированным или неподходящим для обработки.

В серверных сценариях нужно:

  • ограничивать размер файла;

  • проверять формат;

  • задавать лимиты времени выполнения;

  • не давать пользователю управлять параметрами команды;

  • хранить файлы под безопасными именами;

  • обрабатывать ошибки;

  • обновлять программу и зависимости.

Не давать пользователю формировать команду

Пользователь не должен передавать произвольную строку вроде:

gm convert [что угодно] output.jpg

Приложение должно само выбирать разрешённые операции. Например: только resize, только quality, только заранее заданные форматы.

Проверять поддержку форматов

Если сервер должен принимать HEIC или AVIF, недостаточно написать команду. Нужно проверить:

gm convert -list formats

Если формат отсутствует, команда не будет работать корректно. Это особенно важно при переносе приложения с одной системы на другую.


Преимущества GraphicsMagick

GraphicsMagick сильна в задачах, где нужна точность и повторяемость.

Основные преимущества:

  • Пакетная обработка изображений. Можно обработать целую папку одной командой или коротким скриптом.

  • Командная строка. Программа легко встраивается в автоматизацию, cron-задачи, CI/CD и серверные процессы.

  • Много форматов. GraphicsMagick работает с широким набором графических форматов, если они доступны в конкретной сборке.

  • Единая команда gm. Все подкоманды запускаются через один исполняемый файл.

  • Предсказуемость. Команды удобно фиксировать в документации, скриптах и рабочих регламентах.

  • Отсутствие тяжёлого GUI. Программа подходит для серверов и систем без полноценной графической среды.

  • Гибкость параметров. Можно управлять размером, качеством, профилями, геометрией, цветом и композицией.

  • Интеграция с разработкой. GraphicsMagick можно использовать из разных языков программирования через вызов CLI или библиотеки.

  • Подходит для больших архивов. Программа удобна при обработке крупных наборов файлов.

  • Есть инструменты проверки. identify, compare и benchmark помогают контролировать результат и производительность.

GraphicsMagick особенно полезна там, где визуальный редактор становится слишком медленным способом работы. Если нужно один раз красиво отретушировать портрет — лучше выбрать другой инструмент. Если нужно одинаково обработать 5000 изображений — GraphicsMagick заметно практичнее.


Недостатки GraphicsMagick

У программы есть ограничения, и их лучше учитывать заранее.

Главные недостатки:

  • Высокий порог входа. Пользователю нужно понимать командную строку.

  • Нет современного визуального интерфейса. gm display полезен, но выглядит и работает не как современные редакторы.

  • Ошибки могут быть массовыми. Неверная команда mogrify может изменить сразу много файлов.

  • Не все форматы доступны в каждой сборке. HEIC, AVIF, WebP, JXL, PDF и другие форматы зависят от библиотек.

  • Не подходит для художественной ретуши. Слои, кисти, маски и точечная правка удобнее в GIMP, Photoshop, Krita или Affinity Photo.

  • Нужно читать вывод ошибок. GraphicsMagick не всегда объясняет проблему так дружелюбно, как графическое приложение.

  • Нужно проверять порядок параметров. Команды выполняются последовательно, и порядок влияет на результат.

  • Сложные операции требуют тестов. Для производственных сценариев нельзя писать команду на глаз и сразу запускать её на архиве.

GraphicsMagick не является программой для тех, кто хочет открыть изображение, подвигать ползунки и сохранить результат через понятный диалог. Это инструмент для людей, которым важнее контроль, автоматизация и повторяемость.


Сравнение с аналогами

GraphicsMagick стоит сравнивать не только с визуальными редакторами, но и с другими инструментами пакетной обработки изображений. У каждого аналога своя логика.

Программа Лучше всего подходит для Сильные стороны Ограничения
ImageMagick Универсальная обработка изображений через CLI Очень широкая экосистема, множество примеров, активное развитие Сложная командная модель, различия между версиями могут мешать старым скриптам
XnConvert Массовая конвертация через графический интерфейс Удобен новичкам, есть визуальные настройки, хорошо подходит для пакетных задач без кода Менее удобен для серверной автоматизации и скриптов
IrfanView Быстрый просмотр и простые пакетные операции в Windows Лёгкий, быстрый, удобный для повседневного просмотра Основной сценарий связан с Windows и ручной работой
GIMP Ручное редактирование, ретушь, слои, маски Полноценный визуальный редактор, подходит для творческих задач Не так удобен для массовой CLI-обработки
Adobe Photoshop Профессиональная ретушь, дизайн, подготовка сложной графики Мощная работа со слоями, масками, цветом и плагинами Избыточен для простой пакетной конвертации через сервер
Krita Рисование, иллюстрация, работа с кистями Отличен для художников и цифровой живописи Не предназначен как основной CLI-инструмент обработки изображений
Affinity Photo Ручная обработка фотографий и сложная графика Современный интерфейс, ретушь, слои, RAW-сценарии Не заменяет серверную командную обработку
libvips / sharp Высоконагруженная серверная обработка Очень высокая скорость, удобство в веб-проектах, особенно в Node.js Требует разработки и интеграции
FFmpeg Видео, кадры, последовательности изображений Силен в видео и извлечении кадров Не является специализированным редактором изображений общего назначения
XnView MP Просмотр, каталогизация, простые преобразования Удобный визуальный просмотрщик и менеджер изображений Скриптовая автоматизация не главный сценарий

ImageMagick

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

GraphicsMagick лучше смотрится там, где важны стабильность CLI и привычка к команде gm. ImageMagick часто удобнее, когда нужна самая широкая экосистема рецептов, новые возможности и готовые ответы на редкие вопросы.

XnConvert

XnConvert удобен тем, кто хочет пакетную обработку без терминала. В нём можно добавлять действия, выбирать форматы, задавать параметры и запускать обработку через графический интерфейс. Для пользователя, который не хочет писать команды, XnConvert часто проще.

GraphicsMagick лучше подходит для серверов, скриптов и повторяемых процессов, где GUI мешает или просто невозможен.

IrfanView

IrfanView хорош как быстрый просмотрщик и лёгкий инструмент пакетной обработки в Windows. Он удобен для пользователя, который работает с файлами вручную и хочет быстро открыть, просмотреть, повернуть, изменить размер или преобразовать изображения.

GraphicsMagick рациональнее, если нужно встроить обработку в скрипт, сервер или автоматический процесс.

GIMP

GIMP — полноценный графический редактор. Он подходит для ретуши, выделений, слоёв, масок, кистей, коллажей и творческой обработки. В задачах ручного редактирования он значительно удобнее GraphicsMagick.

GraphicsMagick выигрывает там, где нужно повторить одну и ту же операцию много раз без участия человека.

libvips / sharp

libvips и sharp часто используют в современных веб-проектах для быстрой серверной обработки изображений. Это сильный вариант для разработчиков, особенно в Node.js-среде.

GraphicsMagick проще как универсальная CLI-программа: её можно запустить из любого shell-скрипта, использовать в разных языках и применять без переписывания логики под конкретную библиотеку.


Для кого подходит GraphicsMagick

GraphicsMagick хорошо подходит для пользователей и команд, которым нужна не ручная красота интерфейса, а контролируемый результат.

Программа подходит:

  • веб-разработчикам;

  • backend-разработчикам;

  • DevOps-инженерам;

  • администраторам сайтов;

  • контент-менеджерам с большими архивами изображений;

  • владельцам интернет-магазинов;

  • редакциям и медиапроектам;

  • специалистам по автоматизации;

  • пользователям Linux и Unix-систем;

  • фотографам, которые готовы работать с терминалом;

  • техническим специалистам, обрабатывающим сканы и архивы;

  • командам, которым нужно создавать миниатюры и веб-версии изображений.

Хороший пример пользователя GraphicsMagick — человек, которому нужно не подкрутить одну фотографию, а каждый день автоматически приводить все загружаемые изображения к нужному формату.


Для кого программа не подходит

GraphicsMagick не стоит выбирать, если пользователь ожидает привычный фоторедактор.

Программа не подходит:

  • тем, кто хочет редактировать изображение только мышью;

  • тем, кому нужны слои, маски, кисти и сложная ретушь;

  • тем, кто не готов работать с командной строкой;

  • тем, кто не хочет проверять команды на копиях;

  • тем, кому нужно быстро сделать одну простую правку без изучения параметров;

  • тем, кто ожидает современный визуальный интерфейс;

  • тем, кому достаточно простого онлайн-конвертера;

  • тем, кто работает только с творческой обработкой фотографий.

GraphicsMagick требует дисциплины. Нужно понимать, какие файлы обрабатываются, куда сохраняется результат, что делает каждый параметр и может ли команда изменить оригиналы.


Частые ошибки пользователей

Путаница между convert и mogrify

convert создаёт новый файл:

gm convert input.jpg output.png

mogrify часто меняет исходный файл:

gm mogrify -resize 1200x1200 input.jpg

Ошибка новичка — запускать mogrify на папке оригиналов без копии.

Ожидание обычного фоторедактора

GraphicsMagick не похожа на Photoshop или GIMP. В ней нет привычного рабочего пространства для ретуши. Основная работа идёт через команды.

Неправильная работа с пробелами в путях

Если в имени файла есть пробелы, путь нужно брать в кавычки:

gm convert "my photo.jpg" "my photo small.jpg"

Без кавычек оболочка воспримет части имени как разные аргументы.

Конвертация прозрачного PNG в JPEG без фона

Плохой вариант:

gm convert logo.png logo.jpg

Лучше:

gm convert logo.png -background white -flatten logo.jpg

Попытка использовать формат, которого нет в сборке

Если команда не работает с WebP, HEIC, AVIF или PDF, нужно проверить форматы:

gm convert -list formats

Пересжатие JPEG несколько раз

Если обрабатывать уже сжатые JPEG снова и снова, качество падает. Лучше хранить оригиналы и создавать производные версии из них.

Неправильный порядок параметров

Команда:

gm convert input.jpg -resize 800x800 -crop 400x400+0+0 output.jpg

не равна команде:

gm convert input.jpg -crop 400x400+0+0 -resize 800x800 output.jpg

В первом случае обрезается уже уменьшенное изображение, во втором — сначала вырезается область, затем она увеличивается или уменьшается.


Советы по работе

Практические рекомендации для GraphicsMagick:

  • всегда тестировать команду на 2–3 файлах;

  • хранить оригиналы отдельно;

  • использовать convert, если нужно безопасно создать новый файл;

  • применять mogrify только на копиях;

  • брать пути в кавычки;

  • проверять результат через gm identify;

  • визуально смотреть несколько обработанных файлов;

  • сохранять рабочие команды в .sh, .bat или .ps1;

  • документировать параметры качества и размера;

  • проверять список форматов через gm convert -list formats;

  • не смешивать бездумно рецепты ImageMagick и GraphicsMagick;

  • не вставлять пользовательский ввод напрямую в команды;

  • ограничивать размер входных файлов на сервере;

  • логировать ошибки при автоматической обработке.

Хорошая практика — делать отдельные папки:

original/
work/
output/
thumbs/

Так проще понять, где оригиналы, где промежуточные файлы, а где готовый результат.


Расширенные задачи

GraphicsMagick можно использовать не только для простого ресайза.

Создание изображения с рамкой

gm convert input.jpg -bordercolor white -border 20 output.jpg

Добавление подписи

gm convert input.jpg -font Arial -pointsize 32 -fill white -draw "text 40,60 'Sample'" output.jpg

Создание чёрно-белой версии

gm convert input.jpg -colorspace Gray output.jpg

Пороговая обработка

gm convert input.jpg -threshold 50% output.png

Размытие

gm convert input.jpg -blur 0x3 blurred.jpg

Повышение резкости

gm convert input.jpg -sharpen 0x1 sharpened.jpg

Объединение изображений вертикально

gm convert top.jpg bottom.jpg -append combined.jpg

Объединение изображений горизонтально

gm convert left.jpg right.jpg +append combined.jpg

Создание контактного листа

gm montage *.jpg -thumbnail 180x180 -tile 5x -geometry +8+8 sheet.jpg

Эти операции показывают, что GraphicsMagick — не просто конвертер форматов. Это полноценный инструмент технической обработки изображений, только без современной визуальной оболочки.


Типовой рабочий процесс для сайта

Для сайта часто нужен набор изображений:

  • оригинал в закрытом хранилище;

  • большая публичная версия;

  • средняя версия для карточки;

  • маленькая миниатюра;

  • квадратная миниатюра;

  • WebP-версия.

Пример команд:

gm convert original.jpg -resize 1920x1920 -quality 86 -strip public-large.jpg
gm convert original.jpg -resize 900x900 -quality 84 -strip public-medium.jpg
gm convert original.jpg -thumbnail 300x300 public-thumb.jpg
gm convert original.jpg -resize 400x400^ -gravity center -extent 400x400 public-square.jpg
gm convert original.jpg -resize 1600x1600 -quality 82 -strip public.webp

Такой набор можно встроить в backend-логику сайта. Пользователь загружает файл один раз, а GraphicsMagick создаёт все нужные производные изображения.


Типовой рабочий процесс для архива фотографий

Для личного или корпоративного архива может быть другая логика:

  1. Оригиналы хранятся без изменений.

  2. Создаётся папка с уменьшенными копиями.

  3. Для быстрого просмотра создаётся контактный лист.

  4. Для публикации создаются JPEG или WebP.

  5. Параметры проверяются через identify.

Команды:

mkdir preview
mkdir thumbs

for file in *.jpg; do
  gm convert "$file" -resize 2000x2000 -quality 88 "preview/$file"
  gm convert "$file" -thumbnail 300x300 "thumbs/$file"
done

gm montage thumbs/*.jpg -tile 6x -geometry +10+10 contact-sheet.jpg

Это удобнее, чем открывать каждую фотографию вручную.


Типовой рабочий процесс для сканов

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

Пример:

gm convert scan.tif -trim -colorspace Gray -normalize scan-clean.png

Для чёрно-белой версии:

gm convert scan.tif -trim -colorspace Gray -threshold 55% scan-bw.png

Для уменьшенной JPEG-копии:

gm convert scan.tif -resize 1600x1600 -quality 85 scan-preview.jpg

GraphicsMagick хорошо подходит для такого типа обработки, потому что операции можно повторить на всей папке сканов.


Оценка удобства

Удобство GraphicsMagick зависит от того, кто её использует.

Для пользователя, который привык к графическим редакторам, программа может показаться неудобной: нужно помнить команды, параметры, порядок операций и особенности форматов. В ней нет привычного визуального мастера, который пошагово проведёт через конвертацию.

Для технического специалиста всё наоборот: GraphicsMagick удобна именно тем, что не требует ручного интерфейса. Команду можно сохранить, повторить, вставить в скрипт, выполнить на сервере, передать коллеге и использовать в автоматическом процессе.

Условная оценка по направлениям:

Критерий Оценка
Пакетная обработка Очень сильная
Конвертация форматов Очень сильная
Работа через скрипты Очень сильная
Серверное использование Сильная
Простота для новичка Средняя или низкая
Современный GUI Слабая
Ручная ретушь Слабая
Работа с миниатюрами Сильная
Проверка параметров файлов Сильная
Интеграция в автоматизацию Сильная

GraphicsMagick не пытается быть удобной для всех. Она удобна для тех, кому нужен инструмент, а не визуальная среда.


Итоговая оценка

GraphicsMagick Image Processing System — сильная программа для пакетной обработки, конвертации и технической подготовки изображений. Её главная ценность — команда gm, набор подкоманд и возможность выполнять сложные операции без ручного открытия каждого файла.

Программа хорошо подходит для изменения размера изображений, конвертации PNG в JPEG или WebP, сжатия фотографий, создания миниатюр, проверки параметров через gm identify, сравнения файлов через gm compare, наложения логотипов через gm composite и массовой обработки папок через gm mogrify.

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

GraphicsMagick стоит выбирать, когда нужно:

  • обработать много изображений;

  • повторять операцию по одним правилам;

  • встроить обработку в скрипт;

  • подготовить изображения для сайта;

  • создать миниатюры;

  • контролировать формат, размер и качество;

  • использовать программу на сервере;

  • избежать ручной однообразной работы.

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


FAQ

GraphicsMagick бесплатная?

Да. GraphicsMagick распространяется как свободное программное обеспечение с открытым исходным кодом.

Это обычный фоторедактор?

Нет. GraphicsMagick — это прежде всего командный инструмент и библиотека для обработки изображений. Графический компонент gm display есть, но основная работа обычно выполняется через терминал.

Какая главная команда используется в программе?

Главная команда — gm. Через неё запускаются подкоманды:

gm convert
gm mogrify
gm identify
gm compare
gm composite
gm display

Чем convert отличается от mogrify?

convert создаёт новый файл и обычно безопаснее для оригиналов:

gm convert input.jpg output.png

mogrify массово изменяет файлы и может перезаписывать исходники:

gm mogrify -resize 1200x1200 *.jpg

Можно ли уменьшить сразу много фотографий?

Да. Для этого используют mogrify или цикл с convert.

gm mogrify -resize 1600x1600 *.jpg

Безопаснее делать результат в отдельную папку через цикл.

Можно ли конвертировать PNG в WebP?

Да, если WebP поддерживается установленной сборкой.

gm convert image.png image.webp

Проверка форматов:

gm convert -list formats

Почему HEIC, AVIF или WebP не работают?

Потому что поддержка конкретных форматов зависит от сборки GraphicsMagick и подключённых библиотек. Нужно проверить список форматов командой:

gm convert -list formats

Как узнать размер изображения?

gm identify image.jpg

Для подробной информации:

gm identify -verbose image.jpg

Как удалить метаданные?

gm convert input.jpg -strip output.jpg

Или:

gm convert input.jpg +profile "*" output.jpg

Как сделать миниатюру?

gm convert photo.jpg -thumbnail 300x300 thumb.jpg

Как сделать квадратную миниатюру?

gm convert photo.jpg -resize 400x400^ -gravity center -extent 400x400 thumb.jpg

Как наложить логотип?

gm composite -gravity southeast -geometry +20+20 logo.png photo.jpg result.jpg

Можно ли использовать GraphicsMagick на сервере?

Да. Это один из сильных сценариев программы. GraphicsMagick удобно вызывать из backend-скриптов, обработчиков загрузок, задач очереди и автоматических процессов.

Подходит ли программа новичкам?

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

Можно ли редактировать изображения без потери качества?

Зависит от формата и операции. PNG может сохраняться без потерь, JPEG при повторном сохранении теряет часть данных. Для JPEG лучше хранить оригинал отдельно и создавать производные версии из него.

Что выбрать для ручной ретуши?

Для ручной ретуши лучше подходят GIMP, Adobe Photoshop, Affinity Photo или Krita. GraphicsMagick лучше использовать для автоматической и пакетной обработки.

Что выбрать для массовой обработки без терминала?

Для массовой обработки через графический интерфейс удобнее XnConvert или IrfanView. GraphicsMagick сильнее там, где нужны скрипты, сервер и точная автоматизация.