GraphicsMagick — это не классический графический редактор с кистями, слоями, панелью инструментов и привычным рабочим холстом. Это набор командных утилит и библиотек для обработки изображений, где основная работа выполняется через команду gm. Программа рассчитана на задачи, которые нужно выполнять точно, повторяемо и часто: конвертировать форматы, уменьшать фотографии, сжимать изображения, получать сведения о файлах, сравнивать картинки, создавать превью, собирать контактные листы, накладывать изображения друг на друга и автоматизировать обработку целых папок.
GraphicsMagick хорошо подходит для тех случаев, где ручное редактирование не нужно или мешает. Например, если требуется уменьшить 3000 фотографий до ширины 1200 пикселей, перевести PNG в JPEG, подготовить WebP-копии для сайта, удалить лишние профили, проверить размеры файлов или встроить обработку картинок в серверный скрипт. В этом смысле GraphicsMagick — практичный CLI-инструмент для изображений, а не визуальная программа для художественной ретуши.
Скачать GraphicsMagick
- Ретушь фото
- Русский интерфейс
- Просто для новичков
- Только командная строка
- Не для ретуши фото
- Сложнее новичкам
Главная команда программы — gm. Через нее запускаются подкоманды convert, mogrify, identify, compare, composite, montage, display, import, batch, benchmark, time, version и другие. Такой подход удобен: вместо набора разрозненных исполняемых файлов используется единая точка входа, а конкретная задача выбирается вторым словом команды. Например, gm convert конвертирует и изменяет изображения, gm identify показывает свойства файла, gm compare сравнивает две картинки, а gm montage собирает сетку миниатюр.

Что представляет собой GraphicsMagick
GraphicsMagick Image Processing System — это программа для чтения, записи, анализа и преобразования изображений. Она работает с растровыми файлами, некоторыми векторными и документными форматами, а также с последовательностями изображений. В практической работе ее используют как командный конвертер, пакетный обработчик, инструмент автоматизации и библиотеку для встраивания обработки изображений в другие приложения.
GraphicsMagick произошел от ImageMagick, но развивался как отдельный проект с акцентом на стабильность интерфейсов, предсказуемое поведение и производительность. На практике это означает, что GraphicsMagick часто выбирают не ради модного интерфейса, а ради надежной работы в сценариях, где одна и та же команда должна годами давать понятный результат: на сервере, в скрипте, в пайплайне публикации изображений, в архивной обработке сканов, в системах подготовки превью и миниатюр.
Главная особенность программы — управление через параметры. Пользователь не перетаскивает ползунки мышью, а явно задает операцию:
gm convert input.jpg -resize 1200x1200 -quality 85 output.jpg
Эта команда берет файл input.jpg, уменьшает изображение так, чтобы оно вписалось в пределы 1200x1200, задает качество JPEG 85 и сохраняет результат как output.jpg. Для одного файла такой способ может казаться менее удобным, чем графический интерфейс. Но для сотен или тысяч изображений командная строка становится преимуществом: команду можно повторить, сохранить в скрипт, встроить в CMS, запустить по расписанию или применить в CI/CD.
GraphicsMagick особенно полезен там, где есть набор однотипных операций:
| Задача | Как помогает GraphicsMagick |
|---|---|
| Массовое уменьшение фото | gm mogrify или циклы с gm convert |
| Конвертация PNG в JPG | gm convert input.png output.jpg |
| Подготовка WebP для сайта | gm convert input.jpg -quality 80 output.webp |
| Анализ изображения | gm identify и gm identify -verbose |
| Сравнение двух файлов | gm compare reference.png actual.png diff.png |
| Создание контактного листа | gm montage *.jpg index.jpg |
| Наложение логотипа | gm composite watermark.png photo.jpg result.jpg |
| Проверка сборки и форматов | gm version, gm convert -list format |
GraphicsMagick нельзя оценивать по тем же критериям, что GIMP или Photoshop. У него другая роль. Он не заменяет редактор для ретуши, но закрывает задачи, где визуальный редактор слишком медленный, слишком ручной или плохо автоматизируется.
Для чего нужна программа
GraphicsMagick используют для повседневной и серверной обработки изображений. Его сильная сторона — повторяемые операции над файлами, где важны скорость, контроль параметров и возможность автоматизации. Программа одинаково полезна локально в терминале и внутри backend-процесса, который принимает пользовательские изображения и готовит из них версии для сайта.
Типичные задачи выглядят так:
| Сценарий | Пример результата |
|---|---|
| Подготовка фотографий для сайта | Уменьшенные JPEG/WebP с нужным качеством |
| Архивная обработка сканов | TIFF или PNG с нормализацией, обрезкой, изменением плотности |
| Генерация миниатюр | Маленькие превью фиксированного размера |
| Проверка входящих файлов | Вывод ширины, высоты, формата, цветовой глубины |
| Сравнение результатов рендера | Карта отличий между эталоном и новым изображением |
| Массовая конвертация | Перевод папки изображений из одного формата в другой |
| Работа с прозрачностью | PNG32, альфа-канал, фон, композитинг |
| Создание визуального каталога | Сетка миниатюр с подписями файлов |
GraphicsMagick не требует открывать каждый файл вручную. Это особенно важно, когда изображений много. В графическом редакторе пользователь открывает файл, выбирает пункт меню, вводит параметры, сохраняет, закрывает и повторяет процедуру. В GraphicsMagick одна команда может обработать всю папку.
Пример простой пакетной логики:
for file in *.jpg; do gm convert "$file" -resize 1600x1600 -quality 86 "web/$file"done
В этом примере все JPEG-файлы из текущей папки уменьшаются и сохраняются в папку web. Оригиналы не трогаются, потому что используется gm convert, а не gm mogrify. Это безопасный вариант для рабочей папки с исходниками.
Логика работы GraphicsMagick
GraphicsMagick строится вокруг входного файла, набора операций и выходного файла. В простейшем виде команда выглядит так:
gm convert input.ext output.ext
Расширение выходного файла определяет формат результата. Если написать output.jpg, программа сохранит JPEG. Если написать output.png, получится PNG. При необходимости формат можно указать явно через префикс, например jpeg:output.dat, но в обычной работе достаточно корректного расширения.
Более полезная команда содержит параметры:
gm convert input.jpg -auto-orient -resize 1200x1200 -strip -quality 82 output.jpg
Здесь выполняется сразу несколько действий:
| Параметр | Что делает |
|---|---|
-auto-orient |
Поворачивает изображение по ориентационному тегу |
-resize 1200x1200 |
Уменьшает картинку с сохранением пропорций |
-strip |
Удаляет лишние профили и метаданные |
-quality 82 |
Задает качество JPEG |
output.jpg |
Указывает файл результата |
Порядок параметров в GraphicsMagick важен. Некоторые опции влияют на чтение входного файла, некоторые — на обработку, а некоторые — на запись результата. Поэтому команду нужно читать слева направо: сначала вход, затем преобразования, затем выход.
У GraphicsMagick есть два базовых режима работы с файлами:
| Подход | Команда | Что происходит |
|---|---|---|
| Создать новый файл | gm convert input.jpg output.jpg |
Оригинал остается на месте |
| Изменить файл на месте | gm mogrify input.jpg |
Исходный файл перезаписывается |
Для новичка это принципиальное различие. gm convert безопаснее, потому что результат сохраняется отдельно. gm mogrify удобен для пакетной обработки, но требует осторожности: команда изменяет сами исходные файлы.
Проверка запуска и рабочая среда
После установки GraphicsMagick первым делом проверяют, видит ли система команду gm. Для этого в терминале, PowerShell или Command Prompt выполняется:
gm version
Команда показывает сведения о сборке GraphicsMagick: поддерживаемые функции, параметры компиляции, глубину квантования и доступные возможности конкретной установки. Это важная проверка, потому что поддержка форматов зависит не только от самой программы, но и от того, с какими библиотеками она собрана.
Второй базовый тест:
gm convert -help
Он показывает справку по convert. Если справка выводится, значит команда работает, синтаксис доступен, и можно переходить к обработке файлов.
Третий тест полезен для проверки поддерживаемых форматов:
gm convert -list format
Эта команда показывает, какие форматы конкретная сборка умеет читать и записывать. Это особенно важно для WebP, HEIC, AVIF, JPEG-2000, PDF, SVG, RAW и других форматов, где возможности зависят от подключенных кодеков, библиотек и внешних обработчиков. GraphicsMagick поддерживает большое количество форматов, но конкретная установка может иметь не весь набор.
На Windows команды обычно запускают из PowerShell или Command Prompt. На Linux и macOS — из терминала. Главное правило одинаковое: если система отвечает gm: command not found или похожей ошибкой, исполняемый файл не найден в PATH или программа не установлена корректно. Если команда gm version срабатывает, можно использовать все подкоманды через единый синтаксис gm команда параметры.
Интерфейс программы
GraphicsMagick воспринимается как консольная программа, но у него есть и графический компонент gm display. Это не полноценный современный редактор, а окно просмотра и интерактивной обработки изображения для среды с X-сервером. Основной интерфейс gm display состоит из окна изображения и отдельного блока команд. В нем есть меню File, Edit, View, Transform, Enhance, Effects, F/X, Image Edit, Miscellany, Help.
Меню Transform содержит реальные команды обработки изображения: Crop, Chop, Flop, Flip, Rotate Right, Rotate Left, Rotate..., Shear..., Roll..., Trim Edges. Меню View содержит команды изменения отображения: Half Size, Original Size, Double Size, Resize..., Apply, Refresh, Restore. В Edit находятся Undo, Redo, Cut, Copy, Paste. В File доступны Open..., Next, Former, Select..., Save..., Print..., Delete..., Canvas..., Visual Directory..., Quit.

Этот интерфейс показывает важную особенность GraphicsMagick: даже когда программа открывает графическое окно, ее логика остается инженерной. Команды в меню почти полностью повторяют операции, которые можно выполнить из командной строки: кадрирование, поворот, отражение, изменение размера, обрезка краев, коррекция яркости, гаммы, насыщенности, нормализация, перевод в градации серого.
Для повседневной автоматизации gm display обычно не нужен. Его используют, когда требуется быстро посмотреть файл, проверить результат, выполнить простое интерактивное действие или открыть Visual Image Directory. Основная же сила программы раскрывается в gm convert, gm mogrify, gm identify, gm compare, gm montage и других командных подпрограммах.
Основные команды GraphicsMagick
GraphicsMagick состоит из нескольких утилит, которые вызываются через gm. Каждая решает свой класс задач. Важно не смешивать их: convert создает новый файл, mogrify изменяет существующий, identify только анализирует, compare сравнивает, montage собирает сетку, composite накладывает изображения.
| Команда | Назначение |
|---|---|
gm convert |
Конвертация и обработка изображения с записью нового файла |
gm mogrify |
Пакетное изменение изображений с перезаписью |
gm identify |
Получение информации о формате и свойствах файла |
gm compare |
Сравнение двух изображений |
gm composite |
Наложение одного изображения на другое |
gm montage |
Создание сетки миниатюр или контактного листа |
gm display |
Просмотр и интерактивная обработка через X-интерфейс |
gm import |
Захват окна, экрана или области в X-среде |
gm batch |
Выполнение набора команд в пакетном сценарии |
gm benchmark |
Измерение производительности операций |
gm time |
Замер времени выполнения подкоманды |
gm version |
Информация о сборке и возможностях программы |
gm convert
gm convert — главная команда для большинства задач. Она берет один или несколько входных файлов, применяет операции и сохраняет результат в новый файл. Через нее выполняют конвертацию форматов, изменение размера, поворот, обрезку, сжатие, удаление метаданных, работу с цветом, создание простых изображений, наложение текста и подготовку миниатюр.
Простейшая конвертация PNG в JPEG:
gm convert input.png output.jpg
Изменение размера:
gm convert photo.jpg -resize 1200x1200 photo_1200.jpg
Сжатие JPEG:
gm convert photo.jpg -quality 82 photo_compressed.jpg
Изменение размера с удалением лишних метаданных:
gm convert photo.jpg -auto-orient -resize 1600x1600 -strip -quality 85 web/photo.jpg
Создание маленькой миниатюры:
gm convert photo.jpg -thumbnail 300x300 thumb.jpg
Команда convert хороша тем, что не портит исходник. Она читает файл и пишет новый результат. Поэтому для ручной проверки параметров лучше начинать именно с нее.
gm mogrify
gm mogrify выполняет похожие преобразования, но меняет исходные файлы. Это удобно, когда нужно быстро обработать набор изображений в папке, но опасно при работе с оригиналами.
Пример уменьшения всех JPEG в текущей папке:
gm mogrify -resize 1200x1200 *.jpg
После такой команды исходные *.jpg будут перезаписаны уменьшенными версиями. Если исходники важны, сначала нужно сделать копию папки или использовать gm convert в цикле с отдельной папкой вывода.
Более безопасный подход:
mkdir resizedfor file in *.jpg; do gm convert "$file" -resize 1200x1200 "resized/$file"done
mogrify особенно полезен в подготовленных рабочих каталогах, где находятся только копии изображений. Например, можно выгрузить фотографии в отдельную папку work, выполнить пакетное изменение размера и затем загрузить результат на сайт.
gm identify
gm identify описывает файл: формат, размер, цветовую модель, глубину, количество кадров, вес и другие параметры. В обычном режиме команда дает компактную строку:
gm identify photo.jpg
Типичный смысл вывода:
photo.jpg JPEG 4032x3024+0+0 DirectClass 8-bit 2.4Mi 0.000u 0:01
Для подробного анализа используется:
gm identify -verbose photo.jpg
Такой вывод полезен, когда нужно понять, что именно находится в файле: есть ли альфа-канал, какой профиль встроен, сколько кадров в GIF или TIFF, какие размеры у страницы PDF после растеризации, не повреждено ли изображение. Команда identify также сообщает, если файл неполный или испорченный.
gm compare
gm compare сравнивает два изображения. Это полезно для тестирования рендера, проверки изменений после обработки, контроля качества, поиска визуальных отличий между эталоном и новым результатом.
Пример:
gm compare reference.png actual.png diff.png
В этой команде:
| Файл | Роль |
|---|---|
reference.png |
Эталон |
actual.png |
Проверяемое изображение |
diff.png |
Картинка с визуальным отображением различий |
gm compare может не только вывести diff-файл, но и сообщить статистику отличий. Это удобно в автоматических тестах интерфейса, генерации карт, обработке сканов, проверке конвертации и задачах, где результат должен быть визуально близок к эталону.
gm composite
gm composite накладывает одно изображение на другое. Типичный сценарий — водяной знак, логотип, декоративная рамка, маска или графический слой поверх фотографии.
Пример наложения логотипа:
gm composite -gravity southeast logo.png photo.jpg photo_with_logo.jpg
Здесь -gravity southeast размещает накладываемое изображение в правом нижнем углу. Команда сохраняет новый файл photo_with_logo.jpg.
Если нужно добавить отступ от края, используется -geometry:
gm composite -gravity southeast -geometry +30+30 logo.png photo.jpg result.jpg
Такой подход подходит для автоматической маркировки изображений, но важно учитывать прозрачность: логотип лучше хранить в PNG с альфа-каналом, иначе вокруг него может появиться прямоугольный фон.
gm montage
gm montage создает составное изображение из набора файлов. Проще говоря, она собирает миниатюры в сетку. Это полезно для каталогов, архивов, визуальной проверки набора изображений, создания контактных листов.
Пример:
gm montage *.jpg -geometry 200x200+10+10 index.jpg
Команда берет все JPEG в папке, уменьшает их до миниатюр, расставляет с отступами и сохраняет index.jpg.
Можно задать фон, подписи и размеры плиток:
gm montage *.jpg -thumbnail 180x180 -tile 5x -geometry +8+8 -label "%f" contact-sheet.jpg
Такой контактный лист удобен, когда нужно быстро просмотреть большую папку и понять, какие файлы в ней находятся.
gm display
gm display открывает изображение в окне просмотра. В нем можно использовать меню File, Edit, View, Transform, Enhance, Effects, F/X, Image Edit, Miscellany, Help. Команда рассчитана на рабочие станции с X-сервером и позволяет не только просматривать изображение, но и выполнять простые интерактивные операции.
Пример запуска:
gm display photo.jpg
В окне можно открыть меню Transform и выбрать Crop, Flip, Rotate Right, Rotate Left, Resize... или другие операции. При кадрировании через Crop пользователь выделяет прямоугольную область мышью, затем подтверждает действие кнопкой Crop. Для выхода без применения используется Dismiss.

gm import
gm import делает снимок окна, экрана или прямоугольной области в X-среде. Это не универсальная замена современным скриншотерам, но для X11-сценариев команда полезна.
Пример:
gm import screenshot.png
После запуска можно выбрать окно или область. Для автоматизации скриншотов в X11-среде команда может быть частью скрипта.
gm batch
gm batch выполняет набор команд в пакетном режиме. Это полезно, когда нужно запускать много операций с меньшими накладными расходами, чем при постоянном создании отдельных процессов. Для обычного пользователя чаще достаточно shell-скриптов или PowerShell, но batch удобен в системах, где GraphicsMagick используется как подчиненный обработчик.
gm benchmark и gm time
gm benchmark и gm time нужны для измерения производительности. Их используют, когда нужно понять, сколько времени занимает конкретная операция, как влияет количество потоков, какой вариант команды быстрее и где возникает узкое место.
Пример:
gm time convert input.jpg -resize 1200x1200 output.jpg
Такой замер полезен при настройке серверной обработки изображений, когда важно понимать, сколько ресурсов будет потреблять генерация превью или массовая конвертация.
Поддерживаемые форматы
GraphicsMagick работает с большим количеством форматов изображений и связанных типов данных. В списке встречаются JPEG, PNG, GIF, TIFF, WebP, PDF, PSD, SVG, BMP, ICO, PNM, JPEG-2000, DPX, HEIC/AVIF при наличии поддержки в сборке, RAW-форматы камер и служебные форматы вроде MIFF, MPC, VID. Поддержка делится на чтение, запись и многостраничные/многокадровые возможности. Конкретный набор нужно проверять командой gm convert -list format, потому что он зависит от сборки и подключенных библиотек.
| Формат | Где используется | Особенности в GraphicsMagick |
|---|---|---|
| JPEG/JPG | Фотографии, веб, каталоги товаров | Хорошо подходит для сжатия и публикации |
| PNG | Скриншоты, графика, прозрачность | Поддерживает варианты PNG8, PNG24, PNG32 |
| GIF | Простая анимация, старые веб-форматы | Может содержать последовательность кадров |
| TIFF | Сканы, архивы, печать | Часто используется для многостраничных документов |
| WebP | Современные веб-изображения | Требует поддержки в конкретной сборке |
| Документы и страницы | Для практической работы часто завязан на внешние компоненты | |
| SVG | Векторная графика | Растеризация зависит от доступных библиотек |
| PSD | Файлы Adobe Photoshop | Полезен для чтения и конвертации, но не заменяет Photoshop |
| ICO | Иконки Windows | Удобен для генерации фавиконов и наборов иконок |
| BMP | Несжатая графика Windows | Простая конвертация и совместимость |
| DPX | Кино и видео-пайплайны | Используется в профессиональных последовательностях кадров |
| PNM/PPM/PGM/PBM | Технические растровые форматы | Удобны для скриптов и промежуточных операций |
| MIFF | Собственный формат семейства Magick | Подходит для хранения промежуточных данных |
| VID | Visual Image Directory | Сетка миниатюр для просмотра через display |
Для пользователя это означает следующее: GraphicsMagick можно использовать как универсальный конвертер изображений, но нельзя слепо предполагать, что любая установка откроет любой файл. Если команда не распознает HEIC, AVIF, WebP, SVG, RAW или PDF, проблема часто не в синтаксисе, а в том, что конкретная сборка не имеет нужной поддержки.
Практические инструкции
Как конвертировать PNG в JPG
Базовая команда:
gm convert input.png output.jpg
Если PNG содержит прозрачность, при сохранении в JPEG прозрачные области станут залиты фоном. Чтобы контролировать фон, задайте его явно:
gm convert input.png -background white -flatten output.jpg
Здесь -background white задает белый фон, а -flatten объединяет изображение с фоном. Это правильный подход для логотипов, скриншотов и PNG с альфа-каналом, которые нужно превратить в обычный JPEG.
Для управления сжатием:
gm convert input.png -background white -flatten -quality 85 output.jpg
-quality 85 подходит как стартовая точка для веб-фотографий и изображений, где нужен баланс между весом и качеством. Для иллюстраций с текстом иногда лучше использовать PNG или WebP без сильной потери четкости.
Как уменьшить фотографию до 1200 пикселей
Команда:
gm convert photo.jpg -resize 1200x1200 photo_1200.jpg
Параметр 1200x1200 не означает жесткую обрезку до квадрата. Он задает ограничивающий прямоугольник. Изображение уменьшается с сохранением пропорций так, чтобы ни ширина, ни высота не превышали 1200 пикселей.
Если нужна ширина ровно 1200 пикселей при сохранении пропорций:
gm convert photo.jpg -resize 1200x photo_1200w.jpg
Если нужна высота ровно 1200 пикселей:
gm convert photo.jpg -resize x1200 photo_1200h.jpg
Для публикации на сайте обычно используют полный набор:
gm convert photo.jpg -auto-orient -resize 1600x1600 -strip -quality 84 web_photo.jpg
Здесь изображение поворачивается по EXIF-ориентации, уменьшается, очищается от лишних данных и сохраняется с заданным качеством.
Как сделать квадратное изображение
Если нужно получить квадратную миниатюру, простой -resize 300x300 не подойдет: он сохранит пропорции и не обрежет лишнее. Для квадратного результата используют комбинацию изменения размера и обрезки.
Пример для центра:
gm convert photo.jpg -resize 300x300^ -gravity center -crop 300x300+0+0 +repage thumb.jpg
Что делает команда:
| Параметр | Назначение |
|---|---|
-resize 300x300^ |
Масштабирует так, чтобы изображение полностью перекрыло квадрат |
-gravity center |
Берет центр изображения как опорную точку |
-crop 300x300+0+0 |
Обрезает квадрат 300×300 |
+repage |
Сбрасывает виртуальные смещения после обрезки |
thumb.jpg |
Сохраняет миниатюру |
Такой вариант используют для аватаров, карточек товаров, превью галерей и сеток изображений, где все ячейки должны иметь одинаковый размер.
Как пакетно уменьшить все JPG в папке
Безопасный вариант с отдельной папкой результата:
mkdir resizedfor file in *.jpg; do gm convert "$file" -resize 1200x1200 -quality 85 "resized/$file"done
Этот способ не перезаписывает исходники. Он подходит для первой обработки, когда параметры еще проверяются.
Вариант с mogrify:
gm mogrify -resize 1200x1200 -quality 85 *.jpg
Этот способ быстрее и короче, но меняет исходные файлы. Его стоит использовать только в папке с копиями.
Как создать WebP-копии изображений
Если сборка GraphicsMagick поддерживает WebP, можно сохранить результат в .webp:
gm convert photo.jpg -resize 1600x1600 -quality 80 photo.webp
Для папки:
mkdir webpfor file in *.jpg; do base="${file%.*}" gm convert "$file" -resize 1600x1600 -quality 80 "webp/$base.webp"done
Такая схема создает WebP-копии рядом с оригиналами, не изменяя исходные JPEG. Для сайта это удобный вариант: можно хранить оригиналы, JPEG-версии и WebP-версии отдельно.
Как получить подробную информацию о файле
Коротко:
gm identify image.png
Подробно:
gm identify -verbose image.png
Через identify удобно проверять:
-
фактическую ширину и высоту;
-
формат файла;
-
цветовую модель;
-
глубину цвета;
-
наличие альфа-канала;
-
размер файла;
-
количество кадров;
-
признаки повреждения изображения.
Для автоматизации можно использовать вывод identify в скриптах. Например, backend может отклонять изображения, которые слишком большие, слишком маленькие или имеют неподходящий формат.
Как сравнить два изображения
Базовая команда:
gm compare old.png new.png diff.png
Если нужно получить визуальный файл различий, результат сохраняется в diff.png. Такой подход подходит для регрессионного тестирования: например, есть эталонный скриншот интерфейса и новый скриншот после сборки. gm compare помогает увидеть, изменился ли рендер.
Для изображений, где возможны небольшие отличия из-за сглаживания, сжатия или рендера шрифтов, можно использовать допуск через параметры сравнения. Важно понимать: абсолютно пиксельное сравнение часто слишком строго для JPEG и браузерных скриншотов. Для PNG-эталонов оно работает лучше.
Как создать контактный лист
Команда:
gm montage *.jpg -thumbnail 180x180 -tile 5x -geometry +8+8 -label "%f" contact.jpg
Результат — одно изображение, где миниатюры расположены сеткой. Под каждой миниатюрой выводится имя файла. Это удобно для архива фотографий, проверки результатов обработки и быстрой навигации по папке.
В gm display похожую идею реализует Visual Image Directory: изображения превращаются в плитку миниатюр, по которой можно выбирать файл для просмотра.

Как добавить текст на изображение
Пример:
gm convert photo.jpg -font Arial -pointsize 36 -fill white -draw "text 40,60 'Sample text'" result.jpg
Здесь текст добавляется в координаты 40,60. Для автоматической подписи фотографий, маркировки тестовых изображений или генерации баннеров это работает хорошо. Для сложной типографики с переносами, тонкой версткой и дизайном лучше использовать специализированные инструменты, но для простых подписей GraphicsMagick достаточно.
Как повернуть изображение
Поворот на 90 градусов:
gm convert photo.jpg -rotate 90 rotated.jpg
Поворот против часовой стрелки:
gm convert photo.jpg -rotate -90 rotated_left.jpg
Автоматический поворот по EXIF-ориентации:
gm convert photo.jpg -auto-orient fixed.jpg
-auto-orient особенно полезен для фотографий со смартфонов и камер. Такие файлы иногда физически хранятся в одной ориентации, а правильный поворот записан в метаданных. После обработки без -auto-orient картинка может неожиданно оказаться повернутой.
Как обрезать изображение по координатам
Команда:
gm convert photo.jpg -crop 800x600+100+50 cropped.jpg
Здесь:
| Фрагмент | Значение |
|---|---|
800x600 |
Размер области обрезки |
+100 |
Смещение от левого края |
+50 |
Смещение от верхнего края |
Такой способ удобен, когда координаты известны заранее: например, нужно вырезать одну и ту же область из набора сканов или кадров.
Как удалить метаданные
Команда:
gm convert photo.jpg -strip clean.jpg
-strip удаляет лишние профили и метаданные. Это уменьшает размер файла и убирает служебную информацию. Но с этой командой нужно быть аккуратным: если важен цветовой профиль, авторские поля, EXIF с датой съемки или GPS, удаление метаданных может быть нежелательным.
Для веб-публикации -strip часто оправдан. Для архива исходников — нет.
Как изменить цветовое пространство
Пример перевода в оттенки серого:
gm convert photo.jpg -colorspace gray gray.jpg
Пример нормализации контраста:
gm convert scan.png -normalize normalized.png
-normalize растягивает диапазон яркости и может сделать скан более читаемым. Для фотографий применять его нужно осторожно: результат может стать слишком контрастным.
Настройки качества, размера и цвета
GraphicsMagick дает детальный контроль над обработкой изображения. Большая часть повседневной работы строится вокруг нескольких параметров.
| Параметр | Назначение | Частый сценарий |
|---|---|---|
-resize |
Изменение размера | Фото для сайта, превью |
-thumbnail |
Быстрое создание миниатюр | Галереи, аватары |
-quality |
Качество сжатия | JPEG/WebP |
-strip |
Удаление метаданных | Веб-оптимизация |
-auto-orient |
Поворот по EXIF | Фото с камер и смартфонов |
-crop |
Обрезка | Аватары, карточки, сканы |
-rotate |
Поворот | Исправление ориентации |
-colorspace |
Цветовое пространство | Gray, RGB, CMYK-сценарии |
-normalize |
Нормализация диапазона | Сканы, документы |
-sharpen |
Повышение резкости | Миниатюры после уменьшения |
-blur |
Размытие | Маски, фоны, эффекты |
-background |
Фон | PNG с прозрачностью в JPEG |
-flatten |
Сведение слоев/прозрачности | Экспорт в форматы без альфы |
-density |
Плотность | Растеризация PDF/PS |
-profile |
Работа с профилями | Цветовые профили |
-interlace |
Чересстрочная загрузка | Progressive JPEG |
-sampling-factor |
Субдискретизация цвета | JPEG-оптимизация |
Для веба часто используют связку:
gm convert input.jpg -auto-orient -resize 1600x1600 -strip -quality 84 output.jpg
Для миниатюр:
gm convert input.jpg -thumbnail 300x300 -strip output.jpg
Для сканов:
gm convert scan.tif -normalize -resize 2000x2000 output.png
Для PNG с прозрачностью в JPEG:
gm convert input.png -background white -flatten -quality 90 output.jpg
Настройки нельзя подбирать вслепую. JPEG с -quality 60 может быть нормальным для маленькой фотографии, но испортит изображение с текстом. -strip уменьшит файл, но удалит профиль. -normalize улучшит бледный скан, но может испортить мягкую фотографию. GraphicsMagick дает инструменты, но ответственность за параметры остается на пользователе.
Работа с метаданными и профилями
gm identify -verbose показывает технические сведения об изображении. С его помощью можно проверить, что файл действительно имеет ожидаемый формат, размер, глубину цвета и профиль. Это полезно перед массовой обработкой: вместо того чтобы сразу запускать конвертацию тысяч файлов, сначала стоит проверить несколько типичных примеров.
Пример:
gm identify -verbose photo.jpg
В подробном выводе можно увидеть характеристики изображения и понять, как с ним работать дальше. Например, если PNG содержит альфа-канал, при конвертации в JPEG нужно задать фон. Если фотография содержит EXIF-ориентацию, перед изменением размера стоит применить -auto-orient. Если файл имеет важный ICC-профиль, не стоит бездумно удалять все данные через -strip.
Для удаления профилей и метаданных:
gm convert photo.jpg -strip photo_clean.jpg
Для сохранения аккуратного результата в веб-сценариях часто делают так:
gm convert photo.jpg -auto-orient -resize 1600x1600 -strip -quality 85 photo_web.jpg
Для архивных копий лучше хранить оригиналы отдельно, а обработанные версии создавать как производные файлы. GraphicsMagick отлично подходит для создания производных версий, но не должен быть единственным местом хранения исходных фотографий.
Пакетная обработка
Пакетная обработка — один из главных аргументов в пользу GraphicsMagick. Программа особенно сильна, когда нужно обработать не один файл, а сотни или тысячи изображений.
Безопасная схема пакетной обработки
Правильная рабочая схема:
-
Исходники лежат в папке
original. -
Результаты сохраняются в отдельную папку
output. -
Команды тестируются на нескольких файлах.
-
Только после проверки запускается весь пакет.
-
Оригиналы не перезаписываются.
Пример:
mkdir outputfor file in original/*.jpg; do name=$(basename "$file") gm convert "$file" -auto-orient -resize 1600x1600 -strip -quality 85 "output/$name"done
Такой скрипт можно повторять, менять параметры и сравнивать результаты. Если что-то пошло не так, исходники остаются целыми.
Пакетная конвертация PNG в JPG
mkdir jpgfor file in *.png; do base="${file%.*}" gm convert "$file" -background white -flatten -quality 90 "jpg/$base.jpg"done
Эта команда особенно полезна для скриншотов и PNG-изображений, которые нужно отправить в систему, принимающую только JPEG.
Пакетное создание миниатюр
mkdir thumbsfor file in *.jpg; do gm convert "$file" -thumbnail 300x300 "thumbs/$file"done
Для квадратных миниатюр:
mkdir thumbsfor file in *.jpg; do gm convert "$file" -resize 300x300^ -gravity center -crop 300x300+0+0 +repage "thumbs/$file"done
Пакетная обработка с переименованием
mkdir webcounter=1for file in *.jpg; do gm convert "$file" -resize 1600x1600 -quality 84 "web/photo_$counter.jpg" counter=$((counter + 1))done
Это удобно, когда имена исходных файлов хаотичны, а на выходе нужен единый стиль.
Использование mogrify
mogrify экономит время, когда нужно изменить все файлы в рабочей папке:
gm mogrify -resize 1600x1600 -quality 85 *.jpg
Но это команда для подготовленной папки с копиями. Она не спрашивает подтверждения для каждого файла и не создает отдельный результат. Большинство неприятных ошибок новичков связано не с convert, а именно с неосторожным использованием mogrify.
Производительность и стабильность
GraphicsMagick рассчитан на производительную обработку изображений. Он использует многопоточность через OpenMP, поэтому операции, ограниченные процессором, могут масштабироваться при увеличении числа ядер. Это важно для массового ресайза, фильтров, конвертации больших изображений и серверной подготовки превью.
Производительность GraphicsMagick особенно заметна в таких сценариях:
-
обработка большого количества однотипных JPEG;
-
генерация нескольких размеров одного изображения;
-
создание миниатюр для галереи;
-
конвертация TIFF-архива;
-
пакетная нормализация сканов;
-
сравнение изображений в тестах;
-
подготовка контактных листов;
-
backend-обработка пользовательских загрузок.
Для замера конкретной команды можно использовать:
gm time convert input.jpg -resize 1200x1200 output.jpg
Или:
gm benchmark convert input.jpg -resize 1200x1200 output.jpg
В реальной работе скорость зависит не только от GraphicsMagick. Важны размер изображения, формат, диск, процессор, память, наличие профилей, параметры сжатия и внешние библиотеки. Например, уменьшение JPEG обычно выполняется быстро, а обработка большого многостраничного TIFF или PDF может занимать заметно больше времени.
GraphicsMagick хорош тем, что его легко встроить в измеримый процесс. Можно взять типичный набор файлов, прогнать несколько команд, сравнить время и размер результата, затем выбрать параметры. В графическом редакторе такое тестирование провести сложнее.
Безопасность при работе с изображениями
Обработка изображений кажется безопасной задачей, но в серверных сценариях это не так. Файлы могут быть поврежденными, слишком большими, специально подготовленными для перегрузки памяти, содержать неожиданные профили, сложные векторные данные или требовать внешних обработчиков. GraphicsMagick сообщает об ошибках через код возврата: 0 означает успех, 1 — ошибку выполнения. Это удобно для скриптов, потому что обработчик может остановить пайплайн или записать ошибку в лог.
Базовые правила безопасной эксплуатации:
| Риск | Что делать |
|---|---|
| Слишком большие изображения | Ограничивать размер входных файлов |
| Неожиданные форматы | Проверять формат через gm identify |
| Перезапись оригиналов | Не использовать mogrify на исходниках |
| Поврежденные файлы | Обрабатывать ошибки и код возврата |
| PDF/PS/SVG | Учитывать внешние обработчики и ограничения |
| Нехватка диска | Следить за временными файлами и папками вывода |
| Метаданные | Решать, удалять их или сохранять |
| Цветовые профили | Не применять -strip без понимания последствий |
Для локального пользователя главная опасность — перезаписать файлы. Для сервера главная опасность — принять от пользователя произвольное изображение и без ограничений отправить его в обработку. В продакшене нужно ограничивать размер файла, пиксельные размеры, типы форматов, время выполнения и объем временных данных.
Программные API и интеграции
GraphicsMagick можно использовать не только как команду в терминале. Он предоставляет библиотеки и программные интерфейсы, которые применяются в приложениях. Проект связан с C, C++, Perl и Tcl-интерфейсами, а в других языках его часто используют через обертки или прямой вызов команды gm.
Варианты интеграции:
| Способ | Когда использовать |
|---|---|
Прямой вызов gm из скрипта |
Простая автоматизация, shell, PowerShell |
| Вызов из backend-кода | Генерация превью, конвертация загрузок |
| C API | Низкоуровневая интеграция |
| Magick++ | C++-приложения |
| PerlMagick | Perl-сценарии |
| TclMagick | Tcl-интеграции |
| Сторонние обертки | Node.js, Python, PHP и другие окружения |
Прямой вызов CLI часто оказывается самым простым. Backend получает файл, формирует команду, запускает gm convert, проверяет код возврата и сохраняет результат. Такой подход понятен и хорошо отлаживается: ту же команду можно выполнить вручную в терминале.
Но у прямого вызова есть требования:
-
аккуратно экранировать пути к файлам;
-
не подставлять пользовательский ввод в команду без проверки;
-
обрабатывать ошибки;
-
ограничивать время выполнения;
-
разделять исходники и результаты;
-
логировать параметры обработки.
Для сложных приложений удобнее использовать библиотечный интерфейс или проверенную обертку. Но даже при работе через API важно понимать базовые операции GraphicsMagick: resize, crop, quality, strip, identify, compare, composite.
Работа с gm display
gm display — отдельная часть GraphicsMagick, которую нельзя путать с основным консольным режимом. Это просмотрщик и интерактивный обработчик для X-среды. Он позволяет открыть изображение, изменить масштаб отображения, выполнить поворот, кадрирование, копирование области, вставку, аннотацию, композитинг и некоторые цветовые операции.
В меню View доступны:
| Пункт | Действие |
|---|---|
Half Size |
Показать изображение в половинном размере |
Original Size |
Вернуть исходный масштаб |
Double Size |
Увеличить отображение вдвое |
Resize... |
Изменить размер |
Apply |
Применить действие |
Refresh |
Обновить отображение |
Restore |
Восстановить изображение |
В меню Transform доступны:
| Пункт | Действие |
|---|---|
Crop |
Обрезка области |
Chop |
Удаление части изображения |
Flop |
Горизонтальное отражение |
Flip |
Вертикальное отражение |
Rotate Right |
Поворот вправо |
Rotate Left |
Поворот влево |
Rotate... |
Поворот на заданный угол |
Shear... |
Сдвиговая трансформация |
Roll... |
Сдвиг изображения |
Trim Edges |
Обрезка краев |
Интерактивное кадрирование в display работает через выбор пункта Crop в меню Transform. Пользователь выделяет прямоугольник мышью, после чего подтверждает действие командой Crop или отменяет через Dismiss. Это старомодный, но конкретный интерфейс: в нем есть реальные кнопки и пункты меню, а не абстрактная панель редактирования.
Работа с Visual Image Directory
Visual Image Directory — это режим, в котором набор изображений превращается в визуальную сетку миниатюр. Такой файл можно открыть через gm display, выбрать миниатюру и перейти к полному изображению. Для папок с большим количеством файлов это удобнее, чем открывать каждый файл по отдельности.
Создать Visual Image Directory можно командой:
gm montage *.jpg directory.vid
Или:
gm convert 'vid:*.jpg' directory.vid
Затем открыть:
gm display directory.vid
Также можно использовать:
gm display 'vid:*.jpg'
В интерфейсе gm display похожая операция доступна через пункт Visual Directory... в меню File. После выбора файлов программа создает миниатюры и раскладывает их в одну плитку.
Этот режим полезен не для красивой публикации, а для технической навигации. Например, есть папка с сотнями кадров, сканов или обработанных превью. Visual Image Directory позволяет быстро увидеть весь набор и выбрать нужный файл.
Преимущества GraphicsMagick
Главное преимущество GraphicsMagick — точность и автоматизация. Он не пытается быть универсальным визуальным редактором. Он решает конкретные инженерные задачи обработки изображений и делает это через прозрачный синтаксис.
Сильные стороны
| Преимущество | Что это дает |
|---|---|
Единая команда gm |
Все функции доступны через один исполняемый файл |
| Пакетная обработка | Можно обрабатывать целые папки |
| Поддержка множества форматов | Удобен как универсальный конвертер |
| Повторяемость | Команду можно сохранить и выполнить снова |
| Скриптуемость | Легко встроить в shell, PowerShell, backend |
| Многопоточность | Лучше подходит для тяжелых массовых операций |
| Анализ файлов | identify быстро показывает параметры изображения |
| Сравнение изображений | compare полезен для тестов и контроля качества |
| Контактные листы | montage быстро собирает визуальные каталоги |
| Нет тяжелого GUI | Удобен на серверах и в автоматизации |
GraphicsMagick особенно силен в рабочих процессах, где результат должен быть предсказуемым. Например, сайт принимает загруженное изображение и должен создать версии 300x300, 800x800, 1600x1600, удалить лишние данные, сохранить JPEG и WebP. Вручную это не делают. В GraphicsMagick такой процесс описывается несколькими командами и повторяется сколько угодно раз.
Недостатки и ограничения
GraphicsMagick нельзя назвать удобной программой для всех. У него высокий порог входа, потому что пользователю нужно понимать командную строку, параметры, форматы, пути к файлам и последствия операций.
| Недостаток | Почему это важно |
|---|---|
| Нет современного GUI | Новичку сложнее начать |
| Нужно знать команды | Ошибка в параметрах дает неправильный результат |
mogrify перезаписывает файлы |
Можно потерять оригиналы |
| Поддержка форматов зависит от сборки | Один и тот же файл может открываться не везде |
| PDF/SVG/RAW могут требовать внешних компонентов | Не все работает из коробки |
| Документация техническая | Нужно читать синтаксис внимательно |
| Нет слоев и ретуши как в GIMP/Photoshop | Не подходит для художественного редактирования |
| Ошибки путей и кавычек | Особенно заметно в Windows и PowerShell |
Самый существенный недостаток — не интерфейс, а цена ошибки. В графическом редакторе пользователь видит результат перед сохранением. В GraphicsMagick команда может обработать всю папку сразу. Если параметры неправильные, весь пакет будет неправильным. Поэтому нормальная практика — сначала тест на 2–3 файлах, затем запуск на копии, затем обработка всего набора.
Сравнение с аналогами
GraphicsMagick находится между несколькими типами программ: командными обработчиками изображений, графическими пакетными конвертерами, фоторедакторами и медиаконвертерами. Сравнивать его нужно с конкретными инструментами, а не с абстрактными аналогами.
| Программа | Где сильнее GraphicsMagick | Где сильнее аналог |
|---|---|---|
| ImageMagick | Стабильные CLI-пайплайны, единая команда gm, предсказуемость в старых процессах |
Больше свежих примеров, шире известность, активнее используется в новых инструкциях |
| libvips | Более привычный синтаксис для классических CLI-операций | Очень высокая скорость и низкое потребление памяти в потоковой обработке |
| XnConvert | Лучше для серверных скриптов и автоматизации | Удобнее для пользователей, которым нужен графический пакетный конвертер |
| IrfanView | Кроссплатформенная CLI-логика и серверные сценарии | Очень удобен на Windows для просмотра, пакетной конвертации и простых операций |
| GIMP | Лучше для массовой автоматической обработки | Намного сильнее в ручной ретуши, слоях, выделениях, рисовании и дизайне |
| FFmpeg | Лучше для статичных изображений и графических преобразований | Сильнее в видео, аудио, потоках, кадрах и последовательностях видео |
ImageMagick
ImageMagick — самый близкий родственник GraphicsMagick. Обе программы работают через командную строку, конвертируют форматы, меняют размер, кадрируют, накладывают эффекты и поддерживают большое число операций. В ImageMagick основная команда в современных сценариях — magick, а типичные операции выглядят похоже: конвертация, resize, blur, crop, draw, flip, join и другие.
GraphicsMagick обычно выбирают, когда важны стабильность старого пайплайна, понятная команда gm, совместимость с уже написанными скриптами и предсказуемое поведение. ImageMagick чаще выбирают, когда нужны более свежие материалы, больше готовых примеров и широкая узнаваемость.
libvips
libvips — очень сильная библиотека обработки изображений с низким потреблением памяти. У нее есть CLI-команда vips, а для миниатюр используется vipsthumbnail. libvips особенно хорошо подходит для больших изображений и потоковой обработки.
GraphicsMagick удобнее, когда нужен классический универсальный инструмент: convert, identify, compare, montage, composite. libvips сильнее там, где критична скорость на больших файлах и архитектура обработки построена вокруг его API.
XnConvert
XnConvert — графический пакетный конвертер. Он позволяет автоматизировать обработку коллекций изображений через GUI, применять операции вроде resize, crop, color adjustments, filters, effects, сохранять и переиспользовать пресеты.
Если пользователь не хочет писать команды, XnConvert будет проще. Если обработка должна работать на сервере, в скрипте, в backend-процессе или без графического окружения, GraphicsMagick практичнее.
IrfanView
IrfanView силен как Windows-просмотрщик с пакетной конвертацией. В его Batch Conversion/Rename есть выбор выходного формата, кнопка Options, Set advanced options, операции Crop, Resize, Change color depth, Auto adjust colors, Horizontal flip, Vertical flip, Rotate left, Rotate right, Convert to greyscale, Negative, Sharpen, Brightness, Contrast, Gamma correction, Saturation и другие. Запуск обработки выполняется кнопкой Start.
GraphicsMagick лучше подходит для кроссплатформенных командных процессов. IrfanView удобнее для пользователя Windows, которому нужно быстро посмотреть файлы, выбрать их мышью и запустить пакетную обработку через окно.
GIMP
GIMP — полноценный редактор изображений. Он предназначен для ретуши, творческой обработки, создания графики, работы с инструментами, плагинами и ручной корректировкой.
GraphicsMagick не конкурирует с GIMP в ручном редактировании. Он конкурирует только в автоматизируемых операциях. Если нужно убрать дефект кожи, собрать коллаж вручную, нарисовать маску или работать со слоями — нужен GIMP. Если нужно обработать 5000 файлов одной командой — нужен GraphicsMagick.
FFmpeg
FFmpeg — универсальный медиаконвертер для аудио, видео, потоков и контейнеров. Он умеет читать разные входы, фильтровать, транскодировать и писать выходные файлы.
Для последовательностей кадров, видео, извлечения изображений из ролика и сборки видео из PNG/JPEG лучше подходит FFmpeg. Для операций над отдельными изображениями, их свойствами, цветом, размерами, форматами и контактными листами удобнее GraphicsMagick.
Кому подойдет GraphicsMagick
GraphicsMagick подойдет пользователям и специалистам, которым нужна не красивая программа, а надежная обработка изображений.
| Пользователь | Что получит |
|---|---|
| Веб-разработчик | Генерацию превью, WebP, JPEG-версий |
| Backend-разработчик | Обработку загрузок пользователей |
| DevOps-инженер | Скрипты для пайплайнов и серверов |
| Администратор сайта | Массовое сжатие и изменение размера |
| Фотограф | Пакетную подготовку копий |
| Архивист | Конвертацию сканов и контактные листы |
| Тестировщик | Сравнение изображений через gm compare |
| Пользователь Linux/macOS | Удобную работу из терминала |
| Windows-пользователь с PowerShell | Автоматизацию без ручного GUI |
GraphicsMagick особенно уместен, если задача формулируется так: взять все изображения такого типа, применить одинаковые правила и сохранить результат. Это его естественная территория.
Кому лучше выбрать другую программу
GraphicsMagick не нужно использовать везде. В ряде случаев другой инструмент будет лучше.
| Задача | Более подходящий инструмент |
|---|---|
| Ручная ретушь фото | GIMP, Photoshop, Affinity Photo |
| Простая пакетная обработка через GUI | XnConvert, IrfanView |
| Максимально быстрая обработка огромных изображений | libvips |
| Видео, кадры, кодеки, контейнеры | FFmpeg |
| Дизайн, слои, маски, кисти | GIMP или Photoshop |
| Разовая конвертация без терминала | Любой простой GUI-конвертер |
GraphicsMagick стоит выбирать тогда, когда есть смысл в командной строке. Если пользователь принципиально не хочет работать с командами, программа будет раздражать. Если же команды не проблема, GraphicsMagick становится мощным и экономит много времени.
Частые ошибки пользователей
Команда gm не найдена
Ошибка вида:
gm: command not found
означает, что система не видит исполняемый файл. Нужно проверить установку и переменную PATH. В Windows дополнительно важно, из какого терминала запускается команда: PowerShell, Command Prompt, терминал IDE или оболочка Git Bash могут видеть разные переменные окружения.
Файл не открывается, хотя формат вроде поддерживается
GraphicsMagick поддерживает много форматов, но конкретная сборка может не иметь нужной библиотеки. Проверка:
gm convert -list format
Если формата нет в списке или он доступен только для чтения, команда записи не сработает.
PDF не конвертируется
PDF часто требует внешней поддержки. Если команда не работает, проблема может быть не в gm convert, а в отсутствующем обработчике или ограничениях безопасности. Для диагностики полезно запустить:
gm identify file.pdf
и посмотреть сообщение об ошибке.
mogrify перезаписал оригиналы
Это самая неприятная ошибка. gm mogrify изменяет файлы на месте. Для безопасной работы используйте gm convert с отдельной папкой результата.
Небезопасно:
gm mogrify -resize 800x800 *.jpg
Безопаснее:
mkdir outputfor file in *.jpg; do gm convert "$file" -resize 800x800 "output/$file"done
Пути с пробелами ломают команду
Если путь содержит пробелы, его нужно заключать в кавычки:
gm convert "My Photos/photo 01.jpg" -resize 1200x1200 "Output/photo 01.jpg"
Без кавычек оболочка воспримет путь как несколько аргументов.
После конвертации PNG в JPG появился черный фон
JPEG не поддерживает прозрачность. Нужно задать фон и выполнить flatten:
gm convert logo.png -background white -flatten logo.jpg
Цвет стал другим после обработки
Причиной может быть удаление профилей через -strip, изменение цветового пространства или особенности просмотра в другой программе. Если цвет критичен, нельзя бездумно удалять ICC-профиль.
Результат получился слишком большим
Проверьте формат и качество:
gm convert input.png -quality 82 output.jpg
Для фотографий JPEG или WebP обычно меньше PNG. Для скриншотов с текстом PNG может быть качественнее, но не всегда меньше.
Команда работает на Linux, но не работает в Windows
Чаще всего проблема в кавычках, путях, wildcard-шаблонах и синтаксисе оболочки. Циклы Bash не работают в PowerShell без переписывания. Сам GraphicsMagick остается тем же, но оболочки разные.
Практические наборы команд для типовых задач
Подготовка изображений для сайта
mkdir webfor file in *.jpg; do gm convert "$file" -auto-orient -resize 1600x1600 -strip -quality 84 "web/$file"done
Результат: уменьшенные JPEG-копии без лишних метаданных.
Создание двух размеров: карточка и полноразмерная версия
mkdir large thumbsfor file in *.jpg; do gm convert "$file" -auto-orient -resize 1600x1600 -strip -quality 85 "large/$file" gm convert "$file" -auto-orient -resize 400x400^ -gravity center -crop 400x400+0+0 +repage -strip -quality 85 "thumbs/$file"done
Результат: большая версия и квадратная миниатюра.
Быстрое сжатие JPEG
gm convert input.jpg -strip -quality 78 output.jpg
Подходит для уменьшения веса, но качество нужно проверять глазами.
Конвертация TIFF в PNG
gm convert scan.tif scan.png
Для многостраничных TIFF могут понадобиться шаблоны имен, чтобы сохранить страницы отдельно.
Создание превью PDF-страницы
gm convert -density 150 document.pdf[0] preview.jpg
[0] означает первую страницу. Параметр -density влияет на качество растеризации. Такой сценарий зависит от возможностей конкретной установки.
Наложение водяного знака
gm composite -gravity southeast -geometry +24+24 watermark.png photo.jpg result.jpg
Если watermark.png имеет прозрачность, он будет наложен поверх фото аккуратнее.
Добавление рамки
gm convert photo.jpg -bordercolor white -border 20x20 framed.jpg
Для черной рамки:
gm convert photo.jpg -bordercolor black -border 20x20 framed.jpg
Перевод в черно-белый вид
gm convert photo.jpg -colorspace gray bw.jpg
Увеличение резкости после уменьшения
gm convert photo.jpg -resize 1200x1200 -sharpen 0x1 result.jpg
Резкость нужно применять осторожно. Слишком сильное значение создаст ореолы на контрастных границах.
Оценка удобства
GraphicsMagick удобен не интерфейсом, а управляемостью. Для человека, который привык работать мышью, он может показаться сухим и неудобным. Но для пользователя, которому нужно обработать папку файлов, программа намного эффективнее ручного редактора.
Оценивать ее лучше по таким критериям:
| Критерий | Оценка |
|---|---|
| Простота для новичка | Средняя или низкая |
| Возможности пакетной обработки | Высокие |
| Автоматизация | Высокая |
| Работа без GUI | Отличная |
| Ручная ретушь | Слабая |
| Конвертация форматов | Сильная |
| Анализ изображений | Сильный |
| Сравнение изображений | Сильное |
| Серверное применение | Сильное |
| Риск ошибки при неаккуратной работе | Заметный |
GraphicsMagick — программа для тех, кто предпочитает один раз правильно написать команду и потом применять ее сколько угодно раз. В этом ее ценность.
Итоговая оценка
GraphicsMagick Image Processing System — мощный набор инструментов для обработки изображений через командную строку. Он подходит для конвертации, изменения размера, сжатия, анализа, сравнения, пакетной обработки, создания миниатюр, контактных листов и автоматизации графических операций. Главная команда gm объединяет несколько подкоманд, каждая из которых отвечает за конкретный тип задач: convert создает обработанный файл, mogrify меняет файлы на месте, identify показывает свойства, compare сравнивает изображения, montage собирает сетку, composite накладывает одно изображение на другое.
Программа не рассчитана на художественную ретушь и не пытается заменить GIMP или Photoshop. Ее сильная сторона — массовая, повторяемая, скриптуемая обработка изображений. Если нужно вручную редактировать одну фотографию, GraphicsMagick не лучший выбор. Если нужно надежно обработать тысячу файлов, подготовить изображения для сайта, встроить конвертацию в backend или проверить визуальные отличия между файлами, GraphicsMagick справляется уверенно.
| Плюсы | Минусы |
|---|---|
| Мощная командная обработка | Высокий порог входа |
| Удобство для скриптов | Нет современного визуального редактора |
| Поддержка большого числа форматов | Возможности зависят от сборки |
| Быстрая пакетная обработка | mogrify может перезаписать исходники |
Команды identify, compare, montage, composite |
Нужно внимательно читать параметры |
| Подходит для серверов | Не подходит для сложной ручной ретуши |
| Хорошо автоматизируется | Ошибки путей и кавычек мешают новичкам |
GraphicsMagick стоит использовать там, где изображения — часть рабочего процесса, а не объект ручного творчества. Для конвейеров, архивов, сайтов, скриптов, серверов и массовой подготовки файлов это один из наиболее практичных инструментов.