zaLinux.ru

Руководство по ImageMagick: установка, использование и решение проблем


Оглавление

1. Как установить ImageMagick со всеми зависимости для поддержки максимального количества форматов

1.1 Что такое ImageMagick

1.2 Установка ImageMagick в Linux

1.3 Как исправить «magick: команда не найдена»

1.4 ImageMagick: использовать команду magick или convert?

1.5 Почему в ImageMagick больше не работают команды animate, compare, composite, conjure, convert, display, identify, import, mogrify, montage, stream

2. Структура команды magick (ImageMagick)

2.1 Инструменты ImageMagick

2.2 Анатомия командной строки

2.3 Имя входного файла

2.4 Опции командной строки

2.5 Геометрия изображений

2.6 Имя выходного файла

2.7 Порядок опций имеет значение в ImageMagick

2.8 Как указать цвет в ImageMagick

2.8.1 Как указать цвет с прозрачностью

2.9 Ссылка на файл со значением опции

3. Просмотр свойств изображений

3.1 Как просмотреть свойства изображения

3.2 Как узнать уровень качества JPG


3.3 Как узнать количество уникальных цветов в изображении

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

3.5 Как просмотреть класс изображения и цветовое пространство

3.6 Как просмотреть глубину изображения

3.7 Аргументы опции -format

3.8 Онлайн-сервис для вывода информации об изображениях

4. Конвертация изображений в любые форматы в Linux

4.1 Как конвертировать картинки в командной строке Linux

4.2 Конвертация PDF в JPG

4.3 Конвертация JPG в PDF


4.4 Массовая конвертация изображений

4.5 Конвертация картинок во все форматы онлайн

5. Уменьшение размера фотографий, увеличение размера и сжатие изображений

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

5.2 Изменение размера и разрешения изображения

5.3 Изменение степени сжатия изображения

5.4 Массовое изменение размера фотографий в командной строке

5.5 Сжатие изображений без изменения их размера

5.6 Как запретить сохранение всех картинок в один файл

6. Модификация изображений в командной строке Linux

6.1 Комбинирование опций и действий ImageMagick

6.2 Как извлечь область изображения (кадрирование картинки)

6.3 Как применить эффект к области изображения

6.4 Как имитировать картину маслом

6.5 Как имитировать рисунок углем

6.6 Как имитировать карандашный набросок

6.7 Как сделать изображение чёрно-белым

6.8 Создание негатива изображения

6.9 Как сделать зеркальное изображение (по горизонтали или вертикали) в командной строке Linux

6.10 Как повернуть изображение в командной строке Linux


6.11 Прокручивание изображений. Эффект киноплёнки

6.12 Как имитировать фото Polaroid в командной строке

6.13 Как уменьшить шумность картинки в командной строке Linux

6.14 Как увеличить шумность картинки в командной строке Linux

6.15 Как осветлить или затемнить края изображения

6.16 Как создать рамку вокруг изображения

6.17 Как создать виньетку

6.18 Как сделать изображение светлее. Как увеличить экспозицию

6.19 Как сделать изображение темнее. Как уменьшить экспозицию

7. Наложение и объединение изображений в командной строке Linux (компоновка изображений)

7.1 Как наложить одно изображение на другое

7.2 Как объединить фотографии без наложения

7.3 Объединение фотографий с добавлением пространства между ними

8. Создание и конвертация анимированных GIF и видео файлов

 

9. Создание изображений с помощью ImageMagick в командной строке

9.1

Как сделать скриншот окна или экрана с помощью magick

Как сделать скриншот веб-страницы

 

10. Добавление текста на изображения в ImageMagick

10.1 Как в ImageMagick наложить текст на картинку

10.2 Что использовать для вывода текста на изображения в ImageMagick - label:, caption: или -annotate?

10.3 Опции для -annotate

10.4 Как в командной строке Linux добавить текст на изображение

10.5 Как в ImageMagick поменять размер шрифта

10.6 Как поменять цвет шрифта в ImageMagick

10.7 Как поменять шрифт в ImageMagick

10.8 Как указать семейство шрифтов

10.9 Как сделать обводку текста

10.10 Как сделать шрифт наклонным, курсивным или косым

10.11 Как поменять цвет фона надписи

10.12 Как изменить точку отсчёта координат

10.13 Как включить или отключить сглаживание при добавлении надписей

10.14 Как установить толщину шрифта

10.15 Как изменить расстояние между буквами

10.16 Как изменить расстояние между словами

10.17 Как изменить расстояние между строками

10.18 Как добавить текст под наклоном на фотографию

10.19 Как вставить многострочный текст

10.20 Как использовать label: и caption: для добавления изображения

10.21 Как с помощью label: или caption: добавить надпись без фона

10.22 Как добавить текст с прозрачностью на фотографию. Как сделать полупрозрачный фон для добавляемого текста

10.23 Массовое добавление надписи на изображения

10.24 Как добавить водяной знак на большое количество изображений

10.25 Как подобрать размер текста и его координаты в зависимости от размера изображения

11. Скрипты ImageMagick

 

12. Использование библиотеки ImageMagick в различных языках программирования

 

13. Ошибки при использовании magick (convert) и их устранение

13.1 magick: no images found for operation…

13.2 magick: missing output filename `-identify' …

13.3 magick: MissingArgument …

13.4 magick: unrecognized option `-channel-extract'…

13.5 magick: unable to read font `Candice' @ warning/annotate.c/RenderType/1005.

13.6 Почему все файлы сохраняются в один файл

13.7 Опция не работает, но ошибки не показываются

14. Справочная информация

14.1 Все опции команды magick

14.2 Список поддерживаемых форматов и их краткое описание


1. Как установить ImageMagick со всеми зависимости для поддержки максимального количества форматов

Что такое ImageMagick

Используйте ImageMagick для создания, редактирования, компоновки или преобразования цифровых изображений. Она может читать и записывать изображения в различных форматах (более 200), включая PNG, JPEG, GIF, WebP, HEIC, SVG, PDF, DPX, EXR и TIFF. ImageMagick может изменять размер, переворачивать, зеркально отображать, вращать, искажать, сдвигать и преобразовывать изображения, настраивать цвета изображения, применять различные специальные эффекты или рисовать текст, линии, многоугольники, эллипсы и кривые Безье.

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

ImageMagick использует несколько вычислительных потоков для повышения производительности и может считывать, обрабатывать или записывать изображения размером в мега-, гига- или терапиксели. Программа работает на Linux, Windows, Mac OS X, iOS, Android OS и других.

Официальный веб-сайт ImageMagick: https://imagemagick.org. Официальный репозиторий исходного кода — https://github.com/ImageMagick/ImageMagick.

Библиотека ImageMagick может использоваться другими языками программирования, например PHP (php-imagick), Python (pythonmagick), Ruby (Rmagick, ruby-rmagick).

Установка ImageMagick в Linux

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

С конвертированием изображений (JPG и других форматов) отлично справляется утилиты convert и magick из пакета ImageMagick.

В Debian, Linux Mint, Ubuntu, Kali Linux их производных вы можете установить этот пакет с помощью этой команды:

sudo apt install imagemagick
# Для поддержки SVG
sudo apt install potrace

В Arch Linux, Manjaro, BlackArch и их производных для установки выполните команды:

sudo pacman -S imagemagick
# Для поддержки других форматов, таких как JPEG (JPEG XL и JPEG2000), HEIF, DNG, SVG, WEBP, WMF, OpenRaster, OpenEXR, DJVU установите следующие зависимости:
sudo pacman -S ghostscript libheif libjxl libraw librsvg libwebp libwmf libxml2 libzip ocl-icd openexr openjpeg2 djvulibre pango potrace

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

magick -list format

Также в конце статьи приведена таблица с полным перечнем поддерживаемых форматов файлов и ихкратким описанием.

Как исправить «magick: команда не найдена»

Если вы столкнулись с ошибкой, что команда magick не найдена, то это означает, что:

  • не установлен пакет imagemagick
  • установлен пакет imagemagick шестой или более ранней версии

На момент написания актуальной версией ImageMagick является 7.*. Но в Debian и во всех производных дистрибутивах используется ImageMagick 6.*, в которой программа magick отсутствует. Поэтому если у вас возникла ошибка, что команда magick не найдена, используйте вместо неё команду convert.

ImageMagick: использовать команду magick или convert?

В дистрибутивах, в репозиториях которых присутствует ImageMagick 7.*, после установки данного пакета доступны обе утилиты:

  • magick
  • convert

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

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

В дистрибутивах с ImageMagick 6.* для конвертации изображений доступна только программа convert.

Почему в ImageMagick больше не работают команды animate, compare, composite, conjure, convert, display, identify, import, mogrify, montage, stream

Также символьными ссылками на команду magick являются следующие команды:

  • animate
  • compare
  • composite
  • conjure
  • convert
  • display
  • identify
  • import
  • mogrify
  • montage
  • stream

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

Тем не менее вы всё ещё можете вызвать устаревший утилиты, пример вызова утилиты logo:

magick logo: logo.png

Больше подробностей смотрите по ссылке: Porting Guide.

2. Структура команды magick (ImageMagick)

Инструменты ImageMagick

Инструменты ImageMagick — это утилиты командной строки, то есть программы без графического интерфейса.

В настоящее время в пакете ImageMagick осталось два инструмента:

  • magick, предназначен конвертировать между форматами изображения, а также изменять размер изображения, размывать, обрезать, удалять пятна, сглаживать, рисовать, переворачивать, объединять, повторно сэмплировать и многое другое.
  • magick-script, используйте этот интерпретатор языка сценариев для преобразования между форматами изображения, а также для изменения размера изображения, размытия, обрезки, удаления пятен, сглаживания, рисования, отражения, объединения, повторной выборки и многого другого.

Выше уже объяснялось, что существовавшие ранее утилиты (а именно animate, compare, composite, conjure, convert, display, identify, import, mogrify, montage, stream) в ImageMagick 7 (актуальной на данной момент версии) остались только виде символьных ссылок, а весь их функционал перенесён в magick.

Тем не менее в Debian и во всех производных дистрибутивах по прежнему используется ImageMagick 6, со старыми инструментами — будьте к этому готовы.

Даже в ImageMagick 7 можно вызвать старый инструмент командой вида:

magick ИНСТРУМЕНТ

Например:

magick animate
magick compare
magick composite
magick conjure
magick convert
magick display
magick identify
magick import
magick mogrify
magick montage
magick stream

Но особого смысла в этом нет, поскольку вся функциональность собрана в утилите magick.

Анатомия командной строки

Командная строка ImageMagick состоит из

  1. одно или несколько обязательных имён входных файлов.
  2. ноль, один или несколько параметров изображения.
  3. ноль, один или несколько операторов изображения.
  4. ноль, один или несколько операторов последовательности изображений.
  5. ноль, один или несколько стеков изображений.
  6. ноль или одно имя файла выходного изображения

Вы можете найти подробное объяснение каждой из составных частей командной строки в следующих разделах.

Имя входного файла

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

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

ImageMagick расширяет концепцию имени входного файла, включая кроме указания относительного или абсолютного пути до файла ещё и следующее:

  • использование подстановочных символов в имени файла
  • явный формат изображения
  • использование встроенных изображений и шаблонов
  • STDIN, STDOUT и файловые дескрипторы
  • выбор определённых кадров из изображения
  • выбор области изображения
  • изменение размера изображения во время чтения
  • обрезка изображения во время чтения
  • использование ссылки на файл с именами файлов

Эти расширения объясняются в следующих нескольких абзацах.

Использование подстановочных символов в имени файла

В оболочках Linux определённые символы, такие как звёздочка (*) и вопросительный знак (?), автоматически вызывают создание списков имён файлов на основе совпадений с образцом. Эта функция известна как wildcards и globbing (подстановочные символы). ImageMagick поддерживает подстановку имён файлов для таких систем, как Windows, которые изначально не поддерживают это. Например, предположим, что вы хотите преобразовать 1.jpg, 2.jpg, 3.jpg, 4.jpg и 5.jpg в текущем каталоге в анимацию GIF. Вы можете удобно обращаться ко всем файлам JPEG с помощью этой команды:

magick *.jpg images.gif

Явный формат изображения

Изображения хранятся во множестве форматов изображений, включая более известные JPEG, PNG, TIFF и другие. ImageMagick должен знать формат изображения, прежде чем его можно будет прочитать и обработать. Большинство форматов имеют сигнатуру (подпись) внутри изображения, которая однозначно идентифицирует формат. В противном случае ImageMagick использует расширение имени файла для определения формата. Например, image.jpg или image.JPG сообщает ImageMagick, что он читает изображение в формате JPEG.

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

magick -size 640x480 -depth 8 rgb:image image.png

Встроенные изображения и шаблоны

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

magick -size 640x480 pattern:checkerboard checkerboard.png

STDIN, STDOUT и файловые дескрипторы

Linux и Windows позволяют передавать вывод одной команды на ввод другой. ImageMagick позволяет считывать и записывать данные изображения из стандартных потоков STDIN (стандартный ввод) и STDOUT (стандартный вывод) соответственно, используя псевдо-имя файла - (дефис). В этом примере мы передаём вывод magick в программу display:

magick logo: gif:- | magick display gif:-

Явное обозначение формата «gif:» второй раз является необязательным в предыдущем примере. Формат изображения GIF имеет уникальную сигнатуру внутри изображения, поэтому команда отображения ImageMagick может легко распознать формат как GIF. Программа magick также принимает STDIN в качестве входных данных следующим образом:

magick rose: gif:- | magick - -resize "200%" bigrose.jpg'

Доступ к другим конвейерам (трубам, pipes) можно получить через их файловые дескрипторы. Файловые дескрипторы 0, 1 и 2 зарезервированы для стандартных потоков STDIN, STDOUT и STDERR соответственно, но к каналу, связанному с номером файлового дескриптора N>2, можно получить доступ, используя псевдоним fd:N. (Псевдонимы fd:0 и fd:1 могут использоваться для STDIN и STDOUT.) В следующем примере показано, как добавить данные изображения, передаваемые по конвейеру из файлов с дескрипторами 3 и 4, и направить результат в файл с дескриптором номер 5.

magick fd:3 fd:4 -append fd:5

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

magick gif:fd:3 jpg:fd:4 -append tif:fd:5

Выбор кадров

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

magick 'images.gif[0]' image.png

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

Вы можете прочитать более одного изображения из последовательности с диапазоном кадров. Например, вы можете извлечь первые четыре кадра последовательности изображений:

magick 'images.gif[0-3]' images.mng

По умолчанию установлено перешагивать по одному кадру за один раз, поэтому возвращаются кадры 0, 1, 2 и 3. Установите шаг равным 2 с помощью -define frames:step=2, и вместо этого мы получим кадры 0 и 2.

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

magick 'images.gif[3,2,4]' images.mng

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

Выбор области изображения

Необработанные изображения представляют собой последовательность интенсивности цвета без дополнительной метаинформации, такой как ширина, высота или подпись изображения. В необработанных форматах изображения вы должны указать ширину и высоту изображения, но вы также можете указать область изображения для чтения. В нашем примере изображение имеет необработанный 8-битный формат RGB и имеет ширину 6000 пикселей и высоту 4000 пикселей. Однако нам нужна только область размером 600 на 400 рядом с центром изображения:

magick -size 6000x4000 -depth 8 'rgb:image[600x400+1900+2900]' image.jpg

Вы можете получить те же результаты с опцией -extract (также смотрите Как извлечь область изображения (кадрирование картинки)):

magick -size 6000x4000 -depth 8 -extract 600x400+1900+2900 rgb:image image.jpg

Изменение размера изображения во время чтения

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

magick '*.jpg' -resize 120x120 thumbnail%03d.png

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

magick '*.jpg[120x120]' thumbnail%03d.png

Обрезка изображения во время чтения

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

magick '*.jpg' -crop 120x120+10+5 thumbnail%03d.png

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

magick '*.jpg[120x120+10+5]' thumbnail%03d.png

Ссылки на файл с именами файлов

Существует два метода использования имени файла для ссылки на другие имена файлов изображений. Первый — с '@', который считывает имена файлов изображений, разделённые пробелом, из указанного файла. Предположим, что файл myimages.txt состоит из списка имен файлов, например:

frame001.jpg
frame002.jpg
frame003.jpg

Тогда следующая команда:

magick @myimages.txt mymovie.gif

прочитает файлы с изображениями frame001.jpg, frame002.jpg и frame003.jpg и преобразует их в последовательность изображений GIF.

Если путь к изображению содержит один или несколько пробелов, заключите путь в кавычки:

'my title.jpg'

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

Другой способ обращения к другим файлам изображений — вставка символа форматирования в имя файла с диапазоном сцен. Рассмотрим имя файла image-%d.jpg[1-5]. Команда

magick image-%d.jpg[1-5]

заставляет ImageMagick пытаться читать изображения с этими именами файлов:

image-1.jpg
image-2.jpg
image-3.jpg
image-4.jpg
image-5.jpg

Буферизация потока

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

magick logo: gif:- | magick display -define stream:buffer-size=0 gif:-

Опции командной строки

Вы можете управлять поведением утилит ImageMagick с помощью этих опций командной строки. Поведение опции попадает в одну из следующих категорий:

  • Настройка изображения
  • Оператор изображения
  • Оператор канала изображений
  • Оператор последовательности изображений
  • Геометрия изображения
  • Стек изображений

Настройка изображения

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

В этом примере -channel применяется к каждому изображению, поскольку, как мы уже упоминали, настройки сохраняются:

magick -channel RGB wand.png wizard.png images.png

Оператор изображения

Оператор изображения отличается от параметра тем, что влияет на изображение сразу же, как только оно появляется в командной строке. Оператор — это любой параметр командной строки, не указанный в качестве параметра изображения или оператора последовательности изображений. В отличие от настройки изображения, которая сохраняется до завершения командной строки, оператор применяется к текущему набору изображений и забывается. К операторам изображения относятся:

В этом примере -negate делает негативным изображение wand.png, но не wizard.png:

magick wand.png -negate wizard.png images.png 

Обратите внимание, что оператор изображения будет применяться к каждому изображению в последовательности изображений. Например, если вы используете параметр -resize для изменения размера изображения GIF, размер каждого кадра будет изменён до заданного размера. Однако некоторые кадры могут быть меньше всего изображения, и изменение размера всех кадров до одинакового размера может привести к неожиданному результату. В таком случае для подготовки этих кадров следует использовать параметр -coalesce.

Оператор канала изображений

Они работают непосредственно с каналами изображений:

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

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

В этом примере -append добавляет три изображения в одно:

magick mikayla.png picnic.png beach.png -append vacation.png

Стек изображений

В школе ваш учитель, вероятно, разрешал вам работать над задачами в черновике, а затем копировать результаты в контрольную (в чистовик). Стек изображений аналогичен. Он позволяет вам работать с изображением или последовательностью изображений изолированно, а затем вводить результаты обратно в командную строку. Стек изображений очерчен скобками. Операторы изображения влияют только на изображения в текущем стеке. Например, мы можем ограничить вращение изображения только изображением wizard.gif следующим образом:

magick wand.gif \( wizard.gif -rotate 30 \) +append images.gif

Обратите внимание ещё раз, что скобки экранируются обратной косой чертой. Это требуется в Linux, где круглые скобки являются специальными символами оболочки. Обратная косая черта указывает оболочке не интерпретировать эти символы, а передавать их непосредственно выполняемой команде. Не экранируйте круглые скобки в Windows. Каждая скобка (или экранированная скобка) должна иметь пробелы с обеих сторон, как в примере, показанном выше.

В дополнение к уже рассмотренным операторам изображения, следующие операторы изображения наиболее полезны при обработке изображений в стеке изображений:

Аргументами этих операторов являются индексы в последовательности изображений по номерам, начиная с нуля, для первого изображения и так далее. Однако если вы укажете отрицательный индекс, изображения индексируются с конца (последнее добавленное изображение). То есть индекс -1 соответствует последнему изображению в текущей последовательности изображений, -2 соответствует предпоследнему и так далее.

Геометрия изображений

Геометрия изображений относится к предыдущему разделу — Опции командной строки, — но при этом это весьма объёмный и важный аспект рассматриваемой темы, поэтому он выделен в отдельный параграф. Просто помните, что Геометрия изображений — это разновидность опций командной строки.

Многие опции принимают в качестве значения так называемую Геометрию. Под Геометрией программы ImageMagick понимают числа, обозначающие размер изображения, а также координаты его расположения. С одной стороны, Геометрия довольно проста, поскольку может включать в себя размер и сдвиг, либо только одну из этих величин. Но с другой стороны, ImageMagick очень гибок в способах задания Геометрии, поэтому используя всю полноту синтаксиса указания размера и сдвига вы можете в точности передать программе ваши намерения. К тому же, геометрия может немного по-разному трактоваться опциями, которым она передана.

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

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

Аргумент геометрии может принимать любую из форм, перечисленных в таблице ниже. Они будут описаны более подробно в подразделах, следующих за таблицей. Обычная форма — РАЗМЕР[СМЕЩЕНИЕ], что означает, что размер обязателен, а смещение необязательно. Иногда (для некоторых опций) возможно [РАЗМЕР]СМЕЩЕНИЕ. Ни в коем случае не допускаются пробелы в аргументе геометрии.

Рассмотрим как может быть задана первая, обязательная часть Геометрии, — Размер.

Размер Общее описание (фактическое поведение может различаться в зависимости от параметров и настроек)
МАСШТАБ% Высота и ширина масштабируются в указанном проценте.
МАСШТАБ-x%xМАСШТАБ-y% Высота и ширина индивидуально масштабируются в указанных процентах. (Требуется только один символ %, но при желании можно указать и два.)
ШИРИНА Применяется указанная ширина, высота выбирается автоматически для сохранения соотношения сторон.
xВЫСОТА Применяется указанная высота, ширина выбирается автоматически для сохранения соотношения сторон.
ШИРИНАxВЫСОТА Задаются максимальные значения высоты и ширины, соотношение сторон сохраняется.
ШИРИНАxВЫСОТА^ Задаются минимальные значения ширины и высоты, соотношение сторон сохраняется.
ШИРИНАxВЫСОТА! Ширина и высота указаны категорически, исходное соотношение сторон игнорируется.
ШИРИНАxВЫСОТА> Уменьшает изображение с размерами, превышающими соответствующие аргументы ширины и/или высоты.
ШИРИНАxВЫСОТА< Увеличивает изображение с размерами, меньшими, чем соответствующие аргументы ширины и/или высоты.
ПЛОЩАТЬ@ Изменить размер изображения, чтобы иметь указанную область в пикселях. Соотношение сторон сохраняется.
x:y Здесь x и y обозначают соотношение сторон (например, 3:2 = 1,5).
x:y^ Удалить строки или столбцы для достижения заданного соотношения сторон.
x:y# Добавить строки или столбцы для достижения заданного соотношения сторон.

Во всех предыдущих формах записи Геометрии не указан Сдвиг. К любой из перечисленных выше записей может быть добавлен сдвиг:

{РАЗМЕР}{СДВИГ}

Сдвиг представляет собой два числа со знаком:

РАЗМЕР{+-}x{+-}y

Горизонтальное и вертикальное смещения x и y указывается в пикселях. Знаки нужны для обеих цифр.

Если смещение не указано, то по умолчанию оно равно +0+0. Но в моих тестах не указание смещения приводило к неожиданным результатам. То есть если вы, к примеру, используете опцию -gravity, и не хотите смещать изображение относительно нового центра притяжения, то в качестве смещения укажите +0+0. Подробности смотрите в разделе Опция -gravity определяет начало координат для Сдвига

Помните, что по умолчанию началом координат (координаты 0; 0) является верхний левый угол.

На смещения влияет параметр -gravity. На смещения не влияют % или другие операторы размера. Обратите внимание, что положительные смещения по осям X и Y находятся во внутреннем направлении к центру изображения для всех параметров гравитации, кроме «center». Для East +X это лево. Для South +Y это вверх. Для SouthEast +X слева и +Y вверху. Для center используется обычное соглашение о направлениях X и Y (+X — вправо, а +Y — вниз).

Базовые настройки ширины и высоты; операторы %, ^ и !

Здесь, чуть ниже, несколько простых примеров геометрии, показывающих, как её можно использовать в качестве аргумента опции -resize. Мы будем использовать встроенное изображение logo: для нашего входного изображения. Это изображение имеет ширину 640 пикселей и высоту 480 пикселей, то есть его размеры 640×480. Когда мы задаём размеры изображения, ширина (горизонтальный размер) всегда предшествует высоте (вертикальный размер). Это будет верно, когда мы будем говорить о координатах или смещениях в изображении, которые всегда будут значением x, за которым следует y. Просто подумайте о школьных уроках алгебры и плоскости xy. (Ну, почти: наша ось Y всегда будет направлена вниз!)

magick logo: -resize '200%' bigWiz.png
magick logo: -resize '200x50%' longShortWiz.png
magick logo: -resize '100x200' notThinWiz.png
magick logo: -resize '100x200^' biggerNotThinWiz.png
magick logo: -resize '100x200!' dochThinWiz.png

Первая из четырёх команд проста — она растягивает и ширину, и высоту входного изображения на 200% в каждом направлении; это увеличивает всё это в два раза. Вторая команда задаёт разные проценты для каждого направления, растягивая ширину до 200% и сжимая высоту до 50%. Полученное изображение (в данном примере) имеет размеры 1280×240. Обратите внимание, что символ процента не нужно повторять; следующие записи эквивалентны: 200×50%, 200%x50, 200%x50%.

По умолчанию ширина и высота, указанные в аргументе геометрии, являются максимальными значениями, если не указано процентное значение. То есть изображение расширяется или сжимается, чтобы соответствовать указанному значению ширины и высоты, сохраняя соотношение сторон (отношение высоты к ширине) изображения. Например, третья команда выше «пытается» установить размеры 100×200. Представьте, что исходное изображение (размером 640×480) постепенно сжимается, сохраняя соотношение сторон постоянным, пока оно не уместится в прямоугольник размером 100×200. Поскольку длина изображения превышает высоту, оно подойдёт, если его ширина уменьшится до 100 пикселей. Чтобы сохранить соотношение сторон, высота должна быть (480/640)×100 пикселей=75 пикселей, поэтому окончательные размеры будут 100×75.

Обратите внимание, что в предыдущем примере будет достигнут по крайней мере один из указанных размеров (в данном случае ширина — 100 пикселей). Полученное изображение плотно прилегает к оригиналу. Можно сделать прямо противоположное этому, вызвав оператор ^, как в четвёртом примере выше. В этом случае, когда в качестве аргумента задано 100×200^, снова будет достигнуто хотя бы одно из измерений, здесь аргумент геометрии даёт минимальные значения. В нашем примере высота станет равной 200, а ширина будет масштабироваться, чтобы сохранить соотношение сторон, и станет (640/480) × 200 пикселей = 267 пикселей. С помощью оператора ^ один из этих размеров будет соответствовать запрошенному размеру, но изображение, скорее всего, выйдет за пределы запрошенных размеров, чтобы сохранить соотношение сторон.

Мы видим, что ImageMagick очень хорошо сохраняет соотношение сторон изображений, чтобы предотвратить искажение ваших любимых фотографий и изображений. Но вы можете действительно захотеть, чтобы размеры были 100×200, тем самым растягивая изображение. В этом случае просто скажите ImageMagick, что вы действительно имеете в виду это, добавив восклицательный знак (!) к Геометрии. Это приведёт к тому, что размер изображения будет точно таким, как вы укажете. Так, например, если указать 100×200! размеры станут ровно 100×200 (получается небольшой, вытянутый по вертикали волшебник).

Ограничение ширины, высоты и площади; операторы >, < и @

Вот ещё несколько примеров:

magick logo: -resize '100' wiz1.png
magick logo: -resize 'x200' wiz2.png
magick logo: -resize '100x200>' wiz3.png
magick logo: -resize '100x200<' wiz4.png

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

Используйте > для уменьшения изображения, только если его размеры больше, чем соответствующие аргументы ширины и/или высоты. Используйте < для увеличения изображения, только если его размеры меньше, чем соответствующие аргументы ширины и/или высоты. В любом случае, если вносятся изменения, результат будет таким, как если бы оператор > или < не присутствовал. Итак, в третьем примере выше мы указали 100×200>, а исходный размер изображения — 640×480, поэтому размер изображения уменьшается, как если бы мы указали 100×200. Однако в четвёртом примере выше его размер не изменится.

Наконец, используйте @, чтобы указать максимальную площадь изображения в пикселях, опять же, пытаясь сохранить соотношение сторон. (Пиксели принимают только целочисленные значения, поэтому всегда используется некоторая аппроксимация.) В следующем примере запрашивается область размером 10000 пикселей. Полученный файл имеет размеры 115×86, что составляет 9890 пикселей.

magick logo: -resize '10000@' wiz10000.png

Примечание: во всех примерах выше и ниже аргументы геометрии заключены в кавычки. Во многих случаях это необязательно, но не всегда. Мы должны заключать спецификации геометрии в кавычки при использовании < или >, чтобы предотвратить интерпретацию этих символов оболочкой как перенаправление файла. В системах Windows символ ^ должен быть заключён в кавычки, иначе он игнорируется. Чтобы быть в безопасности, вероятно, следует сохранить привычку заключать все аргументы геометрии в кавычки, как мы сделали здесь.

Смещения в геометрии

Вот несколько примеров, иллюстрирующих использование смещений в аргументах геометрии. Одно из типичных применений смещений — в сочетании с параметром -region. Этот параметр позволяет использовать многие другие параметры для изменения пикселей в указанной прямоугольной области изображения. Таким образом, ему необходимо указать ширину и высоту этой области, а также смещение в изображении, которое представляет собой пару координат, указывающих местоположение области в более крупном изображении. Ниже, в первом примере, мы указываем область размером 100×200, которая будет расположена в координатах xy: x=10, y=20. Для удобства воспользуемся обычным алгебраическим обозначением (x,y)=(10,20).

magick logo: -region '100x200+10+20' -negate wizNeg1.png
magick logo: -region '100x200-10+20' -negate wizNeg2.png
magick logo: -gravity center -region '100x200-10+20' -negate wizNeg3.png

Обратите внимание, что для смещения всегда требуются знаки +/. Смещение на самом деле не является истинным местоположением в изображении; его координаты должны быть добавлены к какому-то другому местоположению. Будем называть это текущим местоположением. Однако в первых двух приведённых выше примерах это место — левый верхний угол изображения с координатами (0,0). (Это ситуация по умолчанию, когда нет других директив для его изменения.) В первом примере выше собственный верхний левый угол прямоугольника 100×200 помещается в (10,20).

Отрицательное смещение может иметь смысл во многих случаях. Во втором приведённом выше примере смещение равно (-10,20), указанное как -10+20. В этом случае инвертировать можно только ту часть полученного (виртуального) прямоугольника, которая находится внутри изображения; здесь это эквивалентно указанию геометрии как 90×200+0+20.

В третьем примере выше параметр -gravity предшествует другим и устанавливает текущее местоположение в изображении в самом центре изображения. В данном случае это пиксель (320 240), так как размер изображения 640×480. Это означает, что смещения применяются к этому местоположению, которое, таким образом, перемещается в данном случае на (320-10 240+20)=(310 260). Но на сам регион 100×200 влияет параметр -gravity, поэтому вместо воздействия на его левый верхний угол определяется собственный центр региона (на (+50,+100) внутри него). Поэтому центр прямоугольника 100×200 перемещается в (310 260). Верхний левый угол инвертированного прямоугольника теперь равен (310-50,260-100)=(260,160).

Опция -gravity определяет начало координат для Сдвига

Как уже было сказано, по умолчанию для СДВИГА началом координат является верхней левый угол изображения. С помощью опции -gravity ТИП можно выбрать другое начало координат.

Опция -gravity устанавливает текущее предложение гравитации для различных других настроек и опций.

Возможные варианты:

  • None
  • Center
  • East
  • Forget
  • NorthEast
  • North
  • NorthWest
  • SouthEast
  • South
  • SouthWest
  • West

Чтобы получить полный список параметров -gravity, доступных в вашей установке ImageMagick используйте:

magick -list gravity

Выбранное направление указывает, где разместить текст или части изображения. Например, гравитация Center заставляет текст располагаться по центру изображения. По умолчанию гравитация изображения не определена. Смотрите опцию -draw для более подробной информации о графических примитивах. Из примитивов -draw параметр -gravity влияет только на текстовый примитив.

Параметр -gravity также используется вместе с параметром -geometry и другими параметрами или опциями, которые принимают геометрию в качестве аргумента, например параметром -crop.

Если параметр -gravity встречается перед другим параметром или опцией, имеющим аргумент геометрии, задающий смещение, смещение обычно применяется к точке на изображении, предложенной аргументом -gravity. Так, например, в следующей команде файл image.png имеет размеры 200×100. Смещение, указанное аргументом для -region, равно (-40,+20). Аргументом -gravity является Center, который указывает на середину изображения в точке (100,50). Смещение (-40,20) применяется к этой точке, что даёт (100-40,50+20)=(60,70), поэтому указанная область 10×10 находится в этой точке. (Кроме того, -gravity влияет на саму область, центр которой находится в точке с координатой пикселя (60,70). (Подробнее об аргументе геометрии смотрите чуть выше).

magick image.png -gravity Center -region 10x10-40+20 -negate output.png

При использовании в качестве опции для -composite, -gravity задаёт направление, в котором изображение тяготеет внутри композита.

Используйте +gravity, чтобы вернуть гравитацию к значению по умолчанию.

Имя выходного файла

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

  1. явный формат изображения
  2. запись в стандартный вывод
  3. указание шаблона имени файлов

Каждое из этих расширений объясняется в следующих нескольких абзацах.

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

Явный формат изображения

Изображения могут храниться во множестве графических форматов, включая более известные JPEG, PNG, TIFF и другие. ImageMagick должен знать желаемый формат изображения, прежде чем оно будет записано. ImageMagick использует расширение имени файла для определения формата. Например, image.jpg указывает ImageMagick записать изображение в формате JPEG. В некоторых случаях имя файла не определяет формат изображения. В этих случаях изображение записывается в том формате, в котором оно было изначально прочитано, если не указан явный формат изображения. Например, предположим, что мы хотим записать наше изображение в файл с именем image в необработанном формате интенсивности красного, зелёного и синего:

magick image.jpg rgb:image

Стандартный вывод

Linux позволяет передавать вывод одной команды другой. ImageMagick позволяет передать выводимое изображение другой команде, для этого в качестве имени файла укажите - (дефис). В этом примере мы передаём вывод magick в программу display:

magick logo: gif:- | magick display gif:-

Здесь явный формат необязателен. Формат изображения GIF имеет сигнатуру, которая однозначно идентифицирует его, поэтому ImageMagick может легко распознать формат как GIF.

Указание шаблона имени файлов

Программа поддерживает встроенные символы для обозначения форматирования. Предположим, имя нашего выходного файла — image-%d.jpg, а наш список изображений включает 3 изображения. Вы можете ожидать, что эти файлы изображений будут записаны с именами:

image-0.jpg
image-1.jpg
image-2.jpg

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

magick rose: -set filename:area '%wx%h' 'rose-%[filename:area].png'

записывает изображение с этим именем файла:

rose-70x46.png

Список возможных атрибутов и их условные обозначения в виде экранированных символов вы найдёте по ссылке: https://imagemagick.org/script/escape.php

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

Ещё один пример:

mkdir preview
magick *.jpg[100x] -set filename:currentfile '%f-%wx%h' 'preview/%[filename:currentfile].jpg'

Наконец, чтобы преобразовать несколько изображений JPEG в отдельные страницы PDF, используйте:

magick *.jpg +adjoin page-%d.pdf

Используйте -define filename:literal=true, чтобы обойти интерпретацию встроенных символов форматирования и вместо этого использовать имя файла буквально, то есть имя сохраняемых файлов в этом случае будет содержать знак процента и букву.

Буферизация потока

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

magick -define stream:buffer-size=0 logo: gif:- | magick display gif:-

Порядок опций имеет значение в ImageMagick

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

Рассмотрим следующую команду:

magick IMAGE.jpg -rotate 30 -background red test8.jpg

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

Чтобы исправить ошибку, необходимо указать опцию -background первой. Следующая команда сработает именно так, как задумано:

magick IMAGE.jpg -background red -rotate 30 test8.jpg

Опции magick делятся на разные группы (настройки изображения, операторы изображения, операторы канала изображения, оператор последовательности изображений, геометрия изображения, стек изображений) и влияют либо на все изображения, либо на изображения после которого указана опция. В данном случае, видимо, причина того, что опция -background не сработала в первой команде является то, что опции применяются последовательно:

  1. Вначале применяется оператор изображения -rotate, при этом появившиеся пустые углы заливаются фоном по умолчанию (белым).
  2. Затем устанавливается новая настройка фона, которая по итогу команды уже ни на что не влияет.

Во второй команде последовательность действие такая:

  1. Опцией -background устанавливается новый цвет фона (красный).
  2. Оператором изображения -rotate выполняется поворот изображения, а появившиеся пустые углы заливаются фоновым цветом, в данном случае фоновым цветом установлен красный.

Хотя это контринтуитивно, поскольку в большинстве утилит Linux порядок опцией не имеет значения, в ImageMagick (magick) порядок опций имеет значение!

Как указать цвет в ImageMagick

Ряд опций и методов ImageMagick принимают цвет в качестве аргумента. Цвет может быть задан как название цвета (имеется ограниченный, но большой набор — полный перечень смотрите ниже) или как набор чисел (в десятичном или шестнадцатеричном формате), каждое из которых соответствует каналу в Цветовой модели RGB или RGBA. Также могут быть указаны цветовые модели HSL, HSLA, HSB, HSBA, CMYK или CMYKA.

Чтобы вывести имена цветов выполните команду (также эти имена и сами цвета даны в таблице чуть ниже):

magick -list color

Пример использования

Каждая из следующих команд создаёт одну и ту же известковую рамку вокруг изображения. (Используйте «двойные кавычки» для Windows.)

magick -bordercolor lime -border 10 image.jpg image.png
magick -bordercolor '#0f0' -border 10 image.jpg image.png
magick -bordercolor '#00ff00' -border 10 image.jpg image.png
magick -bordercolor 'rgb(0,255,0)' -border 10 image.jpg image.png
magick -bordercolor 'rgb(0,100%,0)' -border 10 image.jpg image.png

Список распознаваемых названий цветов (например, цвет aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, yellow и другие) приведён в таблице ниже.

Спецификация цветовой модели

Цветовые модели sRGB, CMYK, HSL и HSB используются в числовых спецификациях цвета. Во всех этих примерах указан один и тот же красный цвет sRGB:

#f00                      #rgb
#ff0000                   #rrggbb
#ff0000ff                 #rrggbbaa
#ffff00000000             #rrrrggggbbbb
#ffff00000000ffff         #rrrrggggbbbbaaaa
rgb(255, 0, 0)            целое число в диапазоне 0–255 для каждого компонента
rgb(100.0%, 0.0%, 0.0%)   число с плавающей запятой в диапазоне 0—100 % для каждого компонента

Формат значения sRGB в шестнадцатеричной системе счисления представляет собой «#», за которым сразу следуют три, шесть или двенадцать шестнадцатеричных символов. Трёхзначное обозначение sRGB (#rgb) преобразуется в шестизначное (#rrggbb) путём повторения цифр, а не путём добавления нулей. Например, #fb0 заменяется на #ffbb00. Это гарантирует, что белый цвет (#ffffff) можно указать с помощью короткого обозначения (#fff), и устраняет любые зависимости от глубины цвета изображения. Используйте шестнадцатеричное представление всякий раз, когда производительность является проблемой. ImageMagick не нужно загружать расширенную таблицу цветов для интерпретации шестнадцатеричного цвета, например, #000000, но это необходимо, если вместо этого используется имя цвета (в данном случае «black»).

Формат значения sRGB в функциональной нотации — «rgb(r,g,b)», где r, g и b — либо три целых числа, либо значения с плавающей запятой в диапазоне от 0 до 255, либо три целых числа или значения с плавающей запятой в процентах в диапазоне 0—100%. Значение 255 соответствует 100% и #F или #FF в шестнадцатеричном представлении: rgb(255, 255, 255) = rgb(100%, 100%, 100%) = #FFF = #FFFFFF. Обратите внимание, что начиная с ImageMagick 7.0.10-53 запятые больше не нужны, и косая черта может идти после альфа-значения, например. RGB(255 128 0/50%).

Вокруг числовых значений допускаются пробельные символы, по крайней мере, если весь аргумент цвета заключён в кавычки («одинарные кавычки» для Linux-подобных систем, «двойные кавычки» для Windows).

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

rgb(255, 0, 0)                 диапазон 0 - 255
rgba(255, 0, 0, 1.0)           то же самое, с явным значением альфа
rgb(100%, 0%, 0%)              диапазон 0.0% - 100.0%
rgba(100%, 0%, 0%, 1.0)        то же самое, с явным значением альфа

Формат значения RGBA в функциональной нотации — «rgba(r,g,b,a)», где r, g и b такие же, как описано выше для функциональной нотации RGB, а альфа-значение a находится в диапазоне от 0,0. (полностью прозрачный) до 1,0 (полностью непрозрачный).

Существует также цвет под названием «нет», который является полностью прозрачным. Этот цвет является сокращением для rgba(0, 0, 0, 0.0).

Нелинейные значения серого удобно задавать именем, одним значением интенсивности или значением интенсивности и альфа-значением:

gray50            почти средний серый
gray(127)         почти серый
gray(50%)         средний серый
graya(50%, 0.5)   полупрозрачный средне-серый

Для линейных значений серого добавьте -colorspace RGB -colorspace Gray или -colorspace LinearGray при создании серых цветов. Последний является новым для Imagemagick 6.9.9-29 и 7.0.7-17.

Цветовая модель ImageMagick также поддерживает цвета hue-saturation-lightness (оттенка-насыщенности-лёгкости) (HSL) и hue-saturation-brightness (оттенка-насыщенности-яркости) (HSB) в дополнение к числовым цветам sRGB. Цвета HSL кодируются тройкой (оттенок, насыщенность, лёгкость). Точно так же цвета HSB кодируются как тройка (оттенок, насыщенность, яркость). Тройки HSL или HSB представляют собой либо прямые значения (оттенок 0–360, насыщенность 0–255, лёгкость или яркость 0–255), либо значения S, L, B в процентах относительно этих диапазонов.

Цветовая система HSB геометрически представлена в виде конуса с вершиной, направленной вниз. Оттенок измеряется по всему периметру. Насыщенность измеряется от оси наружу. Яркость измеряется от вершины вверх.

Цветовая система HSL геометрически представлена в виде сложенного двойного конуса, одна вершина которого направлена вниз, а другая — вверх. Самые широкие концы обоих конусов укладываются вместе один на другой. Оттенок измеряется по всему периметру. Насыщенность измеряется от оси наружу. Яркость измеряется от нижней вершины вверх.

См. http://en.wikipedia.org/wiki/HSL_and_HSV для получения более подробной информации о цветовых системах HSL и HSB.

Hue (Оттенок) представлен как угол цвета вокруг кругового периметра конуса(ов) (то есть радуга, представленная в круге). Значения оттенка представляют собой целые числа или числа с плавающей запятой в диапазоне 0–360. По определению красный = 0 = 360, а другие цвета распределены по кругу, поэтому зеленый = 120, синий = 240 и т. д. Как угол, он неявно обертывается так, что, например, -120 = 240 и 480 = 120. . (Изучающие тригонометрию сказали бы, что здесь «котерминальные углы эквивалентны»; угол θ можно стандартизировать, вычислив эквивалентный угол θ по модулю 360.)

Saturation (Насыщенность) измеряется от центральной оси конуса(ов) к периметру конуса(ов). Насыщенность может быть выражена целым числом или числом с плавающей запятой в диапазоне 0–255, либо целым числом или процентом с плавающей запятой в диапазоне 0–100. Насыщенность можно рассматривать как отсутствие какого-либо «белого», смешанного с основным цветом. Таким образом, 255 или 100% являются полным насыщением и соответствуют точке на внешней поверхности конуса (HSB) или двойного конуса (HSL). Это будет самый «колоритный» регион. 0 или 0% — это отсутствие насыщения, что приводит к некоторому оттенку серого. Это происходит вдоль центральной оси конуса или двойного конуса с чёрным на нижней вершине и белым наверху.

Brightness и Lightness (Яркость и Лёгкость) также могут быть представлены целыми числами или числами с плавающей запятой в диапазоне 0–255 или целыми числами или процентами с плавающей запятой в диапазоне 0–100%. Яркость и Лёгкость измеряются от нижней вершины вверх до вершины конуса или двойного конуса вдоль центральной оси конуса(ов). 0 или 0% соответствуют нижней вершине, а 255 или 100% соответствуют верхней центральной части конуса для яркости и верхней вершине двойного конуса для яркости.

Цветовую систему HSB немного легче понять, чем цветовую систему HSL. В цветовой системе HSB чёрный находится в нижней вершине, а белый — в верхней центральной части конуса на центральной оси. Тогда самые яркие или насыщенные цвета будут на внешнем крае вершины конуса в самой широкой части. Таким образом, при Saturation=100% и Brightness=100% (насыщенности и яркости).

hsb(0,   100%,  100%)    или    hsb(0,   255,   255)       полностью красный
hsb(120, 100%,  100%)    или    hsb(120, 255,   255)       полностью зелёный
hsb(120, 100%,  75%)     или    hsb(120, 255,   191.25)    средне-зелёный
hsb(120, 100%,  50%)     или    hsb(120, 255,   127.5)     тёмно-зелёный
hsb(120, 100%,  25%)     или    hsb(120, 255,   63.75)     очень темно-зеленый
hsb(120, 50%,   50%)     или    hsb(120, 127.5, 127.5)     пастельно-зелёный

В цветовой системе HSL чёрный находится в нижней части, а белый — в верхней. Однако насыщенность максимальна в середине двойного конуса по его внешнему периметру и, следовательно, при значении яркости 50%. Тогда самые яркие или насыщенные цвета будут на внешнем краю двойного конуса в его самой широкой части. Таким образом, при Saturation=100% и Brightness=50% (насыщенности и яркости).

hsl(0,   100%,  50%)     или    hsl(0,   255,   127.5)     полностью красный
hsl(120, 100%,  100%)    или    hsl(120, 255,   255)       белый
hsl(120, 100%,  75%)     или    hsl(120, 255,   191.25)    пастельно-зелёный
hsl(120, 100%,  50%)     или    hsl(120, 255,   127.5)     полностью зелёный
hsl(120, 100%,  25%)     или    hsl(120, 255,   63.75)     тёмно-зелёный
hsl(120, 50%,   50%)     или    hsl(120, 127.5, 127.5)     средне-зелёный

Одним из преимуществ HSB или HSL по сравнению с RGB является то, что они могут быть более интуитивно понятными: вы можете угадать нужные цвета, а затем настроить их. Также проще создавать наборы совпадающих цветов (например, сохраняя оттенок одинаковым и изменяя яркость или светлоту и насыщенность).

Подобно тому, как функциональная нотация 'rgb()' имеет альфа-аналог 'rgba()', функциональные нотации 'hsl()' и 'hsb()' имеют свои альфа-аналоги 'hsla()' 'hsba()'. В этих примерах указан один и тот же цвет:

hsb(120, 100%,  100%)              полностью зелёный в hsb
hsba(120, 100%,  100%,  1.0)       то же самое, с альфа-значением 1,0
hsb(120, 255,  255)                полностью зелёный в hsb
hsba(120, 255,  255,  1.0)         то же, с альфа-значением 1.0

hsl(120, 100%,  50%)               полностью зелёный в hsl
hsla(120, 100%,  50%,  1.0)        то же, с альфа-значением 1.0
hsl(120, 255,  127.5)              полностью зелёный в hsl
hsla(120, 255,  127.5,  1.0)       то же, с альфа-значением 1,0

ImageMagick также поддерживает широкий цветовой охват, например Lab, LCH и Display-P3.

Список названий цветов

В таблице ниже представлен список именованных цветов, распознаваемых ImageMagick:

Имя Цвет RGB Hex
snow snow rgb(255, 250, 250) #FFFAFA
snow1 snow1 rgb(255, 250, 250) #FFFAFA
snow2 snow2 rgb(238, 233, 233) #EEE9E9
RosyBrown1 RosyBrown1 rgb(255, 193, 193) #FFC1C1
RosyBrown2 RosyBrown2 rgb(238, 180, 180) #EEB4B4
snow3 snow3 rgb(205, 201, 201) #CDC9C9
LightCoral LightCoral rgb(240, 128, 128) #F08080
IndianRed1 IndianRed1 rgb(255, 106, 106) #FF6A6A
RosyBrown3 RosyBrown3 rgb(205, 155, 155) #CD9B9B
IndianRed2 IndianRed2 rgb(238, 99, 99) #EE6363
RosyBrown RosyBrown rgb(188, 143, 143) #BC8F8F
brown1 brown1 rgb(255, 64, 64) #FF4040
firebrick1 firebrick1 rgb(255, 48, 48) #FF3030
brown2 brown2 rgb(238, 59, 59) #EE3B3B
IndianRed IndianRed rgb(205, 92, 92) #CD5C5C
IndianRed3 IndianRed3 rgb(205, 85, 85) #CD5555
firebrick2 firebrick2 rgb(238, 44, 44) #EE2C2C
snow4 snow4 rgb(139, 137, 137) #8B8989
brown3 brown3 rgb(205, 51, 51) #CD3333
red red rgb(255, 0, 0) #FF0000
red1 red1 rgb(255, 0, 0) #FF0000
RosyBrown4 RosyBrown4 rgb(139, 105, 105) #8B6969
firebrick3 firebrick3 rgb(205, 38, 38) #CD2626
red2 red2 rgb(238, 0, 0) #EE0000
firebrick firebrick rgb(178, 34, 34) #B22222
brown brown rgb(165, 42, 42) #A52A2A
red3 red3 rgb(205, 0, 0) #CD0000
IndianRed4 IndianRed4 rgb(139, 58, 58) #8B3A3A
brown4 brown4 rgb(139, 35, 35) #8B2323
firebrick4 firebrick4 rgb(139, 26, 26) #8B1A1A
DarkRed DarkRed rgb(139, 0, 0) #8B0000
red4 red4 rgb(139, 0, 0) #8B0000
maroon maroon (SVG compliance) rgb(128, 0, 0) #800000
LightPink1 LightPink1 rgb(255, 174, 185) #FFAEB9
LightPink3 LightPink3 rgb(205, 140, 149) #CD8C95
LightPink4 LightPink4 rgb(139, 95, 101) #8B5F65
LightPink2 LightPink2 rgb(238, 162, 173) #EEA2AD
LightPink LightPink rgb(255, 182, 193) #FFB6C1
pink pink rgb(255, 192, 203) #FFC0CB
crimson crimson rgb(220, 20, 60) #DC143C
pink1 pink1 rgb(255, 181, 197) #FFB5C5
pink2 pink2 rgb(238, 169, 184) #EEA9B8
pink3 pink3 rgb(205, 145, 158) #CD919E
pink4 pink4 rgb(139, 99, 108) #8B636C
PaleVioletRed4 PaleVioletRed4 rgb(139, 71, 93) #8B475D
PaleVioletRed PaleVioletRed rgb(219, 112, 147) #DB7093
PaleVioletRed2 PaleVioletRed2 rgb(238, 121, 159) #EE799F
PaleVioletRed1 PaleVioletRed1 rgb(255, 130, 171) #FF82AB
PaleVioletRed3 PaleVioletRed3 rgb(205, 104, 137) #CD6889
LavenderBlush LavenderBlush rgb(255, 240, 245) #FFF0F5
LavenderBlush1 LavenderBlush1 rgb(255, 240, 245) #FFF0F5
LavenderBlush3 LavenderBlush3 rgb(205, 193, 197) #CDC1C5
LavenderBlush2 LavenderBlush2 rgb(238, 224, 229) #EEE0E5
LavenderBlush4 LavenderBlush4 rgb(139, 131, 134) #8B8386
maroon maroon (X11 compliance) rgb(176, 48, 96) #B03060
HotPink3 HotPink3 rgb(205, 96, 144) #CD6090
VioletRed3 VioletRed3 rgb(205, 50, 120) #CD3278
VioletRed1 VioletRed1 rgb(255, 62, 150) #FF3E96
VioletRed2 VioletRed2 rgb(238, 58, 140) #EE3A8C
VioletRed4 VioletRed4 rgb(139, 34, 82) #8B2252
HotPink2 HotPink2 rgb(238, 106, 167) #EE6AA7
HotPink1 HotPink1 rgb(255, 110, 180) #FF6EB4
HotPink4 HotPink4 rgb(139, 58, 98) #8B3A62
HotPink HotPink rgb(255, 105, 180) #FF69B4
DeepPink DeepPink rgb(255, 20, 147) #FF1493
DeepPink1 DeepPink1 rgb(255, 20, 147) #FF1493
DeepPink2 DeepPink2 rgb(238, 18, 137) #EE1289
DeepPink3 DeepPink3 rgb(205, 16, 118) #CD1076
DeepPink4 DeepPink4 rgb(139, 10, 80) #8B0A50
maroon1 maroon1 rgb(255, 52, 179) #FF34B3
maroon2 maroon2 rgb(238, 48, 167) #EE30A7
maroon3 maroon3 rgb(205, 41, 144) #CD2990
maroon4 maroon4 rgb(139, 28, 98) #8B1C62
MediumVioletRed MediumVioletRed rgb(199, 21, 133) #C71585
VioletRed VioletRed rgb(208, 32, 144) #D02090
orchid2 orchid2 rgb(238, 122, 233) #EE7AE9
orchid orchid rgb(218, 112, 214) #DA70D6
orchid1 orchid1 rgb(255, 131, 250) #FF83FA
orchid3 orchid3 rgb(205, 105, 201) #CD69C9
orchid4 orchid4 rgb(139, 71, 137) #8B4789
thistle1 thistle1 rgb(255, 225, 255) #FFE1FF
thistle2 thistle2 rgb(238, 210, 238) #EED2EE
plum1 plum1 rgb(255, 187, 255) #FFBBFF
plum2 plum2 rgb(238, 174, 238) #EEAEEE
thistle thistle rgb(216, 191, 216) #D8BFD8
thistle3 thistle3 rgb(205, 181, 205) #CDB5CD
plum plum rgb(221, 160, 221) #DDA0DD
violet violet rgb(238, 130, 238) #EE82EE
plum3 plum3 rgb(205, 150, 205) #CD96CD
thistle4 thistle4 rgb(139, 123, 139) #8B7B8B
fuchsia fuchsia rgb(255, 0, 255) #FF00FF
magenta magenta rgb(255, 0, 255) #FF00FF
magenta1 magenta1 rgb(255, 0, 255) #FF00FF
plum4 plum4 rgb(139, 102, 139) #8B668B
magenta2 magenta2 rgb(238, 0, 238) #EE00EE
magenta3 magenta3 rgb(205, 0, 205) #CD00CD
DarkMagenta DarkMagenta rgb(139, 0, 139) #8B008B
magenta4 magenta4 rgb(139, 0, 139) #8B008B
purple purple (SVG compliance) rgb(128, 0, 128) #800080
MediumOrchid MediumOrchid rgb(186, 85, 211) #BA55D3
MediumOrchid1 MediumOrchid1 rgb(224, 102, 255) #E066FF
MediumOrchid2 MediumOrchid2 rgb(209, 95, 238) #D15FEE
MediumOrchid3 MediumOrchid3 rgb(180, 82, 205) #B452CD
MediumOrchid4 MediumOrchid4 rgb(122, 55, 139) #7A378B
DarkViolet DarkViolet rgb(148, 0, 211) #9400D3
DarkOrchid DarkOrchid rgb(153, 50, 204) #9932CC
DarkOrchid1 DarkOrchid1 rgb(191, 62, 255) #BF3EFF
DarkOrchid3 DarkOrchid3 rgb(154, 50, 205) #9A32CD
DarkOrchid2 DarkOrchid2 rgb(178, 58, 238) #B23AEE
DarkOrchid4 DarkOrchid4 rgb(104, 34, 139) #68228B
purple purple (X11 compliance) rgb(160, 32, 240) #A020F0
indigo indigo rgb( 75, 0, 130) #4B0082
BlueViolet BlueViolet rgb(138, 43, 226) #8A2BE2
purple2 purple2 rgb(145, 44, 238) #912CEE
purple3 purple3 rgb(125, 38, 205) #7D26CD
purple4 purple4 rgb( 85, 26, 139) #551A8B
purple1 purple1 rgb(155, 48, 255) #9B30FF
MediumPurple MediumPurple rgb(147, 112, 219) #9370DB
MediumPurple1 MediumPurple1 rgb(171, 130, 255) #AB82FF
MediumPurple2 MediumPurple2 rgb(159, 121, 238) #9F79EE
MediumPurple3 MediumPurple3 rgb(137, 104, 205) #8968CD
MediumPurple4 MediumPurple4 rgb( 93, 71, 139) #5D478B
DarkSlateBlue DarkSlateBlue rgb( 72, 61, 139) #483D8B
LightSlateBlue LightSlateBlue rgb(132, 112, 255) #8470FF
MediumSlateBlue MediumSlateBlue rgb(123, 104, 238) #7B68EE
SlateBlue SlateBlue rgb(106, 90, 205) #6A5ACD
SlateBlue1 SlateBlue1 rgb(131, 111, 255) #836FFF
SlateBlue2 SlateBlue2 rgb(122, 103, 238) #7A67EE
SlateBlue3 SlateBlue3 rgb(105, 89, 205) #6959CD
SlateBlue4 SlateBlue4 rgb( 71, 60, 139) #473C8B
GhostWhite GhostWhite rgb(248, 248, 255) #F8F8FF
lavender lavender rgb(230, 230, 250) #E6E6FA
blue blue rgb( 0, 0, 255) #0000FF
blue1 blue1 rgb( 0, 0, 255) #0000FF
blue2 blue2 rgb( 0, 0, 238) #0000EE
blue3 blue3 rgb( 0, 0, 205) #0000CD
MediumBlue MediumBlue rgb( 0, 0, 205) #0000CD
blue4 blue4 rgb( 0, 0, 139) #00008B
DarkBlue DarkBlue rgb( 0, 0, 139) #00008B
MidnightBlue MidnightBlue rgb( 25, 25, 112) #191970
navy navy rgb( 0, 0, 128) #000080
NavyBlue NavyBlue rgb( 0, 0, 128) #000080
RoyalBlue RoyalBlue rgb( 65, 105, 225) #4169E1
RoyalBlue1 RoyalBlue1 rgb( 72, 118, 255) #4876FF
RoyalBlue2 RoyalBlue2 rgb( 67, 110, 238) #436EEE
RoyalBlue3 RoyalBlue3 rgb( 58, 95, 205) #3A5FCD
RoyalBlue4 RoyalBlue4 rgb( 39, 64, 139) #27408B
CornflowerBlue CornflowerBlue rgb(100, 149, 237) #6495ED
LightSteelBlue LightSteelBlue rgb(176, 196, 222) #B0C4DE
LightSteelBlue1 LightSteelBlue1 rgb(202, 225, 255) #CAE1FF
LightSteelBlue2 LightSteelBlue2 rgb(188, 210, 238) #BCD2EE
LightSteelBlue3 LightSteelBlue3 rgb(162, 181, 205) #A2B5CD
LightSteelBlue4 LightSteelBlue4 rgb(110, 123, 139) #6E7B8B
SlateGray4 SlateGray4 rgb(108, 123, 139) #6C7B8B
SlateGray1 SlateGray1 rgb(198, 226, 255) #C6E2FF
SlateGray2 SlateGray2 rgb(185, 211, 238) #B9D3EE
SlateGray3 SlateGray3 rgb(159, 182, 205) #9FB6CD
LightSlateGray LightSlateGray rgb(119, 136, 153) #778899
LightSlateGrey LightSlateGrey rgb(119, 136, 153) #778899
SlateGray SlateGray rgb(112, 128, 144) #708090
SlateGrey SlateGrey rgb(112, 128, 144) #708090
DodgerBlue DodgerBlue rgb( 30, 144, 255) #1E90FF
DodgerBlue1 DodgerBlue1 rgb( 30, 144, 255) #1E90FF
DodgerBlue2 DodgerBlue2 rgb( 28, 134, 238) #1C86EE
DodgerBlue4 DodgerBlue4 rgb( 16, 78, 139) #104E8B
DodgerBlue3 DodgerBlue3 rgb( 24, 116, 205) #1874CD
AliceBlue AliceBlue rgb(240, 248, 255) #F0F8FF
SteelBlue4 SteelBlue4 rgb( 54, 100, 139) #36648B
SteelBlue SteelBlue rgb( 70, 130, 180) #4682B4
SteelBlue1 SteelBlue1 rgb( 99, 184, 255) #63B8FF
SteelBlue2 SteelBlue2 rgb( 92, 172, 238) #5CACEE
SteelBlue3 SteelBlue3 rgb( 79, 148, 205) #4F94CD
SkyBlue4 SkyBlue4 rgb( 74, 112, 139) #4A708B
SkyBlue1 SkyBlue1 rgb(135, 206, 255) #87CEFF
SkyBlue2 SkyBlue2 rgb(126, 192, 238) #7EC0EE
SkyBlue3 SkyBlue3 rgb(108, 166, 205) #6CA6CD
LightSkyBlue LightSkyBlue rgb(135, 206, 250) #87CEFA
LightSkyBlue4 LightSkyBlue4 rgb( 96, 123, 139) #607B8B
LightSkyBlue1 LightSkyBlue1 rgb(176, 226, 255) #B0E2FF
LightSkyBlue2 LightSkyBlue2 rgb(164, 211, 238) #A4D3EE
LightSkyBlue3 LightSkyBlue3 rgb(141, 182, 205) #8DB6CD
SkyBlue SkyBlue rgb(135, 206, 235) #87CEEB
LightBlue3 LightBlue3 rgb(154, 192, 205) #9AC0CD
DeepSkyBlue DeepSkyBlue rgb( 0, 191, 255) #00BFFF
DeepSkyBlue1 DeepSkyBlue1 rgb( 0, 191, 255) #00BFFF
DeepSkyBlue2 DeepSkyBlue2 rgb( 0, 178, 238) #00B2EE
DeepSkyBlue4 DeepSkyBlue4 rgb( 0, 104, 139) #00688B
DeepSkyBlue3 DeepSkyBlue3 rgb( 0, 154, 205) #009ACD
LightBlue1 LightBlue1 rgb(191, 239, 255) #BFEFFF
LightBlue2 LightBlue2 rgb(178, 223, 238) #B2DFEE
LightBlue LightBlue rgb(173, 216, 230) #ADD8E6
LightBlue4 LightBlue4 rgb(104, 131, 139) #68838B
PowderBlue PowderBlue rgb(176, 224, 230) #B0E0E6
CadetBlue1 CadetBlue1 rgb(152, 245, 255) #98F5FF
CadetBlue2 CadetBlue2 rgb(142, 229, 238) #8EE5EE
CadetBlue3 CadetBlue3 rgb(122, 197, 205) #7AC5CD
CadetBlue4 CadetBlue4 rgb( 83, 134, 139) #53868B
turquoise1 turquoise1 rgb( 0, 245, 255) #00F5FF
turquoise2 turquoise2 rgb( 0, 229, 238) #00E5EE
turquoise3 turquoise3 rgb( 0, 197, 205) #00C5CD
turquoise4 turquoise4 rgb( 0, 134, 139) #00868B
cadet blue cadet blue rgb( 95, 158, 160) #5F9EA0
CadetBlue CadetBlue rgb( 95, 158, 160) #5F9EA0
DarkTurquoise DarkTurquoise rgb( 0, 206, 209) #00CED1
azure azure rgb(240, 255, 255) #F0FFFF
azure1 azure1 rgb(240, 255, 255) #F0FFFF
LightCyan LightCyan rgb(224, 255, 255) #E0FFFF
LightCyan1 LightCyan1 rgb(224, 255, 255) #E0FFFF
azure2 azure2 rgb(224, 238, 238) #E0EEEE
LightCyan2 LightCyan2 rgb(209, 238, 238) #D1EEEE
PaleTurquoise1 PaleTurquoise1 rgb(187, 255, 255) #BBFFFF
PaleTurquoise PaleTurquoise rgb(175, 238, 238) #AFEEEE
PaleTurquoise2 PaleTurquoise2 rgb(174, 238, 238) #AEEEEE
DarkSlateGray1 DarkSlateGray1 rgb(151, 255, 255) #97FFFF
azure3 azure3 rgb(193, 205, 205) #C1CDCD
LightCyan3 LightCyan3 rgb(180, 205, 205) #B4CDCD
DarkSlateGray2 DarkSlateGray2 rgb(141, 238, 238) #8DEEEE
PaleTurquoise3 PaleTurquoise3 rgb(150, 205, 205) #96CDCD
DarkSlateGray3 DarkSlateGray3 rgb(121, 205, 205) #79CDCD
azure4 azure4 rgb(131, 139, 139) #838B8B
LightCyan4 LightCyan4 rgb(122, 139, 139) #7A8B8B
aqua aqua rgb( 0, 255, 255) #00FFFF
cyan cyan rgb( 0, 255, 255) #00FFFF
cyan1 cyan1 rgb( 0, 255, 255) #00FFFF
PaleTurquoise4 PaleTurquoise4 rgb(102, 139, 139) #668B8B
cyan2 cyan2 rgb( 0, 238, 238) #00EEEE
DarkSlateGray4 DarkSlateGray4 rgb( 82, 139, 139) #528B8B
cyan3 cyan3 rgb( 0, 205, 205) #00CDCD
cyan4 cyan4 rgb( 0, 139, 139) #008B8B
DarkCyan DarkCyan rgb( 0, 139, 139) #008B8B
teal teal rgb( 0, 128, 128) #008080
DarkSlateGray DarkSlateGray rgb( 47, 79, 79) #2F4F4F
DarkSlateGrey DarkSlateGrey rgb( 47, 79, 79) #2F4F4F
MediumTurquoise MediumTurquoise rgb( 72, 209, 204) #48D1CC
LightSeaGreen LightSeaGreen rgb( 32, 178, 170) #20B2AA
turquoise turquoise rgb( 64, 224, 208) #40E0D0
aquamarine4 aquamarine4 rgb( 69, 139, 116) #458B74
aquamarine aquamarine rgb(127, 255, 212) #7FFFD4
aquamarine1 aquamarine1 rgb(127, 255, 212) #7FFFD4
aquamarine2 aquamarine2 rgb(118, 238, 198) #76EEC6
aquamarine3 aquamarine3 rgb(102, 205, 170) #66CDAA
MediumAquamarine MediumAquamarine rgb(102, 205, 170) #66CDAA
MediumSpringGreen MediumSpringGreen rgb( 0, 250, 154) #00FA9A
MintCream MintCream rgb(245, 255, 250) #F5FFFA
SpringGreen SpringGreen rgb( 0, 255, 127) #00FF7F
SpringGreen1 SpringGreen1 rgb( 0, 255, 127) #00FF7F
SpringGreen2 SpringGreen2 rgb( 0, 238, 118) #00EE76
SpringGreen3 SpringGreen3 rgb( 0, 205, 102) #00CD66
SpringGreen4 SpringGreen4 rgb( 0, 139, 69) #008B45
MediumSeaGreen MediumSeaGreen rgb( 60, 179, 113) #3CB371
SeaGreen SeaGreen rgb( 46, 139, 87) #2E8B57
SeaGreen3 SeaGreen3 rgb( 67, 205, 128) #43CD80
SeaGreen1 SeaGreen1 rgb( 84, 255, 159) #54FF9F
SeaGreen4 SeaGreen4 rgb( 46, 139, 87) #2E8B57
SeaGreen2 SeaGreen2 rgb( 78, 238, 148) #4EEE94
MediumForestGreen MediumForestGreen rgb( 50, 129, 75) #32814B
honeydew honeydew rgb(240, 255, 240) #F0FFF0
honeydew1 honeydew1 rgb(240, 255, 240) #F0FFF0
honeydew2 honeydew2 rgb(224, 238, 224) #E0EEE0
DarkSeaGreen1 DarkSeaGreen1 rgb(193, 255, 193) #C1FFC1
DarkSeaGreen2 DarkSeaGreen2 rgb(180, 238, 180) #B4EEB4
PaleGreen1 PaleGreen1 rgb(154, 255, 154) #9AFF9A
PaleGreen PaleGreen rgb(152, 251, 152) #98FB98
honeydew3 honeydew3 rgb(193, 205, 193) #C1CDC1
LightGreen LightGreen rgb(144, 238, 144) #90EE90
PaleGreen2 PaleGreen2 rgb(144, 238, 144) #90EE90
DarkSeaGreen3 DarkSeaGreen3 rgb(155, 205, 155) #9BCD9B
DarkSeaGreen DarkSeaGreen rgb(143, 188, 143) #8FBC8F
PaleGreen3 PaleGreen3 rgb(124, 205, 124) #7CCD7C
honeydew4 honeydew4 rgb(131, 139, 131) #838B83
green1 green1 rgb( 0, 255, 0) #00FF00
lime lime rgb( 0, 255, 0) #00FF00
LimeGreen LimeGreen rgb( 50, 205, 50) #32CD32
DarkSeaGreen4 DarkSeaGreen4 rgb(105, 139, 105) #698B69
green2 green2 rgb( 0, 238, 0) #00EE00
PaleGreen4 PaleGreen4 rgb( 84, 139, 84) #548B54
green3 green3 rgb( 0, 205, 0) #00CD00
ForestGreen ForestGreen rgb( 34, 139, 34) #228B22
green4 green4 rgb( 0, 139, 0) #008B00
green green rgb( 0, 128, 0) #008000
DarkGreen DarkGreen rgb( 0, 100, 0) #006400
LawnGreen LawnGreen rgb(124, 252, 0) #7CFC00
chartreuse chartreuse rgb(127, 255, 0) #7FFF00
chartreuse1 chartreuse1 rgb(127, 255, 0) #7FFF00
chartreuse2 chartreuse2 rgb(118, 238, 0) #76EE00
chartreuse3 chartreuse3 rgb(102, 205, 0) #66CD00
chartreuse4 chartreuse4 rgb( 69, 139, 0) #458B00
GreenYellow GreenYellow rgb(173, 255, 47) #ADFF2F
DarkOliveGreen3 DarkOliveGreen3 rgb(162, 205, 90) #A2CD5A
DarkOliveGreen1 DarkOliveGreen1 rgb(202, 255, 112) #CAFF70
DarkOliveGreen2 DarkOliveGreen2 rgb(188, 238, 104) #BCEE68
DarkOliveGreen4 DarkOliveGreen4 rgb(110, 139, 61) #6E8B3D
DarkOliveGreen DarkOliveGreen rgb( 85, 107, 47) #556B2F
OliveDrab OliveDrab rgb(107, 142, 35) #6B8E23
OliveDrab1 OliveDrab1 rgb(192, 255, 62) #C0FF3E
OliveDrab2 OliveDrab2 rgb(179, 238, 58) #B3EE3A
OliveDrab3 OliveDrab3 rgb(154, 205, 50) #9ACD32
YellowGreen YellowGreen rgb(154, 205, 50) #9ACD32
OliveDrab4 OliveDrab4 rgb(105, 139, 34) #698B22
ivory ivory rgb(255, 255, 240) #FFFFF0
ivory1 ivory1 rgb(255, 255, 240) #FFFFF0
LightYellow LightYellow rgb(255, 255, 224) #FFFFE0
LightYellow1 LightYellow1 rgb(255, 255, 224) #FFFFE0
beige beige rgb(245, 245, 220) #F5F5DC
ivory2 ivory2 rgb(238, 238, 224) #EEEEE0
LightGoldenrodYellow LightGoldenrodYellow rgb(250, 250, 210) #FAFAD2
LightYellow2 LightYellow2 rgb(238, 238, 209) #EEEED1
ivory3 ivory3 rgb(205, 205, 193) #CDCDC1
LightYellow3 LightYellow3 rgb(205, 205, 180) #CDCDB4
ivory4 ivory4 rgb(139, 139, 131) #8B8B83
LightYellow4 LightYellow4 rgb(139, 139, 122) #8B8B7A
yellow yellow rgb(255, 255, 0) #FFFF00
yellow1 yellow1 rgb(255, 255, 0) #FFFF00
yellow2 yellow2 rgb(238, 238, 0) #EEEE00
yellow3 yellow3 rgb(205, 205, 0) #CDCD00
yellow4 yellow4 rgb(139, 139, 0) #8B8B00
olive olive rgb(128, 128, 0) #808000
DarkKhaki DarkKhaki rgb(189, 183, 107) #BDB76B
khaki2 khaki2 rgb(238, 230, 133) #EEE685
LemonChiffon4 LemonChiffon4 rgb(139, 137, 112) #8B8970
khaki1 khaki1 rgb(255, 246, 143) #FFF68F
khaki3 khaki3 rgb(205, 198, 115) #CDC673
khaki4 khaki4 rgb(139, 134, 78) #8B864E
PaleGoldenrod PaleGoldenrod rgb(238, 232, 170) #EEE8AA
LemonChiffon LemonChiffon rgb(255, 250, 205) #FFFACD
LemonChiffon1 LemonChiffon1 rgb(255, 250, 205) #FFFACD
khaki khaki rgb(240, 230, 140) #F0E68C
LemonChiffon3 LemonChiffon3 rgb(205, 201, 165) #CDC9A5
LemonChiffon2 LemonChiffon2 rgb(238, 233, 191) #EEE9BF
MediumGoldenRod MediumGoldenRod rgb(209, 193, 102) #D1C166
cornsilk4 cornsilk4 rgb(139, 136, 120) #8B8878
gold gold rgb(255, 215, 0) #FFD700
gold1 gold1 rgb(255, 215, 0) #FFD700
gold2 gold2 rgb(238, 201, 0) #EEC900
gold3 gold3 rgb(205, 173, 0) #CDAD00
gold4 gold4 rgb(139, 117, 0) #8B7500
LightGoldenrod LightGoldenrod rgb(238, 221, 130) #EEDD82
LightGoldenrod4 LightGoldenrod4 rgb(139, 129, 76) #8B814C
LightGoldenrod1 LightGoldenrod1 rgb(255, 236, 139) #FFEC8B
LightGoldenrod3 LightGoldenrod3 rgb(205, 190, 112) #CDBE70
LightGoldenrod2 LightGoldenrod2 rgb(238, 220, 130) #EEDC82
cornsilk3 cornsilk3 rgb(205, 200, 177) #CDC8B1
cornsilk2 cornsilk2 rgb(238, 232, 205) #EEE8CD
cornsilk cornsilk rgb(255, 248, 220) #FFF8DC
cornsilk1 cornsilk1 rgb(255, 248, 220) #FFF8DC
goldenrod goldenrod rgb(218, 165, 32) #DAA520
goldenrod1 goldenrod1 rgb(255, 193, 37) #FFC125
goldenrod2 goldenrod2 rgb(238, 180, 34) #EEB422
goldenrod3 goldenrod3 rgb(205, 155, 29) #CD9B1D
goldenrod4 goldenrod4 rgb(139, 105, 20) #8B6914
DarkGoldenrod DarkGoldenrod rgb(184, 134, 11) #B8860B
DarkGoldenrod1 DarkGoldenrod1 rgb(255, 185, 15) #FFB90F
DarkGoldenrod2 DarkGoldenrod2 rgb(238, 173, 14) #EEAD0E
DarkGoldenrod3 DarkGoldenrod3 rgb(205, 149, 12) #CD950C
DarkGoldenrod4 DarkGoldenrod4 rgb(139, 101, 8) #8B6508
FloralWhite FloralWhite rgb(255, 250, 240) #FFFAF0
wheat2 wheat2 rgb(238, 216, 174) #EED8AE
OldLace OldLace rgb(253, 245, 230) #FDF5E6
wheat wheat rgb(245, 222, 179) #F5DEB3
wheat1 wheat1 rgb(255, 231, 186) #FFE7BA
wheat3 wheat3 rgb(205, 186, 150) #CDBA96
orange orange rgb(255, 165, 0) #FFA500
orange1 orange1 rgb(255, 165, 0) #FFA500
orange2 orange2 rgb(238, 154, 0) #EE9A00
orange3 orange3 rgb(205, 133, 0) #CD8500
orange4 orange4 rgb(139, 90, 0) #8B5A00
wheat4 wheat4 rgb(139, 126, 102) #8B7E66
moccasin moccasin rgb(255, 228, 181) #FFE4B5
PapayaWhip PapayaWhip rgb(255, 239, 213) #FFEFD5
NavajoWhite3 NavajoWhite3 rgb(205, 179, 139) #CDB38B
BlanchedAlmond BlanchedAlmond rgb(255, 235, 205) #FFEBCD
NavajoWhite NavajoWhite rgb(255, 222, 173) #FFDEAD
NavajoWhite1 NavajoWhite1 rgb(255, 222, 173) #FFDEAD
NavajoWhite2 NavajoWhite2 rgb(238, 207, 161) #EECFA1
NavajoWhite4 NavajoWhite4 rgb(139, 121, 94) #8B795E
AntiqueWhite4 AntiqueWhite4 rgb(139, 131, 120) #8B8378
AntiqueWhite AntiqueWhite rgb(250, 235, 215) #FAEBD7
tan tan rgb(210, 180, 140) #D2B48C
bisque4 bisque4 rgb(139, 125, 107) #8B7D6B
burlywood burlywood rgb(222, 184, 135) #DEB887
AntiqueWhite2 AntiqueWhite2 rgb(238, 223, 204) #EEDFCC
burlywood1 burlywood1 rgb(255, 211, 155) #FFD39B
burlywood3 burlywood3 rgb(205, 170, 125) #CDAA7D
burlywood2 burlywood2 rgb(238, 197, 145) #EEC591
AntiqueWhite1 AntiqueWhite1 rgb(255, 239, 219) #FFEFDB
burlywood4 burlywood4 rgb(139, 115, 85) #8B7355
AntiqueWhite3 AntiqueWhite3 rgb(205, 192, 176) #CDC0B0
DarkOrange DarkOrange rgb(255, 140, 0) #FF8C00
bisque2 bisque2 rgb(238, 213, 183) #EED5B7
bisque bisque rgb(255, 228, 196) #FFE4C4
bisque1 bisque1 rgb(255, 228, 196) #FFE4C4
bisque3 bisque3 rgb(205, 183, 158) #CDB79E
DarkOrange1 DarkOrange1 rgb(255, 127, 0) #FF7F00
linen linen rgb(250, 240, 230) #FAF0E6
DarkOrange2 DarkOrange2 rgb(238, 118, 0) #EE7600
DarkOrange3 DarkOrange3 rgb(205, 102, 0) #CD6600
DarkOrange4 DarkOrange4 rgb(139, 69, 0) #8B4500
peru peru rgb(205, 133, 63) #CD853F
tan1 tan1 rgb(255, 165, 79) #FFA54F
tan2 tan2 rgb(238, 154, 73) #EE9A49
tan3 tan3 rgb(205, 133, 63) #CD853F
tan4 tan4 rgb(139, 90, 43) #8B5A2B
PeachPuff PeachPuff rgb(255, 218, 185) #FFDAB9
PeachPuff1 PeachPuff1 rgb(255, 218, 185) #FFDAB9
PeachPuff4 PeachPuff4 rgb(139, 119, 101) #8B7765
PeachPuff2 PeachPuff2 rgb(238, 203, 173) #EECBAD
PeachPuff3 PeachPuff3 rgb(205, 175, 149) #CDAF95
SandyBrown SandyBrown rgb(244, 164, 96) #F4A460
seashell4 seashell4 rgb(139, 134, 130) #8B8682
seashell2 seashell2 rgb(238, 229, 222) #EEE5DE
seashell3 seashell3 rgb(205, 197, 191) #CDC5BF
chocolate chocolate rgb(210, 105, 30) #D2691E
chocolate1 chocolate1 rgb(255, 127, 36) #FF7F24
chocolate2 chocolate2 rgb(238, 118, 33) #EE7621
chocolate3 chocolate3 rgb(205, 102, 29) #CD661D
chocolate4 chocolate4 rgb(139, 69, 19) #8B4513
SaddleBrown SaddleBrown rgb(139, 69, 19) #8B4513
seashell seashell rgb(255, 245, 238) #FFF5EE
seashell1 seashell1 rgb(255, 245, 238) #FFF5EE
sienna4 sienna4 rgb(139, 71, 38) #8B4726
sienna sienna rgb(160, 82, 45) #A0522D
sienna1 sienna1 rgb(255, 130, 71) #FF8247
sienna2 sienna2 rgb(238, 121, 66) #EE7942
sienna3 sienna3 rgb(205, 104, 57) #CD6839
LightSalmon3 LightSalmon3 rgb(205, 129, 98) #CD8162
LightSalmon LightSalmon rgb(255, 160, 122) #FFA07A
LightSalmon1 LightSalmon1 rgb(255, 160, 122) #FFA07A
LightSalmon4 LightSalmon4 rgb(139, 87, 66) #8B5742
LightSalmon2 LightSalmon2 rgb(238, 149, 114) #EE9572
coral coral rgb(255, 127, 80) #FF7F50
OrangeRed OrangeRed rgb(255, 69, 0) #FF4500
OrangeRed1 OrangeRed1 rgb(255, 69, 0) #FF4500
OrangeRed2 OrangeRed2 rgb(238, 64, 0) #EE4000
OrangeRed3 OrangeRed3 rgb(205, 55, 0) #CD3700
OrangeRed4 OrangeRed4 rgb(139, 37, 0) #8B2500
DarkSalmon DarkSalmon rgb(233, 150, 122) #E9967A
salmon1 salmon1 rgb(255, 140, 105) #FF8C69
salmon2 salmon2 rgb(238, 130, 98) #EE8262
salmon3 salmon3 rgb(205, 112, 84) #CD7054
salmon4 salmon4 rgb(139, 76, 57) #8B4C39
coral1 coral1 rgb(255, 114, 86) #FF7256
coral2 coral2 rgb(238, 106, 80) #EE6A50
coral3 coral3 rgb(205, 91, 69) #CD5B45
coral4 coral4 rgb(139, 62, 47) #8B3E2F
tomato4 tomato4 rgb(139, 54, 38) #8B3626
tomato tomato rgb(255, 99, 71) #FF6347
tomato1 tomato1 rgb(255, 99, 71) #FF6347
tomato2 tomato2 rgb(238, 92, 66) #EE5C42
tomato3 tomato3 rgb(205, 79, 57) #CD4F39
MistyRose4 MistyRose4 rgb(139, 125, 123) #8B7D7B
MistyRose2 MistyRose2 rgb(238, 213, 210) #EED5D2
MistyRose MistyRose rgb(255, 228, 225) #FFE4E1
MistyRose1 MistyRose1 rgb(255, 228, 225) #FFE4E1
salmon salmon rgb(250, 128, 114) #FA8072
MistyRose3 MistyRose3 rgb(205, 183, 181) #CDB7B5
white white rgb(255, 255, 255) #FFFFFF
gray100 gray100 rgb(255, 255, 255) #FFFFFF
grey100 grey100 rgb(255, 255, 255) #FFFFFF
grey100 grey100 rgb(255, 255, 255) #FFFFFF
gray99 gray99 rgb(252, 252, 252) #FCFCFC
grey99 grey99 rgb(252, 252, 252) #FCFCFC
gray98 gray98 rgb(250, 250, 250) #FAFAFA
grey98 grey98 rgb(250, 250, 250) #FAFAFA
gray97 gray97 rgb(247, 247, 247) #F7F7F7
grey97 grey97 rgb(247, 247, 247) #F7F7F7
gray96 gray96 rgb(245, 245, 245) #F5F5F5
grey96 grey96 rgb(245, 245, 245) #F5F5F5
WhiteSmoke WhiteSmoke rgb(245, 245, 245) #F5F5F5
gray95 gray95 rgb(242, 242, 242) #F2F2F2
grey95 grey95 rgb(242, 242, 242) #F2F2F2
gray94 gray94 rgb(240, 240, 240) #F0F0F0
grey94 grey94 rgb(240, 240, 240) #F0F0F0
gray93 gray93 rgb(237, 237, 237) #EDEDED
grey93 grey93 rgb(237, 237, 237) #EDEDED
gray92 gray92 rgb(235, 235, 235) #EBEBEB
grey92 grey92 rgb(235, 235, 235) #EBEBEB
gray91 gray91 rgb(232, 232, 232) #E8E8E8
grey91 grey91 rgb(232, 232, 232) #E8E8E8
gray90 gray90 rgb(229, 229, 229) #E5E5E5
grey90 grey90 rgb(229, 229, 229) #E5E5E5
gray89 gray89 rgb(227, 227, 227) #E3E3E3
grey89 grey89 rgb(227, 227, 227) #E3E3E3
gray88 gray88 rgb(224, 224, 224) #E0E0E0
grey88 grey88 rgb(224, 224, 224) #E0E0E0
gray87 gray87 rgb(222, 222, 222) #DEDEDE
grey87 grey87 rgb(222, 222, 222) #DEDEDE
gainsboro gainsboro rgb(220, 220, 220) #DCDCDC
gray86 gray86 rgb(219, 219, 219) #DBDBDB
grey86 grey86 rgb(219, 219, 219) #DBDBDB
gray85 gray85 rgb(217, 217, 217) #D9D9D9
grey85 grey85 rgb(217, 217, 217) #D9D9D9
gray84 gray84 rgb(214, 214, 214) #D6D6D6
grey84 grey84 rgb(214, 214, 214) #D6D6D6
gray83 gray83 rgb(212, 212, 212) #D4D4D4
grey83 grey83 rgb(212, 212, 212) #D4D4D4
LightGray LightGray rgb(211, 211, 211) #D3D3D3
LightGrey LightGrey rgb(211, 211, 211) #D3D3D3
gray82 gray82 rgb(209, 209, 209) #D1D1D1
grey82 grey82 rgb(209, 209, 209) #D1D1D1
gray81 gray81 rgb(207, 207, 207) #CFCFCF
grey81 grey81 rgb(207, 207, 207) #CFCFCF
gray80 gray80 rgb(204, 204, 204) #CCCCCC
grey80 grey80 rgb(204, 204, 204) #CCCCCC
gray79 gray79 rgb(201, 201, 201) #C9C9C9
grey79 grey79 rgb(201, 201, 201) #C9C9C9
gray78 gray78 rgb(199, 199, 199) #C7C7C7
grey78 grey78 rgb(199, 199, 199) #C7C7C7
gray77 gray77 rgb(196, 196, 196) #C4C4C4
grey77 grey77 rgb(196, 196, 196) #C4C4C4
gray76 gray76 rgb(194, 194, 194) #C2C2C2
grey76 grey76 rgb(194, 194, 194) #C2C2C2
silver silver rgb(192, 192, 192) #C0C0C0
gray75 gray75 rgb(191, 191, 191) #BFBFBF
grey75 grey75 rgb(191, 191, 191) #BFBFBF
gray74 gray74 rgb(189, 189, 189) #BDBDBD
grey74 grey74 rgb(189, 189, 189) #BDBDBD
gray73 gray73 rgb(186, 186, 186) #BABABA
grey73 grey73 rgb(186, 186, 186) #BABABA
gray72 gray72 rgb(184, 184, 184) #B8B8B8
grey72 grey72 rgb(184, 184, 184) #B8B8B8
gray71 gray71 rgb(181, 181, 181) #B5B5B5
grey71 grey71 rgb(181, 181, 181) #B5B5B5
gray70 gray70 rgb(179, 179, 179) #B3B3B3
grey70 grey70 rgb(179, 179, 179) #B3B3B3
gray69 gray69 rgb(176, 176, 176) #B0B0B0
grey69 grey69 rgb(176, 176, 176) #B0B0B0
gray68 gray68 rgb(173, 173, 173) #ADADAD
grey68 grey68 rgb(173, 173, 173) #ADADAD
gray67 gray67 rgb(171, 171, 171) #ABABAB
grey67 grey67 rgb(171, 171, 171) #ABABAB
DarkGray DarkGray rgb(169, 169, 169) #A9A9A9
DarkGrey DarkGrey rgb(169, 169, 169) #A9A9A9
gray66 gray66 rgb(168, 168, 168) #A8A8A8
grey66 grey66 rgb(168, 168, 168) #A8A8A8
gray65 gray65 rgb(166, 166, 166) #A6A6A6
grey65 grey65 rgb(166, 166, 166) #A6A6A6
gray64 gray64 rgb(163, 163, 163) #A3A3A3
grey64 grey64 rgb(163, 163, 163) #A3A3A3
gray63 gray63 rgb(161, 161, 161) #A1A1A1
grey63 grey63 rgb(161, 161, 161) #A1A1A1
gray62 gray62 rgb(158, 158, 158) #9E9E9E
grey62 grey62 rgb(158, 158, 158) #9E9E9E
gray61 gray61 rgb(156, 156, 156) #9C9C9C
grey61 grey61 rgb(156, 156, 156) #9C9C9C
gray60 gray60 rgb(153, 153, 153) #999999
grey60 grey60 rgb(153, 153, 153) #999999
gray59 gray59 rgb(150, 150, 150) #969696
grey59 grey59 rgb(150, 150, 150) #969696
gray58 gray58 rgb(148, 148, 148) #949494
grey58 grey58 rgb(148, 148, 148) #949494
gray57 gray57 rgb(145, 145, 145) #919191
grey57 grey57 rgb(145, 145, 145) #919191
gray56 gray56 rgb(143, 143, 143) #8F8F8F
grey56 grey56 rgb(143, 143, 143) #8F8F8F
gray55 gray55 rgb(140, 140, 140) #8C8C8C
grey55 grey55 rgb(140, 140, 140) #8C8C8C
gray54 gray54 rgb(138, 138, 138) #8A8A8A
grey54 grey54 rgb(138, 138, 138) #8A8A8A
gray53 gray53 rgb(135, 135, 135) #878787
grey53 grey53 rgb(135, 135, 135) #878787
gray52 gray52 rgb(133, 133, 133) #858585
grey52 grey52 rgb(133, 133, 133) #858585
gray51 gray51 rgb(130, 130, 130) #828282
grey51 grey51 rgb(130, 130, 130) #828282
fractal fractal rgb(128, 128, 128) #808080
gray50 gray50 rgb(127, 127, 127) #7F7F7F
grey50 grey50 rgb(127, 127, 127) #7F7F7F
gray gray rgb(126, 126, 126) #7E7E7E
gray49 gray49 rgb(125, 125, 125) #7D7D7D
grey49 grey49 rgb(125, 125, 125) #7D7D7D
gray48 gray48 rgb(122, 122, 122) #7A7A7A
grey48 grey48 rgb(122, 122, 122) #7A7A7A
gray47 gray47 rgb(120, 120, 120) #787878
grey47 grey47 rgb(120, 120, 120) #787878
gray46 gray46 rgb(117, 117, 117) #757575
grey46 grey46 rgb(117, 117, 117) #757575
gray45 gray45 rgb(115, 115, 115) #737373
grey45 grey45 rgb(115, 115, 115) #737373
gray44 gray44 rgb(112, 112, 112) #707070
grey44 grey44 rgb(112, 112, 112) #707070
gray43 gray43 rgb(110, 110, 110) #6E6E6E
grey43 grey43 rgb(110, 110, 110) #6E6E6E
gray42 gray42 rgb(107, 107, 107) #6B6B6B
grey42 grey42 rgb(107, 107, 107) #6B6B6B
DimGray DimGray rgb(105, 105, 105) #696969
DimGrey DimGrey rgb(105, 105, 105) #696969
gray41 gray41 rgb(105, 105, 105) #696969
grey41 grey41 rgb(105, 105, 105) #696969
gray40 gray40 rgb(102, 102, 102) #666666
grey40 grey40 rgb(102, 102, 102) #666666
gray39 gray39 rgb( 99, 99, 99) #636363
grey39 grey39 rgb( 99, 99, 99) #636363
gray38 gray38 rgb( 97, 97, 97) #616161
grey38 grey38 rgb( 97, 97, 97) #616161
gray37 gray37 rgb( 94, 94, 94) #5E5E5E
grey37 grey37 rgb( 94, 94, 94) #5E5E5E
gray36 gray36 rgb( 92, 92, 92) #5C5C5C
grey36 grey36 rgb( 92, 92, 92) #5C5C5C
gray35 gray35 rgb( 89, 89, 89) #595959
grey35 grey35 rgb( 89, 89, 89) #595959
gray34 gray34 rgb( 87, 87, 87) #575757
grey34 grey34 rgb( 87, 87, 87) #575757
gray33 gray33 rgb( 84, 84, 84) #545454
grey33 grey33 rgb( 84, 84, 84) #545454
gray32 gray32 rgb( 82, 82, 82) #525252
grey32 grey32 rgb( 82, 82, 82) #525252
gray31 gray31 rgb( 79, 79, 79) #4F4F4F
grey31 grey31 rgb( 79, 79, 79) #4F4F4F
gray30 gray30 rgb( 77, 77, 77) #4D4D4D
grey30 grey30 rgb( 77, 77, 77) #4D4D4D
gray29 gray29 rgb( 74, 74, 74) #4A4A4A
grey29 grey29 rgb( 74, 74, 74) #4A4A4A
gray28 gray28 rgb( 71, 71, 71) #474747
grey28 grey28 rgb( 71, 71, 71) #474747
gray27 gray27 rgb( 69, 69, 69) #454545
grey27 grey27 rgb( 69, 69, 69) #454545
gray26 gray26 rgb( 66, 66, 66) #424242
grey26 grey26 rgb( 66, 66, 66) #424242
gray25 gray25 rgb( 64, 64, 64) #404040
grey25 grey25 rgb( 64, 64, 64) #404040
gray24 gray24 rgb( 61, 61, 61) #3D3D3D
grey24 grey24 rgb( 61, 61, 61) #3D3D3D
gray23 gray23 rgb( 59, 59, 59) #3B3B3B
grey23 grey23 rgb( 59, 59, 59) #3B3B3B
gray22 gray22 rgb( 56, 56, 56) #383838
grey22 grey22 rgb( 56, 56, 56) #383838
gray21 gray21 rgb( 54, 54, 54) #363636
grey21 grey21 rgb( 54, 54, 54) #363636
gray20 gray20 rgb( 51, 51, 51) #333333
grey20 grey20 rgb( 51, 51, 51) #333333
gray19 gray19 rgb( 48, 48, 48) #303030
grey19 grey19 rgb( 48, 48, 48) #303030
gray18 gray18 rgb( 46, 46, 46) #2E2E2E
grey18 grey18 rgb( 46, 46, 46) #2E2E2E
gray17 gray17 rgb( 43, 43, 43) #2B2B2B
grey17 grey17 rgb( 43, 43, 43) #2B2B2B
gray16 gray16 rgb( 41, 41, 41) #292929
grey16 grey16 rgb( 41, 41, 41) #292929
gray15 gray15 rgb( 38, 38, 38) #262626
grey15 grey15 rgb( 38, 38, 38) #262626
gray14 gray14 rgb( 36, 36, 36) #242424
grey14 grey14 rgb( 36, 36, 36) #242424
gray13 gray13 rgb( 33, 33, 33) #212121
grey13 grey13 rgb( 33, 33, 33) #212121
gray12 gray12 rgb( 31, 31, 31) #1F1F1F
grey12 grey12 rgb( 31, 31, 31) #1F1F1F
gray11 gray11 rgb( 28, 28, 28) #1C1C1C
grey11 grey11 rgb( 28, 28, 28) #1C1C1C
gray10 gray10 rgb( 26, 26, 26) #1A1A1A
grey10 grey10 rgb( 26, 26, 26) #1A1A1A
gray9 gray9 rgb( 23, 23, 23) #171717
grey9 grey9 rgb( 23, 23, 23) #171717
gray8 gray8 rgb( 20, 20, 20) #141414
grey8 grey8 rgb( 20, 20, 20) #141414
gray7 gray7 rgb( 18, 18, 18) #121212
grey7 grey7 rgb( 18, 18, 18) #121212
gray6 gray6 rgb( 15, 15, 15) #0F0F0F
grey6 grey6 rgb( 15, 15, 15) #0F0F0F
gray5 gray5 rgb( 13, 13, 13) #0D0D0D
grey5 grey5 rgb( 13, 13, 13) #0D0D0D
gray4 gray4 rgb( 10, 10, 10) #0A0A0A
grey4 grey4 rgb( 10, 10, 10) #0A0A0A
gray3 gray3 rgb( 8, 8, 8) #080808
grey3 grey3 rgb( 8, 8, 8) #080808
gray2 gray2 rgb( 5, 5, 5) #050505
grey2 grey2 rgb( 5, 5, 5) #050505
gray1 gray1 rgb( 3, 3, 3) #030303
grey1 grey1 rgb( 3, 3, 3) #030303
black black rgb( 0, 0, 0) #000000
gray0 gray0 rgb( 0, 0, 0) #000000
grey0 grey0 rgb( 0, 0, 0) #000000
opaque opaque rgb( 0, 0, 0) #000000
none none rgba( 0, 0, 0, 0.0) #00000000
transparent transparent rgba( 0, 0, 0, 0.0) #00000000

Как указать цвет с прозрачностью

Чтобы указать полупрозрачный цвет, используйте 'rgba()', 'hsla()' или 'hsba()'.


К примеру, я хочу использовать цвет DarkViolet с полупрозрачностью, то есть с альфа каналом.

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

magick -list color | grep -i ИМЯ-ЦВЕТА

Например:

magick -list color | grep -i DarkViolet

Получен результат:

DarkViolet            srgb(148,0,211)                               SVG X11 XPM

Для того чтобы цвет имел прозрачность, нужно использовать 'rgba()' с четырьмя цифрами, первыми тремя станут цифры srgb, в данном случае это «(148,0,211)», а последняя цифра это уровень прозрачности в диапазоне от 0 (полная прозрачность) до 1 (без прозрачности).

Пример команды с использованием частично прозрачного цвета:

magick IMAGE.jpg -pointsize 72 -fill 'rgba(148,0,211,0.5)' -annotate +650+150 'zaLinux.ru' test.jpg

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

В следующей команде текст с прозрачностью используется для надписи и для фона текста:

magick IMAGE.jpg -undercolor 'rgba(148,0,211,0.1)' -pointsize 72 -fill 'rgba(0,0,128,0.5)' -font Liberation-Serif -annotate +650+450 'zaLinux.ru' test.jpg

Обратите внимание, что при сохранении в формате поддерживающего прозрачность (например, PNG), прозрачность будет сохранена, но при сохранении в форматах без поддержки прозрачности (например, JPEG), прозрачность будет потеряна.

Ссылка на файл со значением опции

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

Особенно это актуально для опций, которые могут иметь очень длинные аргументы, например, "-set","-sparse-color", "-distort" или "-morphology".

Ниже даны примеры, как с @ можно указать путь до шрифта с опцией -font, либо файл с текстом с опцией -annotate.

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

Наконец, ссылку на файл с помощью символа @ можно использовать со специальным типом изображений «label:» и «caption:». В этом случае текст для данных изображений будет считан из указанного файла.

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

3. Просмотр свойств изображений

Как просмотреть свойства изображения

Для просмотра свойства файла IMAGE.jpg используйте команду:

magick IMAGE.jpg info:-

Или:

magick IMAGE.jpg -identify null:

Предыдущие две команды покажут одинаковый результат.

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

magick IMAGE.jpg -verbose info:-

Как узнать уровень качества JPG

Как узнать качество JPG? Можно ли определить уровень качества JPEG?

При сохранении файла JPG с помощью GIMP, можно настроить качество, с которым сохраняется файл, доступны величины от 0 до 100.

Чтобы посмотреть качество изображения IMAGE.jpg, выполните следующую команду:

magick IMAGE.jpg -format '%Q' info:-

Будет выведено число от 0 до 100, указывающее на качество изображения.

Что означает уровень качества JPEG?

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

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

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

Согласно спецификации JFIF, номер качества (0-100) не сохраняется в заголовке изображения, хотя плотность пикселей по горизонтали и вертикали сохраняется.

Алгоритм сжатия JPEG имеет некоторые параметры, влияющие на качество получаемого изображения.

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

Некоторые программы позволяют пользователю устанавливать уровень качества от 0 до 100. Но общего определения этого числа нет. Изображение, сделанное в Photoshop с качеством 60%, занимает 46 КБ, а изображение, созданное в GIMP, занимает всего 26 КБ.

Таблицы квантования также различаются.

Есть и другие параметры, такие как субдискретизация, метод dct и т. д.

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

Сравните качество изображения с размером 4000 × 2252 пикселей, сохранённое с разными уровнями качества.

Сильно приближенный JPG с качеством 92:

Сильно приближенный JPG с качеством 20:

Сильно приближенный JPG с качеством 10:

Как можно убедиться, даже до уровня 20 качество всё ещё остаётся сносным, хотя на уровне 10 уже сильны искажения.

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

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

Как узнать количество уникальных цветов в изображении

Чтобы подсчитать количество уникальных цветов в изображении IMAGE.jpg, используйте команду:

magick IMAGE.jpg -format '%k' info:-

Обратите внимание, что все команды в данной статье могут применять не только к файлам JPG, но и к другим форматам (если это применимо к ним):

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

Чтобы просмотреть размер изображения IMAGE.jpg в пикселях используйте команду:

magick IMAGE.jpg -format '%G' info:-

Как просмотреть класс изображения и цветовое пространство

Чтобы вывести класс изображения IMAGE.jpg и его цветовое пространство используйте команду:

magick IMAGE.jpg -format '%r' info:-

Как просмотреть глубину изображения

Для вывода глубины цвета изображения IMAGE.jpg используйте команду:

magick IMAGE.jpg -format '%z' info:-

Аргументы опции -format 

В примерах выше использовалась опция -format, после которой можно указать, какую именно информацию вы хотите просмотреть. Добавление опции -verbose приводит к тому, что показываются практически все данные, за исключением некоторых значений, которые вычисляются (а не содержатся в данных картинки). Полный список доступных вариантов для опции -format вы найдёте на следующей странице: https://imagemagick.org/script/escape.php

Онлайн-сервис для вывода информации об изображениях

Если вы пользователь Windows или вам не хочется устанавливать ImageMagick (или просто вникать в командную строку), то вы можете воспользоваться следующим бесплатным сервисом: Просмотр уровня сжатия JPG: https://suip.biz/ru/?act=show-image-compression-quality

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

Зеркало: https://w-e-b.site/?act=show-image-compression-quality 

4. Конвертация изображений в любые форматы в Linux

Как конвертировать картинки в командной строке Linux

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

magick -list format

Также в конце статьи приведена таблица с полным перечнем поддерживаемых форматов файлов и ихкратким описанием.

Чтобы конвертировать одно изображение в любой другой выполните команду вида:

magick КАРТИНКА РЕЗУЛЬТАТ

Примечание: если вы получили сообщение об ошибке, что команда magick не найдена, то вместо неё используйте команду convert. Объяснение будет дано ниже.

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

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

Например:

magick КАРТИНКА.jpg РЕЗУЛЬТАТ.png

Следующая команда конвертирует файл image.png в формат JPG и сохранит новую картинку в файл image.jpg:

magick image.png image.jpg

Вы также можете конвертировать динамические изображения (например, GIF файлы) в видео ролики (форматы avi, 3gp, webm, wmv, flv, mkv, mpg, webm, m2v, m4v, mov, mp4, mpeg и другие).

Также вы можете конвертировать видео форматы avi, 3gp, webm, wmv, flv, mkv, mpg, webm, m2v, m4v, mov, mp4, mpeg и другие в файлы GIF.

Конвертация PDF в JPG

Используйте magick следующим образом:

magick input.pdf output.jpg

Для хорошего качества используйте эти параметры

magick -density 300 -quality 100 in.pdf out.jpg

Если вы столкнулись с ошибками, то вам могут помочь статьи:

Конвертация JPG в PDF

Чтобы конвертировать одно изображение в PDF выполните команду вида:

magick КАРТИНКА.jpg РЕЗУЛЬТАТ.pdf

Пример:

magick PL48536179-5.jpg out.pdf

Можно указать сразу несколько входных файлов .jpg, например:

magick PL48536179-5.jpg PL48536179-6.jpg PL48536179-7.jpg out.pdf

Они поочерёдно будут добавлены в созданный PDF файл.

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

magick PL48536179* out.pdf

Или так:

magick PL*.jpg out.pdf

Следующая команда создаст PDF файл из всех JPG файлов в текущей директории:

magick *.jpg out.pdf

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

magick -quality 70 PL*.jpg out2.pdf

Как можно убедиться, размер PDF файла действительно уменьшился:

Массовая конвертация изображений

Как конвертировать большое количество изображений в другой формат

Но что если нужно конвертировать не один файл, а несколько десятков или даже сотен фотографий или картинок в другой формат?

Утилита magick прекрасно подходит для массового преобразования и конвертирования большого количества файлов.

Предположим, имеется задача конвертировать все JPG файлы в текущей директории так, чтобы преобразовать их в PNG, HEIF или другой формат и сохранить в указанной папке, при этом каждый файл должен сохранить своё имя.

Прежде всего, обратим внимание, что для того, чтобы не указывать каждый файл отдельно, мы будем использовать «Подстановочные символы в имени файла», то есть в качестве входного файла мы укажем «*.jpg».

В качестве выходного файла мы будем использовать «Указание шаблона имени файлов».

Некоторые «свойства» должны быть определены особым образом для использования. Например, только «свойства» с префиксом «filename:» могут использоваться для изменения выходного имени файла изображения.

Создадим директорию «png»:

mkdir png

Следующая команда поочерёдно считает все файлы .jpg в текущей директории, конвертирует их в формат PNG и сохранит их в директорию «png» с прежними именами:

magick *.jpg -set filename:currentfile '%t' 'png/%[filename:currentfile].png'

Почему ImageMagick сохраняет все изображения в один файл?

Предположим, что нужно решить аналогичную задачу, но конвертировать файлы в другой формат, к примеру, один из GIF, MIFF, TIFF, PDF, MNG, HEIF или HEIC.

Смотрите также: Что такое формат изображения HEIF (или HEIC)?

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

Поведением magick по умолчанию является сохранить все изображения в один файл, если данный формат это поддерживает. Чтобы изменить это поведение по умолчанию, используйте опцию +adjoin

К примеру, следующая команда конвертирует все изображения в формат .heif и сохранит отдельные файлы в директорию «heif»:

mkdir heif
magick *.jpg -set filename:currentfile '%t' +adjoin 'heif/%[filename:currentfile].heif'

Как одновременно конвертировать фотографии и уменьшить их размер

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

magick '*.jpg[1000x>]' -set filename:currentfile '%t-%wx%h' +adjoin 'heif/%[filename:currentfile].heif'

Чтобы не добавлялось новое разрешение файла, используйте следующую команду (будет сохранено прежнее имя, но с новым расширением имени файла):

magick '*.jpg[1000x>]' -set filename:currentfile '%t' +adjoin 'heif/%[filename:currentfile].heif'

Вместо изменения разрешения фотографии, вы можете сохранить её размер, но увеличить степень сжатия (уменьшить качество изображения), для этого используйте опцию -quality. Следующая команда прочитает все файлы JPEG, сожмёт их с качеством 40 и конвертирует их в формат HEIF, затем сохранит их все в папку heif с исходным именем файла (изменится только расширение):

magick '*.jpg' -quality 40 -set filename:currentfile '%t' +adjoin 'heif/%[filename:currentfile].heif'

Подробности об изменении размера и сжатии фотографий смотрите в следующем разделе Уменьшение размера фотографий, увеличение размера и сжатие изображений.

Конвертация картинок во все форматы онлайн

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

Ссылки:

5. Уменьшение размера фотографий, увеличение размера и сжатие изображений

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

Вы можете уменьшить размер изображения несколькими способами:

1. Выбрать формат кодирующий изображение с потерей качества (JPEG)

2. Увеличить уровень сжатия изображения (для изображений сжимаемых с потерей качества это приведёт к ухудшению вида изображения, для изображений сжимаемых без потери качества это будет означать более долгую обработку изображения)

3. Уменьшить размер изображения в пикселях. Это повлияет на чёткость изображения и возможность разглядеть мелкие детали.

Изменение размера и разрешения изображения

Чтобы указать размер изображения в пикселях используйте опцию -scale ПИКСЕЛИ. Данная опция устанавливает ширину выходного изображения, что касается высоты, то она будет выбрана автоматически для сохранения исходной пропорции картинки.

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

magick IMAGE.jpg -scale 150 COMPRESSED.jpg

Если вы хотите чтобы изображение изменяло размер только если оно больше определённого размера, то используйте опцию -scale со знаком «больше» (>), который вместе с числом необходимо поместить в кавычки. Например, следующая команда уменьшить размер изображения до 500 пикселей в ширину только если изображение больше 500 пикселей.

magick IMAGE.jpg -scale '>500' size.jpg

Если использовать команду без знака «больше» (>), то размер изображения будет установлен на 500 пикселей, независимо от его начального размера. То есть размер изображения меньше 500 пикселей, то его ширина будет установлена на 500 пикселей следующей командой:

magick IMAGE.jpg -scale '500' size.jpg

Подробности смотрите в разделе Геометрия изображений.

Опция -scale увеличивает изображения с помощью усреднения пикселей. При уменьшении изображения пиксели просто удаляются. Никакие фильтры изображения не применяются.

Кроме этой опции имеются ещё следующие:

  • -resize ГЕОМЕТРИЯ — изменяет размер изображения, учитывает фильтры (опция -filter)
  • -sample ГЕОМЕТРИЯ — изменяет изображение с субдискретизацией пикселей и репликацией пикселей соответственно. Не учитывает фильтры. Ключевой особенностью -sample является то, что в результирующее изображение не добавляются новые цвета, хотя некоторые цвета могут исчезнуть.
  • -resample ГЕОМЕТРИЯ — изменяет разрешение изображения, работает с количеством точек на дюйм

При обработке большого количества фотографий для экономии ресурсов компьютера (в первую очередь оперативной памяти) используйте Изменение размера изображения во время чтения.

Изменение степени сжатия изображения

Опция -quality устанавливает уровень сжатия изображений, сохраняемых без потерь качества, либо устанавливает уровень качества изображений, сохраняющихся с потерями.

При конвертации в некоторые форматы вы можете использовать опцию -quality КАЧЕСТВО. В качестве КАЧЕСТВА укажите число в диапазоне от 1 (худшее качество) до 100 (лучшее качество). Например:

magick IMAGE.jpg -quality 40 COMPRESSED.jpg

Опция -quality применима для форматов JPEG, MIFF, TIFF, PNG, MNG.

Для форматов сохраняющих изображения с потерей качества (JPEG) эта опция устанавливает степень качества — чем ниже качество, тем больше потерь при сжатии, но и меньше размер.

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

Для форматов изображений JPEG и MPEG качество составляет от 1 (самое низкое качество изображения и максимальное сжатие) до 100 (наилучшее качество, но наименее эффективное сжатие). По умолчанию используется предполагаемое качество вашего входного изображения, если его можно определить, в противном случае — 92. Когда качество больше 90, каналы цветности не понижаются. Используйте параметр -sampling-factor, чтобы указать факторы для понижения дискретизации цветности.

Для формата изображения JPEG-2000 качество сопоставляется с помощью нелинейного уравнения коэффициенту сжатия, требуемому библиотекой Jasper. Это нелинейное уравнение предназначено для грубой аппроксимации качества, обеспечиваемого форматом JPEG v1. Значение качества по умолчанию 100, то есть запрос на сжатие без потерь. При качестве 75 запрашивается сжатие 16:1.

Для форматов изображений MNG и PNG значение качества задаёт уровень сжатия zlib (качество / 10) и тип фильтра (качество % 10). «Качество» PNG по умолчанию равно 75, что означает уровень сжатия 7 с адаптивной фильтрацией PNG, если только изображение не имеет карты цветов, и в этом случае это означает уровень сжатия 7 без фильтрации PNG.

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

Если тип фильтра равен 4 или меньше, указанный тип фильтра PNG используется для всех строк развёртки:

0 none
1 sub
2 up
3 average
4 Paeth

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

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

Только если выход MNG, если тип фильтра равен 7, используются преобразование цвета LOCO (внутрипиксельное различие) и адаптивная фильтрация с минимальной суммой абсолютных значений.

Если тип фильтра равен 8, стратегия сжатия zlib Z_RLE (или стратегия Z_HUFFMAN_ONLY, когда уровень сжатия равен 0) используется с адаптивной фильтрацией PNG.

Если тип фильтра равен 9, используется стратегия сжатия zlib Z_RLE (или стратегия Z_HUFFMAN_ONLY, когда уровень сжатия равен 0) без фильтрации PNG.

Настройка качества не влияет на внешний вид или подпись изображений PNG и MNG, поскольку сжатие всегда происходит без потерь.

Не все комбинации уровня сжатия, стратегии и типа фильтра PNG можно получить с помощью параметра -quality. Для более точного контроля вы можете использовать определения PNG:compression-level=N, PNG:compression-strategy=N и PNG:compression-filter=N соответственно. Смотрите опцию -define. Значения из -define. имеют приоритет над значениями из опции -quality.

Для получения дополнительной информации смотрите спецификацию PNG.

Для форматов изображений MIFF и TIFF качество/10 — это уровень сжатия Zip/BZip, от 0 (наихудшее, но самое быстрое сжатие) до 9 (наилучшее, но самое медленное). На внешний вид изображения это никак не влияет, так как сжатие всегда происходит без потерь.

Для формата изображения BPG качество/2 — это фактический уровень сжатия BPG (диапазон от 0 до 51).

Массовое изменение размера фотографий в командной строке

Утилита magick прекрасно подходит для массового преобразования большого количества файлов.

Предположим, имеется задача обработать все JPG файлы в текущей директории так, чтобы уменьшить их размер до 100 пикселей и сохранить в папке «preview», при этом каждый файл должен сохранить своё имя.

Прежде всего, обратим внимание, что для того, чтобы не указывать каждый файл отдельно, мы будем использовать «Подстановочные символы в имени файла», то есть в качестве входного файла мы укажем «*.jpg».

Также вместо опции -scale мы будем использовать «Изменение размера изображения во время чтения», то есть желаемый размер изображения будет указан в квадратных скобках после шаблона имени файла. Таким образом, именем файла становится «*.jpg[100x]», поскольку мы хотим изменить размер до 100 пикселей.

Обратите внимание, что такой подход с заменой -scale на изменение изображения во время чтения позволит очень сильно сэкономить ресурсы компьютера (оперативную память), поскольку все изображения будут обрабатываться последовательно, без предварительного чтения их в оперативную память.

В качестве выходного файла мы будем использовать «Указание шаблона имени файлов».

Некоторые «свойства» должны быть определены особым образом для использования. Например, только «свойства» с префиксом «filename:» могут использоваться для изменения выходного имени файла изображения.

Создадим директорию preview:

mkdir preview

Следующая команда поочерёдно считает все файлы .jpg в текущей директории, изменит их размер до 100 пикселей и сохранит их в директорию preview с прежними именами:

magick *.jpg[100x] -set filename:currentfile '%t' 'preview/%[filename:currentfile].jpg'

%t означает исходное имя файла без расширения. Список возможных атрибутов и их условные обозначения в виде экранированных символов вы найдёте по ссылке: https://imagemagick.org/script/escape.php

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

magick *.jpg[100x] -set filename:currentfile '%t-%wx%h' 'preview/%[filename:currentfile].jpg'

В этой команде используются %w (ширина) и %h (высота).

Если вы хотите, чтобы размер изображения был уменьшен только если он превышает указанный размер, тогда к выбранному размеру добавьте символ «>»:

magick '*.jpg[1000x>]' -set filename:currentfile '%t-%wx%h' 'preview/%[filename:currentfile].jpg'

Больше примеров указания размера изображений смотрите в разделе «Геометрия изображений».

Сжатие изображений без изменения их размера

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

Для этого используйте уже рассмотренную опцию -quality, после которой укажите число в диапазоне от 0 (самое плохое качество) до 100 (самое лучшее качество, минимальное сжатие).

Подробности смотрите в разделе: Как узнать уровень качества JPG

В следующем примере все файлы JPEG будут сжаты с качеством 40 и сохранены в папке compressed с теми же самыми именами:

mkdir compressed
magick *.jpg -quality 40 -set filename:currentfile '%t' 'compressed/%[filename:currentfile].jpg'

Как запретить сохранение всех картинок в один файл

Форматы JPEG и PNG не поддерживает файлы с несколькими изображениями, поэтому рассмотренная проблема не возникает при конвертировании в эти форматы. Но ряд форматов, например, GIF, MIFF, TIFF, PDF, MNG, HEIF и HEIC, поддерживают файлы с несколькими изображениями. В этом случае все изображения по умолчанию будут сохранены в один файл.

Смотрите также: Что такое формат изображения HEIF (или HEIC)?

Чтобы сохранять каждое изображение в отдельный файл, добавьте к вашей команде опцию +adjoin, например:

magick '*.jpg[1000x>]' -set filename:currentfile '%t-%wx%h' +adjoin 'heif/%[filename:currentfile].heif'

6. Модификация изображений в командной строке Linux

ImageMagick — это мощнейшая программа и библиотека по созданию и модификации изображений в командной строке. В этом разделе будут рассмотрены команды и опции, которыми можно имитировать рисунок красками, карандашом, углём, сделать изображение чёрно-белым; повернуть изображение на произвольный угол или отобразить изображение по горизонтали или вертикали; изменить размер изображения; добавить или уменьшить шум на изображении; добавить рамку на изображение; имитировать 3D; добавить текст с произвольным стилем и форматированием; наложить одно изображение на другое; применить другие популярные фильтры.

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

Следующее изображение будет взято в качестве исходного:

Комбинирование опций и действий ImageMagick

Одной командой ImageMagick (magick) можно выполнить сразу несколько действий. Причём если вы используете форматы вроде jpg, то есть те, которые сжимают изображения с потерей качества (lossy), то старайтесь сократить количество операций (количество раз сжатия JPG) и делать все действия за один раз (либо в качестве промежуточных форматов используйте форматы, сохраняющие изображения без потерь данных (lossless), например, PNG).

Большинство из рассмотренных далее опций можно комбинировать друг с другом, а также с уже знакомыми опциями -scale ПИКСЕЛИ и -quality КАЧЕСТВО.

Например:

magick IMAGE.jpg -scale 200 -paint 1 test.jpg

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

magick IMAGE.jpg -scale 200 -paint 1 test.png

Как извлечь область изображения (кадрирование картинки)

Чтобы извлечь область изображения используйте опцию -extract ШИРИНАxВЫСОТА+x0+y0

В этой строке:

  • ШИРИНА — ширина извлекаемой области
  • ВЫСОТА — высота извлекаемой области
  • x0 — x координата верхнего левого угла извлекаемой области
  • y0 — y координата верхнего левого угла извлекаемой области

Опция -extract должна идти перед изображением из которого извлекается область!

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

В следующей команде из файла IMAGE.jpg извлекается область размером 500×400 пикселей, которая располагается на расстоянии 300 пикселей от левого края и 150 пикселей от верхнего края, полученное новое изображение сохраняется в файл test21.jpg:

magick -extract 500x400+300+150 IMAGE.jpg +repage test21.jpg

Вместо опции -extract ШИРИНАxВЫСОТА+x0+y0 можно использовать формат:

ФАЙЛ[ШИРИНАxВЫСОТА+x0+y0]

Следующая команда идентична предыдущей:

magick 'IMAGE.jpg[500x400+300+150]' +repage test21.jpg

При обработке большого количества фотографий для экономии ресурсов компьютера (в первую очередь оперативной памяти) используйте Обрезку изображения во время чтения.

Как применить эффект к области изображения

По умолчанию показанные далее опции изменяют изображение целиком. Если вы хотите изменить только определённую область изображения, то используйте опцию -region ШИРИНАxВЫСОТА+x0+y0

В этой строке:

  • ШИРИНА — ширина модифицируемой области
  • ВЫСОТА — высота модифицируемой области
  • x0 — x координата верхнего левого угла модифицируемой области
  • y0 — y координата верхнего левого угла модифицируемой области

К примеру, в следующей команде эффект -negate (описание данной опции смотрите ниже) будет применён только к области изображения IMAGE.jpg размером 500×400 пикселей, которая располагается на расстоянии 300 пикселей от левого края и 150 пикселей от верхнего края, полученное новое изображение сохраняется в файл test21.jpg:

magick IMAGE.jpg -region 500x400+300+150 -negate test21.jpg


Как имитировать картину маслом

Чтобы фотография стала похожа на нарисованную красками картину используйте опцию -paint РАДИУС.

Эта опция создаёт имитацию картины маслом.

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

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

magick IMAGE.jpg -paint 4 test1.jpg

Результат:

Как имитировать рисунок углем

Чтобы фотография выглядела будто бы нарисована углём, используйте опцию -charcoal РАДИУС.

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

magick IMAGE.jpg -charcoal 5 test2.jpg

Результат:

Как имитировать карандашный набросок

Опция -sketch ГЕОМЕТРИЯ создаёт имитацию карандашного наброска.

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

magick IMAGE.jpg -sketch 5 test3.jpg

Результат:

У данной опции возможны следующие варианты синтаксиса:

  • -sketch radius
  • -sketch radius{xsigma}+angle

Последний вариант опции создаёт эскиз с заданным радиусом, стандартным отклонением (сигма) и углом. Указанный угол — это угол, под которым нарисовано изображение. Это то направление, с которого люди считают, что объект исходит.

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

Как конвертировать изображение в чёрно-белое в командной строке Linux? С помощью опции -monochrome вы можете преобразовать изображение в чёрно-белое.

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

magick IMAGE.jpg -monochrome test4.jpg

Результат:

Создание негатива изображения

С помощью опции -negate вы можете заменить каждый пиксель его дополнительным цветом.

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

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

magick IMAGE.jpg -negate test5.jpg

Результат:

Как сделать зеркальное изображение (по горизонтали или вертикали) в командной строке Linux

Чтобы отразить изображение по горизонтали или вертикали, используйте опции:

  • -flip (изображение будет отражено, перевёрнуто сверху вниз)
  • -flop (изображение будет отражено, перевёрнуто слева направо — в точности как в зеркале)

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

magick IMAGE.jpg -flip test6.jpg

Результат:

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

magick IMAGE.jpg -flop test7.jpg

Результат:

Как повернуть изображение в командной строке Linux

Для поворота изображения используйте опцию -rotate ГРАДУСЫ. В качестве градусов может быть установлена как положительная (для поворота по часовой стрелке), так и отрицательная (для поворота против часовойо стрелки) величина. Например:

magick IMAGE.jpg -rotate 30 test8.jpg
magick IMAGE.jpg -rotate -30 test8.jpg

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

magick IMAGE.jpg -background VioletRed -rotate 30 test8.jpg

Имена всех цветов вы можете посмотреть с помощью следующей команды:

magick -list color

Смотрите также:

Если вы хотите повернуть изображение и заполнить пустые углы растянутыми полосками с цветом по краям картинки, то используйте опцию -distort ScaleRotateTranslate УГОЛ, например:

magick IMAGE.jpg -distort ScaleRotateTranslate 30 test9.jpg

Если вы хотите вместо заполнения пустых краёв сделать так, чтобы изображение было увеличено для заполнения всего пространства, то используйте опцию -distort ScaleRotateTranslate МАСШТАБ,УГОЛ, например:

magick IMAGE.jpg -distort ScaleRotateTranslate 1.5,30 test10.jpg

Опция -distort ScaleRotateTranslate может принимать разное количество аргументов, которые меняют и её поведение:

magick IMAGE.jpg -distort ScaleRotateTranslate 500,500,30 test10.jpg

Подробности смотрите в справке по опции -distorthttps://imagemagick.org/script/command-line-options.php#distort

Ещё две опции, имеющие отношение к повороту и отражению изображений:

  • -transpose: отразит изображение по диагонали от левого верхнего угла к правому нижнему. Эта опция математически транспонирует массив пикселей. Она эквивалентна последовательности опций -flip -rotate 90.
  • -transverse: зеркально отображает изображение по диагонали изображения внизу слева на вверх справа. Эквивалентно операциям -flop -rotate 90.

Примеры использования:

magick IMAGE.jpg -transpose test11.jpg
magick IMAGE.jpg -transverse test11.jpg

Прокручивание изображений. Эффект киноплёнки

Опция -roll ГЕОМЕТРИЯ проворачивает изображение по вертикали или горизонтали так, что его части оказываются на противоположной стороне. В качестве аргумента опции -roll нужно указать два числа, которые могут быть как положительные, так и отрицательные, которые показывают количество пикселей на которое нужно провернуть изображение по вертикали и горизонтали.

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

magick IMAGE.jpg -roll +130+150 test11.jpg

Результат:

Как имитировать фото Polaroid в командной строке

С помощью опции -polaroid УГОЛ можно имитировать фото Polaroid.

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

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

magick IMAGE.jpg -polaroid -10 test12.jpg

Результат:

Как уменьшить шумность картинки в командной строке Linux

Опция -noise ГЕОМЕТРИЯ в последних версиях ImageMagick не работает, поскольку объявлена устаревшей. Вместо неё используйте сочетание -statistic NonPeak ИНТЕНСИВНОСТЬ.

Например:

magick IMAGE.jpg -statistic NonPeak 3 test13.jpg

Слишком большие значения ИНТЕНСИВНОСТИ делают изображение нереалистичным.

Как увеличить шумность картинки в командной строке Linux

Для увеличения шумности используйте следующий набор опций: -attenuate ИНТЕНСИВНОСТЬ +noise ТИП

В качестве ИНТЕНСИВНОСТИ укажите число (по умолчанию 1.0). В качестве ТИПА шума выберите из следующих вариантов:

  • Gaussian
  • Impulse
  • Laplacian
  • Multiplicative
  • Poisson
  • Random
  • Uniform

Обратите внимание, что Random заменит изображение шумом, а не добавит шум к изображению. Используйте Uniform, если хотите добавить к изображению случайный шум.

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

magick IMAGE.jpg -attenuate 1.5 +noise Gaussian test14.jpg

Результат:

Такого же результата вы можете достичь с помощью опции -evaluate, например:

magick IMAGE.jpg -evaluate Gaussian-noise 1.5 test14.jpg

Подробное описание опции -evaluate и её возможные аргументы: https://imagemagick.org/script/command-line-options.php#evaluate

Как осветлить или затемнить края изображения

Опция -raise ЗНАЧЕНИЕ осветлит или затемнит края изображения для создания 3D-эффекта.

Это создаст эффект 3D. Используйте -raise для создания эффекта приподнятости, в противном случае используйте +raise.

magick IMAGE.jpg -raise 50 test22.jpg
magick IMAGE.jpg +raise 50 test22.jpg

В отличие от аналогичной опции -frame (рассмотрена далее), -raise не изменяет размеры изображения.

Как создать рамку вокруг изображения

Чтобы поместить изображение в рамку используйте опцию -frame.

Если вы хотите однотонную рамку без эффектов, то укажите после -frame одно число:

magick IMAGE.jpg -mattecolor peru -frame 19 test23.jpg

Если вы хотите рамку с эффектом объёма, то укажите четыре числа: -frame AxA+B+C:

magick IMAGE.jpg -mattecolor peru -frame 19x19+3+6 test23.jpg

Первые два числа (A) определяют толщину рамки, второе число (B) определяет толщину внешнего края, последнее число (C) определяет толщину внутреннего края.

Опция -mattecolor устанавливает цвет рамки.

Имена всех цветов вы можете посмотреть с помощью следующей команды:

magick -list color

Смотрите также:

Как создать виньетку

Опция -vignette смягчает края изображения в стиле виньетки.

Формат: -vignette РАДИУС{xСИГМА}{+-}x{+-}y{%}

Спад эффекта виньетки контролируется РАДИУСxСИГМА (здесь две переменных radius и sigma, а также знак умножения, то есть radius x sigma). Для номинального спада это будет установлено на 0xsigma (то есть 0 x sigma). Значение 0x0 создаст круг/эллипс без спада. Аргументы x и y управляют размером круга. Большие значения уменьшают радиусы, а меньшие значения увеличивают радиусы. Значения +0+0 будут генерировать круг/эллипс того же размера, что и изображение. Значения по умолчанию для x и y составляют 10% от соответствующего размера изображения. Таким образом, радиусы будут уменьшены на 10 %, т. е. диаметры круга/эллипса будут составлять 80 % от соответствующего размера изображения. Обратите внимание, что символ процента в геометрии влияет на x и y, тогда как радиус и сигма являются абсолютными значениями (например, -vignette "0x2+10%+10%").

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

magick IMAGE.jpg -vignette 20x100 test24.jpg
magick IMAGE.jpg -vignette 0x100 test24.jpg

Результат последней команды:

Множество примеров как сделать разнообразные рамки и обрамления изображений вы найдёте по ссылке: https://imagemagick.org/Usage/thumbnails/

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

Для увеличения количества белого используйте опцию -sigmoidal-contrast ЧИСЛО,0%. Чем больше ЧИСЛО, тем сильнее будет изменение, например:

magick IMAGE.jpg -sigmoidal-contrast 4,0% test25.jpg

Для уменьшения количества чёрного используйте опцию +sigmoidal-contrast ЧИСЛО,100%. Чем больше ЧИСЛО, тем сильнее будет изменение, например:

magick IMAGE.jpg +sigmoidal-contrast 4,100% test25.jpg

Как сделать изображение темнее. Как уменьшить экспозицию

Для уменьшения количества белого используйте опцию +sigmoidal-contrast ЧИСЛО,0%. Чем больше ЧИСЛО, тем сильнее будет изменение, например:

magick IMAGE.jpg +sigmoidal-contrast 4,0% test26.jpg

Для увеличения количества чёрного используйте опцию -sigmoidal-contrast ЧИСЛО,100%. Чем больше ЧИСЛО, тем сильнее будет изменение, например:

magick IMAGE.jpg -sigmoidal-contrast 4,100% test26.jpg

7. Наложение и объединение изображений в командной строке Linux (компоновка изображений)

Как наложить одно изображение на другое

Рассмотрим как сделать наложение картинки на картинку.

Команда наложения одного изображения на другое состоит из трёх основных частей:

  1. Имя начального изображения, которое будет выполнять роль фона.
  2. Имя второго изображения, которое будет наложено на первое. Опции Геометрии, а также опция -composite. Данный пункт может быть повторён множество раз, для наложения нескольких изображений на одно.
  3. Имя выходного файла.

В следующем примере на изображение IMAGE.jpg будет наложено изображение IMAGE1.jpg, ширина которого будет равна 400 пикселям, это изображение будет отодвинуто от левого края на 50 пикселей и от верха на 10 пикселей, новое изображение будет сохранено в файл test27.jpg:

magick IMAGE.jpg IMAGE1.jpg -geometry 400x300+50+10 -composite test27.jpg

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

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

С помощью параметра -gravity вы можете изменить начало координат, например:

magick IMAGE.jpg IMAGE1.jpg -gravity North -geometry 400x300+0+0 -composite test27.jpg
magick IMAGE.jpg IMAGE1.jpg -gravity South -geometry 400x300+0+0 -composite test27.jpg
magick IMAGE.jpg IMAGE1.jpg -gravity SouthWest -geometry 400x300+0+0 -composite test27.jpg

Подробности смотрите в разделе Опция -gravity определяет начало координат для Сдвига

Аналогичная команда, в которой на изображение IMAGE.jpg наложены картинки с IMAGE1.jpg по IMAGE6.jpg:

magick IMAGE.jpg IMAGE1.jpg -geometry 400x300+50+10 -composite IMAGE2.jpg -geometry 330x230+225+210 -composite IMAGE3.jpg -geometry 350x300+475+260 -composite IMAGE4.jpg -geometry 400x300+25+410 -composite IMAGE5.jpg -geometry 400x300+625+10 -composite IMAGE6.jpg -geometry 350x300+600+450 -composite test28.jpg

Обратите внимание, что опция -composite применяется после каждого изображения!

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

magick IMAGE.jpg \( IMAGE1.jpg -geometry 400x300+50+10 \) -composite \( IMAGE2.jpg -geometry 330x230+225+210 \) -composite \( IMAGE3.jpg -geometry 350x300+475+260 \) -composite \( IMAGE4.jpg -geometry 400x300+25+410 \) -composite \( IMAGE5.jpg -geometry 400x300+625+10 \) -composite \( IMAGE6.jpg -geometry 350x300+600+450 \) -composite b.jpg

Поскольку высота подбирается автоматически, то её можно не указывать:

magick IMAGE.jpg IMAGE1.jpg -geometry 400x+50+10 -composite IMAGE2.jpg -geometry 330x+225+210 -composite IMAGE3.jpg -geometry 350x+475+260 -composite IMAGE4.jpg -geometry 400x+25+410 -composite IMAGE5.jpg -geometry 400x+625+10 -composite IMAGE6.jpg -geometry 350x+600+450 -composite b.jpg

В качестве фона вместо фотографии можно указать цвет фона, для этого используйте набор опций -size РАЗМЕР canvas:ЦВЕТ. К примеру, в следующей команде изображения накладываются на фон красного цвета размером 1000×750:

magick -size 1000x750 canvas:red IMAGE1.jpg -geometry 400x300+50+10 -composite IMAGE2.jpg -geometry 330x230+225+210 -composite IMAGE3.jpg -geometry 350x300+475+260 -composite IMAGE4.jpg -geometry 400x300+25+410 -composite IMAGE5.jpg -geometry 400x300+625+10 -composite IMAGE6.jpg -geometry 350x300+600+450 -composite test29.jpg

Как объединить фотографии без наложения

Опция -append соединяет текущие изображения по вертикали или по горизонтали c +append.

Этот параметр создаёт одно более длинное изображение путём объединения всех текущих изображений в последовательности сверху вниз.

magick IMAGE.jpg IMAGE1.jpg -append test31.jpg

Используйте +append, чтобы складывать изображения слева направо.

magick IMAGE.jpg IMAGE1.jpg +append test31.jpg

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

Подробности смотрите в разделе Опция -gravity определяет начало координат для Сдвига

Цвет фона можно задать с помощью опции -background ЦВЕТ. Например:

magick IMAGE.jpg -background Violet IMAGE1.jpg -append test30.jpg

Вы также можете использовать опцию -scale для привидения изображений к одинаковому размеру:

magick IMAGE.jpg -scale 1000 IMAGE1.jpg -scale 1000 -append test30.jpg

Предыдущая команда приведёт оба изображения к ширине 1000 пикселей и расположит их друг над другом.

Аналогичная команда, но она вместо расположения изображений друг над другом поместит их слева направо (по горизонтали):

magick IMAGE.jpg -scale 1000 IMAGE1.jpg -scale 1000 +append test30.jpg

Объединение фотографий с добавлением пространства между ними

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

Опция -smush СМЕЩЕНИЕ добавляет последовательность изображений вместе, игнорируя прозрачность.

-smush — это более гибкая версия -append, соединяющая изображения в последовательности сверху вниз (-smush) или слева направо (+smush) с промежутком между изображениями в соответствии с указанным смещением.

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

-smush уважает -gravity. Любое пустое пространство будет заполнено фоновым цветом.

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

Пример команды с опцией -smush (приводит изображения к одинаковой ширине 1000 пикселей и помещает их друг над другом, разделив пространством в 100 пикселей):

magick IMAGE.jpg -scale 1000 -background Violet IMAGE1.jpg -scale 1000 -smush 100 test31.jpg

 

 

 

8. Создание и конвертация анимированных GIF и видео файлов

 

9. Создание изображений с помощью ImageMagick в командной строке

 

Как сделать скриншот окна или экрана с помощью magick

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

magick x: show:

Для сохранения выбранной области в FILE.png используйте команду:

magick x: FILE.png

Для сохранения скриншота всего экрана выполните:

magick x:'root' full_screen_dump.jpg

Для сохранения скриншота определённого окна необходимо знать его идентификатор. К примеру, следующая команда показывает идентификатор окна для Mozilla Firefox:

wininfo -root -all | grep "Mozilla Firefox"

Пример вывода:

        0x5e0002c "Miloserdov.org: Ethical hacking and penetration testing - InfoSec, IT, Kali Linux, BlackArch — Mozilla Firefox": ("Navigator" "firefox")  1920x1006+1+38  +0+37

Чтобы сохранить скриншот всего этого окна выполните следующую команду, где вместо 0x5e0002c укажите найденный ID:

magick x:'0x5e0002c' window.jpg

Как сделать скриншот веб-страницы

 

 

 

10. Добавление текста на изображения в ImageMagick

Как в ImageMagick наложить текст на картинку

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

Добавление надписи в ImageMagick возможно с помощью:

  • label: — тип изображения, предназначенный для создания файлов представляющих собой надписи или для добавления надписей на изображения
  • caption: — ещё один тип изображения, отличием от label: является то, что вместо увеличения размера текста до указанного параметра «-size» оно переносит любые длинные строки, которые не вписывается в указанную ширину «-size». То есть длинный текст разбивается на строки.
  • text: — ещё один тип изображения, цель которого переводить большие тексты в графический формат.
  • -draw — опция, которая даёт команду нарисовать тот или иной графический примитив. Среди графических примитивов присутствует и текст. В настоящее время в качестве вывода текста несколько утратила актуальность по причине добавления следующей опции.
  • -annotate — ещё одна опция, предназначена для удобного добавления текста на изображение. Эта опция использует -draw, и автором программы предполагается как более лёгкая и более мощная альтернатива этой опции.

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

  • -label
  • -comment
  • -caption

Что использовать для вывода текста на изображения в ImageMagick - label:, caption: или -annotate?

Для добавления надписи на изображение в выборе между -annotate и -draw воспользуемся советом автора программы и будем использовать -annotate.

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

Но при всех своих возможностях по своему типу label: и caption: это всё-таки изображения, поэтому при добавлении текста на них он имеет фон. Впрочем, при желании фон можно сделать прозрачным.

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

Все три варианта (label:, caption: и -annotate) могут показывать многострочный текст, но только caption: умеет автоматически распределять текст на несколько строк.

В общем, более универсальным вариантом, когда на картинку нужно добавить текст, представляется -annotate.

Варианты label: и caption: лучше всего подойдут когда нужно добавить подпись не на само изображение, а под ним или над ним, или даже на изображение, но на фоне и в пределах указанного размера. Также label: и caption: удобны когда вам нужно создать новое изображение, состоящие из надписи, например, кнопку для веб-интерфейса.

Опции для -annotate

В этом разделе собраны все опции, которые влияют на текст, показываемый с помощью -annotate. Далее каждая из опций рассмотрена более подробна и даны примеры её использования, а данный раздел можно использовать в качестве краткой справки чтобы быстро найти нужную опцию.

Если какая-либо опция, имеющая отношение к -annotate, пропущена, то напишите об этом в комментариях.

  • -pointsize. Размер шрифта.
  • -font. Название шрифта.
  • -family. Семейство шрифтов.
  • -fill. Цвет шрифта.
  • -stroke. Цвет обводки.
  • -strokewidth. Толщина обводки.
  • -style. Стиль, например, курсив, косой, нормальный.
  • -undercolor. Цвет фона.
  • -gravity. Устанавливает начало координат.
  • -weight. Толщина шрифта, которая пытается примениться к семейству шрифтов.
  • -antialias. Включает и отключает сглаживание.
  • -kerning. Расстояние между двумя буквами.
  • -interword-spacing. Расстояние между двумя словами.
  • -interline-spacing. Расстояние между двумя строками.
  • -stretch. Устарела и удалена.
  • -text-font. Устарела и удалена.

Как в командной строке Linux добавить текст на изображение

Для добавления текста используйте опцию -annotate {+-}tx{+-}ty TEXT

В этой строке:

  • {+-}tx — смещение в пикселях по горизонтали от центра гравитации (по умолчанию от верхнего левого угла)
  • {+-}ty — смещение в пикселях по вертикали от центра гравитации (по умолчанию от верхнего левого угла)
  • TEXT — текст для добавления на изображение

Следующая команда добавит на фотографию надпись zaLinux.ru сместив её от левой границы на 20 пикселей и от верха на 50 пикселей:

magick IMAGE.jpg -annotate +20+50 'zaLinux.ru' test40.jpg

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

Как в ImageMagick поменять размер шрифта

Для изменения размера используйте опцию -pointsize РАЗМЕР.

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

magick IMAGE.jpg -pointsize 72 -annotate +20+50 'zaLinux.ru' test40.jpg

Как поменять цвет шрифта в ImageMagick

Для смены цвета шрифта используйте опцию -fill ЦВЕТ. Этот параметр принимает имя цвета, шестнадцатеричный цвет или числовую спецификацию RGB, RGBA, HSL, HSLA, CMYK или CMYKA. Посмотреть имена всех цветов вы можете в разделе Как указать цвет в ImageMagick.

Заключите спецификацию цвета в кавычки, чтобы "#" или круглые скобки не интерпретировались вашей оболочкой.

Цвета можно указывать в следующем формате (список неполный, больше подробностей смотрите по предыдущей ссылке):

  • -fill blue
  • -fill "#ddddff"
  • -fill "rgb(255,255,255)"

Пример команды, которая напишет на фотографии IMAGE.jpg текст 'zaLinux.ru' размером 72 pt и цветом DarkViolet, текст будет помещён с отступом 500 пикселей от левого края изображения и 450 пикселей от верхнего края, файл с надписью будет сохранён с именем test40.jpg:

magick IMAGE.jpg -pointsize 72 -fill DarkViolet -annotate +500+450 'zaLinux.ru' test40.jpg

Как поменять шрифт в ImageMagick

Для выбора шрифта используйте опцию -font НАЗВАНИЕ ШРИФТА. Эта опция установит шрифт, который будет использоваться при аннотировании изображений текстом или создании меток.

Полный список шрифтов покажет команда:

magick -list font

Для каждого шрифта будет выведена информация из нескольких строк, строка с именем шрифта начинается на «Font:». Именно это имя нужно использовать с опцией -font.

В дополнение к шрифтам, указанным в предварительно определённом списке выше, вы также можете указать шрифт из определённого источника. Например, Arial.ttf — это файл шрифта TrueType, ps:helvetica — шрифт PostScript, а x:fixed — шрифт X11.

Чтобы указать явное имя файла или коллекции шрифтов, укажите путь к шрифту, которому предшествует символ @, например, @arial.ttf. Вы можете указать индекс начертания шрифта для коллекций шрифтов, например, @msgothic.ttc[1].

В следующей команде добавлена надпись с использованием шрифта Utopia-Regular:

magick IMAGE.jpg -font Utopia-Regular -pointsize 72 -fill DarkViolet -annotate +500+450 'zaLinux.ru' test41.jpg

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

magick IMAGE.jpg -font Utopia-Regular -pointsize 72 -fill DarkViolet -annotate +500+150 'zaLinux.ru' -font Ubuntu -pointsize 72 -fill DarkViolet -annotate +500+250 'zaLinux.ru' -font Cormorant-Unicase-Bold -pointsize 72 -fill DarkViolet -annotate +500+350 'zaLinux.ru' -font Times-New-Roman -pointsize 72 -fill DarkViolet -annotate +500+450 'zaLinux.ru' -font Liberation-Serif -pointsize 72 -fill DarkViolet -annotate +500+550 'zaLinux.ru' test41.jpg

Как указать семейство шрифтов

Опция -family СЕМЕЙСТВО ШРИФТОВ устанавливает семейство шрифтов для текста.

Этот параметр предлагает семейство шрифтов, которое ImageMagick должен попытаться использовать для рендеринга текста. Если семья может быть найдена, она используется; если нет, подставляется шрифт по умолчанию (например, «Arial») или семейство, известное как похожее (например, «Courier» может использоваться, если «System» запрошен, но не найден). Обратите внимание, что семейство может быть списком шрифтов в стиле CSS.

Если имя СЕМЕЙСТВА ШРИФТОВ содержит пробелы, то поместите его в кавычки, например, в следующей команде указано семейство шрифтов URW Gothic:

magick IMAGE.jpg -family 'URW Gothic' -pointsize 72 -fill DarkViolet -annotate +500+450 'zaLinux.ru' test42.jpg

Как сделать обводку текста

С помощью двух опций -stroke ЦВЕТ ОБВОДКИ и -strokewidth ТОЛЩИНА ОБВОДКИ вы можете указать цвет и толщину обводки текста.

К примеру, в следующей команде выбран текст шрифта DarkViolet, в качестве цвета обводки выбран black, толщина обводки установлена на 3:

magick IMAGE.jpg -stroke black -strokewidth 3 -font Times-New-Roman -pointsize 72 -fill DarkViolet -annotate +500+550 'zaLinux.ru' test43.jpg

Результат выполнения команды (показаны обводки шириной от 1 до 5):

magick IMAGE.jpg -stroke black -strokewidth 1 -font Times-New-Roman -pointsize 72 -fill DarkViolet -annotate +650+50 'zaLinux.ru' -stroke black -strokewidth 2 -font Times-New-Roman -pointsize 72 -fill DarkViolet -annotate +650+150 'zaLinux.ru' -stroke black -strokewidth 3 -font Times-New-Roman -pointsize 72 -fill DarkViolet -annotate +650+250 'zaLinux.ru' -stroke black -strokewidth 4 -font Times-New-Roman -pointsize 72 -fill DarkViolet -annotate +650+350 'zaLinux.ru' -stroke black -strokewidth 5 -font Times-New-Roman -pointsize 72 -fill DarkViolet -annotate +650+450 'zaLinux.ru' -stroke black -strokewidth 6 -font Times-New-Roman -pointsize 72 -fill DarkViolet -annotate +650+550 'zaLinux.ru' test43.jpg

Как сделать шрифт наклонным, курсивным или косым

С помощью опции -style можно указать стиль шрифта, доступны следующие варианты:

  • Any
  • Italic
  • Normal
  • Oblique

Вывести полный список стилей можно командой:

magick -list style

Результат выполнения команды

magick IMAGE.jpg -style Any -family 'Times New Roman' -pointsize 72 -fill DarkViolet -annotate +650+150 'zaLinux.ru' -style Italic -family 'Times New Roman' -pointsize 72 -fill DarkViolet -annotate +650+250 'zaLinux.ru' -style Normal -family 'Times New Roman' -pointsize 72 -fill DarkViolet -annotate +650+350 'zaLinux.ru' -style Oblique -family 'Times New Roman' -pointsize 72 -fill DarkViolet -annotate +650+450 'zaLinux.ru' test44.jpg

Как поменять цвет фона надписи

Для смены фона используйте опцию -undercolor ЦВЕТ.

Посмотреть имена всех цветов вы можете в разделе Как указать цвет в ImageMagick.

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

magick IMAGE.jpg -undercolor Red -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +650+150 'zaLinux.ru' test45.jpg

Как изменить точку отсчёта координат

В предыдущих командах координаты отсчитывались от левого верхнего угла. С помощью опции -gravity ТИП вы можете выбрать другую область в качестве начала координат.

Доступны следующие значения в качестве ТИПА:

  • None
  • Center
  • East
  • Forget
  • NorthEast
  • North
  • NorthWest
  • SouthEast
  • South
  • SouthWest
  • West

Результат выполнения команды:

magick IMAGE.jpg -gravity None -pointsize 60 -fill DarkViolet -font Liberation-Serif -annotate +0+0 'None' -gravity Center -pointsize 60 -fill DarkViolet -font Liberation-Serif -annotate +0+0 'Center' -gravity East -pointsize 60 -fill DarkViolet -font Liberation-Serif -annotate +0+0 'East' -gravity Forget -pointsize 60 -fill DarkViolet -font Liberation-Serif -annotate +0+0 'Forget' -gravity NorthEast -pointsize 60 -fill DarkViolet -font Liberation-Serif -annotate +0+0 'NorthEast' -gravity North -pointsize 60 -fill DarkViolet -font Liberation-Serif -annotate +0+0 'North' -gravity NorthWest -pointsize 60 -fill DarkViolet -font Liberation-Serif -annotate +0+0 'NorthWest' -gravity SouthEast -pointsize 60 -fill DarkViolet -font Liberation-Serif -annotate +0+0 'SouthEast' -gravity South -pointsize 60 -fill DarkViolet -font Liberation-Serif -annotate +0+0 'South' -gravity SouthWest -pointsize 60 -fill DarkViolet -font Liberation-Serif -annotate +0+0 'SouthWest' -gravity West -pointsize 60 -fill DarkViolet -font Liberation-Serif -annotate +0+0 'West' test46.jpg

Подробности смотрите в разделе Опция -gravity определяет начало координат для Сдвига

Как включить или отключить сглаживание при добавлении надписей

С помощью опций -antialias и +antialias можно включить/выключить отрисовку пикселей сглаживания при рисовании шрифтов и линий.

По умолчанию объекты (например, текст, линии, полигоны и т. д.) сглаживаются при рисовании, то есть опция -antialias используется по умолчанию и указывать её специально не нужно.

Используйте +antialias, чтобы отключить добавление сглаживающих краевых пикселей. Это уменьшит количество цветов, добавляемых к изображению, до тех, которые непосредственно рисуются. То есть при рисовании таких объектов не добавляются смешанные цвета.

В следующей команде включено сглаживание надписи (опция -antialias подразумевается по умолчанию и может быть пропущена):

magick IMAGE.jpg -antialias -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +650+150 'zaLinux.ru' test47.png

В этой команде отключено сглаживание надписи:

magick IMAGE.jpg +antialias -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +650+150 'zaLinux.ru' test48.png

В моих тестах опция +antialias либо не работает с форматом JPG, либо в результате особенностей сжатия этого формата (с потерями) отмена сглаживания незаметна.

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

При включении сглаживания видны переходные пиксели, цвета которых отличаются как от цвета надписи, так и от фона.

Как установить толщину шрифта

С помощью опции -weight можно указать толщину шрифта, которая пытается примениться к семейству шрифтов.

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

Thin		То же самое, что и 100
ExtraLight	То же самое, что и 200
Light		То же самое, что и 300
Normal		То же самое, что и 400
Medium		То же самое, что и 500
DemiBold	То же самое, что и 600
Bold		То же самое, что и 700
ExtraBold	То же самое, что и 800
Heavy		То же самое, что и 900

Полный список вариантов для данной опции вы можете просмотреть командой:

magick -list weight

Пример работы следующей команды

magick IMAGE.jpg -weight 100 -family 'Ubuntu' -pointsize 72 -fill DarkViolet -annotate +500+70 'zaLinux.ru' -weight 300 -family 'Ubuntu' -pointsize 72 -fill DarkViolet -annotate +500+170 'zaLinux.ru' -weight 500 -family 'Ubuntu' -pointsize 72 -fill DarkViolet -annotate +500+270 'zaLinux.ru' -weight 700 -family 'Ubuntu' -pointsize 72 -fill DarkViolet -annotate +500+370 'zaLinux.ru' -weight 900 -family 'Ubuntu' -pointsize 72 -fill DarkViolet -annotate +500+470 'zaLinux.ru' test49.jpg

Как можно понять, в зависимости от указанного «веса» выбирается один из вариантов шрифтов (Light, Normal, Semi-Bold, Bold), который больше всего подходит. Нужно помнить, что не для всех шрифтов существуют версии, поэтому для некоторых шрифтов результат будет одинаковым независимо от того, что указано с опцией -weight.

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

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

С помощью опции -kerning можно указать расстояние между двумя буквами.

Пример выполнения команды

magick IMAGE.jpg -kerning 5 -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +250+70 'zaLinux.ru' -kerning 10 -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +250+160 'zaLinux.ru' -kerning 15 -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +250+250 'zaLinux.ru' -kerning 20 -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +250+340 'zaLinux.ru' -kerning 25 -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +250+430 'zaLinux.ru' -kerning 30 -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +250+520 'zaLinux.ru' test50.jpg

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

С помощью опции -interword-spacing вы можете установить расстояние между двумя словами.

Пример выполнения команды:

magick IMAGE.jpg -interword-spacing 5 -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +50+70 'zaLinux.ru and HackWare.ru' -interword-spacing 20 -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +50+160 'zaLinux.ru and HackWare.ru' -interword-spacing 35 -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +50+250 'zaLinux.ru and HackWare.ru' -interword-spacing 50 -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +50+340 'zaLinux.ru and HackWare.ru' -interword-spacing 65 -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +50+430 'zaLinux.ru and HackWare.ru' -interword-spacing 80 -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +50+520 'zaLinux.ru and HackWare.ru' test51.jpg

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

Как изменить расстояние между строками

С помощью опции -interline-spacing вы можете установить расстояние между двумя строками.

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

magick IMAGE.jpg -interline-spacing -30 -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +50+70 'zaLinux.ru\nand\nHackWare.ru' -interline-spacing 50 -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +550+270 'zaLinux.ru\nand\nHackWare.ru' test52.jpg

Как добавить текст под наклоном на фотографию

Сделать текст наклонным можно с помощью дополнительных аргументов опции -annotate.

Опция может применять со следующим набором аргументов:

  • -annotate ГРАДУСЫ TEXT
  • -annotate X_ГРАДУСЫxY_ГРАДУСЫ TEXT
  • -annotate X_ГРАДУСЫxY_ГРАДУСЫ{+-}tx{+-}ty TEXT
  • -annotate {+-}tx{+-}ty TEXT

В этих строках:

  • ГРАДУСЫ — угол поворота всего текста, без искажений
  • X_ГРАДУСЫ — угол сдвига правого края текста относительно левого края текста
  • Y_ГРАДУСЫ — угол сдвига верхнего края текста относительно нижнего края текста
  • {+-}tx — смещение в пикселях по горизонтали от центра гравитации (по умолчанию от верхнего левого угла)
  • {+-}ty — смещение в пикселях по вертикали от центра гравитации (по умолчанию от верхнего левого угла)
  • TEXT — текст для добавления на изображение

Во всех предыдущих примерах использован только один синтаксис: -annotate {+-}tx{+-}ty TEXT

Пример выполнения команды:

magick IMAGE.jpg -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate 0x0+25+70 '1. zaLinux.ru' -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate 0x50+125+170 '2. zaLinux.ru' -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate 50x0+225+270 '3. zaLinux.ru' -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate 50x30+425+270 '4. zaLinux.ru' -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate 50x+625+270 '5. zaLinux.ru' test53.jpg

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

Как вставить многострочный текст

Многострочный текст можно вставить различными способами. ImageMagick понимает символ «\n» в качестве символа перевода строки:

magick IMAGE.jpg -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +125+270 'zaLinux\n.\nru' test54.jpg

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

magick IMAGE.jpg -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +125+270 'zaLinux
.
ru' test54.jpg

Также можно заранее создать файл с многострочной записью. Если перед записью поставить символ @, то программа попытается найти и прочитать данный файл. В следующей команде надпись на фотографию будет добавлена из файла mytext.txt:

magick IMAGE.jpg -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +125+270 @mytext.txt test54.jpg

Для чтения стандартного ввода используйте конструкцию @-

Результат выполнения команды:

magick IMAGE.jpg -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +125+270 'zaLinux\n.\nru' -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +425+270 'zaLinux
.
ru' -pointsize 72 -fill DarkViolet -font Liberation-Serif -annotate +725+270  @mytext.txt test54.jpg

Как использовать label: и caption: для добавления изображения

Напомним о сущности label: и caption:

  • label: — тип изображения, предназначенный для создания файлов представляющих собой надписи или для добавления надписей на изображения
  • caption: — ещё один тип изображения, отличием от label: является то, что вместо увеличения размера текста до указанного параметра «-size» оно переносит любые длинные строки, которые не вписывается в указанную ширину «-size». То есть длинный текст разбивается на строки.

Пример создания изображения с текстом:

magick -background lightblue -fill DarkViolet -font Utopia-Regular -pointsize 72 label:ZaLinux.ru label.png

Вместо указания размера с помощью опции -pointsize, можно указать размер изображения (ширину и высоту, либо только ширину) с помощью опции -size:

magick -background lightblue -fill DarkViolet -font Utopia-Regular -size 300 label:ZaLinux.ru label-size.png

Можно использовать опции -pointsize и -size одновременно, но тогда размер надписи и изображения могут не совпасть.

Могут использоваться любые из рассмотренных выше опций для установлении свойств шрифта и надписи.

label: и caption: поддерживают многострочный ввод.

Если вы хотите добавить надпись к изображению с помощью label: или caption:, то используйте опции в разделах:

К примеру, следующая команда создаст надпись и добавит её к изображению:

magick IMAGE.jpg \( -background lightblue -fill DarkViolet -font Utopia-Regular -size 1000 label:ZaLinux.ru \) -append test60.jpg

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

magick \( -background lightblue -fill DarkViolet -font Utopia-Regular -size 1000 label:ZaLinux.ru \) IMAGE.jpg -append test61.jpg

Вы можете поместить изображение с надписью в любом месте фотографии, для этого укажите координаты изображения с помощью опции -geometry:

magick IMAGE.jpg \( -background lightblue -fill DarkViolet -font Utopia-Regular -size 400 label:ZaLinux.ru \) -geometry +400+450 -composite test62.jpg

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

magick IMAGE.jpg \( -background lightblue -fill DarkViolet -font Utopia-Regular -size 400 label:ZaLinux.ru \) -gravity South -geometry +0+0 -composite test63.jpg

Эта команда помещает надпись в самый центр фотографии:

magick IMAGE.jpg \( -background lightblue -fill DarkViolet -font Utopia-Regular -size 400 label:ZaLinux.ru \) -gravity Center -geometry +0+0 -composite test64.jpg

Подробности смотрите в разделе Опция -gravity определяет начало координат для Сдвига

Как с помощью label: или caption: добавить надпись без фона

Чтобы добавить надпись без фона с помощью label: или caption: необходимо использовать следующие опции:

  • -transparent white — делает фон прозрачным
  • +antialias — отключает сглаживание, иначе надпись получится с белыми пятнами

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

magick IMAGE.jpg \( -size 320x100 +antialias -fill blue label:'ZaLinux.ru' -transparent white \) -composite test.jpg

Ещё один способ сделать фон полностью прозрачным — изначально указать цвет с полной прозрачностью. О том, как это сделать смотрите в разделе Как указать цвет с прозрачностью.

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

magick IMAGE.jpg \( -background 'rgba(255,255,255,0)' -fill DarkViolet -font Utopia-Regular -size 400 label:ZaLinux.ru \) -gravity South -geometry +0+0 -composite test65.jpg

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

Вы можете использовать цвета с частичной прозрачностью для:

  • добавления текста с прозрачностью на фотографию
  • создания прозрачного фона для добавляемой надписи
  • для добавления водяного знака на изображение

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

Пример команды с использованием частично прозрачного цвета:

magick IMAGE.jpg -pointsize 72 -fill 'rgba(148,0,211,0.5)' -annotate +650+150 'zaLinux.ru' test.jpg

В следующей команде текст с прозрачностью используется для надписи и для фона текста:

magick IMAGE.jpg -undercolor 'rgba(148,0,211,0.1)' -pointsize 72 -fill 'rgba(0,0,128,0.5)' -font Liberation-Serif -annotate +650+450 'zaLinux.ru' test.jpg

Вы также можете использовать прозрачные цвета с label: или caption: (как для фона, так и для надписи), например:

magick IMAGE.jpg \( -background 'rgba(148,0,211,0.1)' -fill 'rgba(0,0,128,0.5)' -font Utopia-Regular -size 400 label:ZaLinux.ru \) -geometry +400+450 -composite test.jpg

Массовое добавление надписи на изображения

Выше показано множество примеров добавления текста с возможностью изменения всех его свойств с помощью программы magick. Но что если нужно добавить текст на десятки или сотни изображений? Данный раздел расскажет, как это сделать.

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

Прежде всего, обратим внимание, что для того, чтобы не указывать каждый файл отдельно, мы будем использовать «Подстановочные символы в имени файла», то есть в качестве входного файла мы укажем «*.jpg».

В качестве выходного файла мы будем использовать «Указание шаблона имени файлов».

Некоторые «свойства» должны быть определены особым образом для использования. Например, только «свойства» с префиксом «filename:» могут использоваться для изменения выходного имени файла изображения.

Создадим директорию «withtext»:

mkdir withtext

Следующая команда поочерёдно считает все файлы .jpg в текущей директории, добавит к каждому из них надпись «zaLinux.ru» и сохранит полученные изображения в директорию «withtext» с прежними именами:

magick *.jpg -stroke black -undercolor Red -strokewidth 3 -font Times-New-Roman -pointsize 72 -fill DarkViolet -annotate +650+500 'zaLinux.ru' -set filename:currentfile '%t' 'withtext/%[filename:currentfile].jpg'

Чтобы вам было проще разобраться, в следующем шаблоне убраны ОПЦИИ ДОБАВЛЕНИЯ ТЕКСТА:

magick *.jpg ОПЦИИ ДОБАВЛЕНИЯ ТЕКСТА -set filename:currentfile '%t' 'withtext/%[filename:currentfile].jpg'

В качестве ОПЦИИ ДОБАВЛЕНИЯ ТЕКСТА использованы следующие:

-stroke black -undercolor Red -strokewidth 3 -font Times-New-Roman -pointsize 72 -fill DarkViolet -annotate +650+500 'zaLinux.ru'

Добавление текста можно комбинировать и с любыми другими операциями, например, следующая команда сжимает все изображения JPEG до 1000 пикселей, добавляет текст с указанными свойствами и сохраняет новые изображения в директорию withtext:

magick *.jpg -scale 1000 -stroke black -undercolor Red -strokewidth 3 -font Times-New-Roman -pointsize 72 -fill DarkViolet -annotate +650+500 'zaLinux.ru' -set filename:currentfile '%t' 'withtext/%[filename:currentfile].jpg'

Как добавить водяной знак на большое количество изображений

В разделе «Как добавить текст с прозрачностью на фотографию. Как сделать полупрозрачный фон для добавляемого текста» показано как добавить прозрачный текст — этот подход можно использовать для добавления водяного знака на большое количество изображений.

Вы также можете сделать обводку текста частично прозрачной (или убрать её вовсе). В следующем примере для обводки (чёрного цвета) и для текста (белого цвета) выбрана прозрачность 0.3:

magick *.jpg -scale 1000 -stroke 'rgba(0,0,0,0.3)' -strokewidth 3 -font Liberation-Serif -pointsize 72 -fill 'rgba(255,255,255,0.3)' -annotate +650+500 'zaLinux.ru' -set filename:currentfile '%t' 'withtext/%[filename:currentfile].jpg'

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

magick *.jpg -scale 1000 -undercolor 'rgba(0,0,0,0.4)' -font Liberation-Serif -pointsize 72 -fill 'rgba(255,255,255,0.4)' -annotate +650+500 'zaLinux.ru' -set filename:currentfile '%t' 'withtext/%[filename:currentfile].jpg'

Как подобрать размер текста и его координаты в зависимости от размера изображения

В ImageMagick есть возможность делать математические вычисления с использованием различных свойств изображения. Математические вычисления можно делать в конструкции %[fx:…].

Условные обозначения различных свойств изображений вы можете посмотреть на этой странице: https://imagemagick.org/script/escape.php

К примеру, ширина в выражении [fx:…] обозначается буквой «w», а высота буквой «h».

Следующее выражение означает ширина, делённая на 2:

%[fx:w/400]

А это выражение означает ширина минус 400 пикселей:

%[fx:w-400]

Эти выражения можно подставлять в качестве координат опции -annotate.

К примеру, следующае опция -annotate добавит надпись на изображение, расположив эту надпись с отступом на 400 пикселей от правой стороны и 25 пикселей от низа картинки:

-annotate +%[fx:w-400]+%[fx:h-25] 'zaLinux.ru'

Пример полной команды:

magick IMAGE.jpg -pointsize 72 -fill 'rgba(148,0,211,0.5)' -annotate +%[fx:w-400]+%[fx:h-25] 'zaLinux.ru' test.jpg

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

Следующая команда аналогична уже рассмотренным, она добавляет надпись на все изображения JPEG в текущей папке и сохраняет их в директорию withtext. Особенностью этой команды является то, что она автоматически рассчитывает расположение текста, размещая его на 400 и 25 пикселей от правого нижнего края:

magick *.jpg -scale 1000 -undercolor 'rgba(0,0,0,0.4)' -font Liberation-Serif -pointsize 72 -fill 'rgba(255,255,255,0.4)' -annotate +%[fx:w-400]+%[fx:h-25] 'zaLinux.ru' -set filename:currentfile '%t' 'withtext/%[filename:currentfile].jpg'

А в этой команде размер шрифта, а также отступ от нижнего правого угла вычисляется автоматически, подстраиваясь под ширину и высоту:

magick *.jpg -scale 1000 -undercolor 'rgba(0,0,0,0.4)' -font Liberation-Serif -pointsize %[fx:w/14] -fill 'rgba(255,255,255,0.4)' -annotate '+%[fx:w-(w/2.5)]+%[fx:h-(h/23)]' 'zaLinux.ru' -set filename:currentfile '%t' 'withtext/%[filename:currentfile].jpg'

Обратите внимание, что выражение для вычисления координат теперь взято в кавычки, поскольку в нём используются скобки. Скобки нужны для указания приоритета выполнения математических операций. А кавычки нужны по той причине, что для оболочки Linux скобки имеют специальное значение и для того, чтобы они вместо интерпретации оболочкой отправлялись непосредственно утилите magick, всё значение опции помещено в кавычки.

В следующей команде установлен новый размер изображений, при этом не нужно менять такие параметры надписи как размер шрифта и координаты её расположения — они вычисляются автоматически исходя из ширины и высоты изображения:

magick *.jpg -scale 2000 -undercolor 'rgba(0,0,0,0.4)' -font Liberation-Serif -pointsize %[fx:w/14] -fill 'rgba(255,255,255,0.4)' -annotate '+%[fx:w-(w/2.5)]+%[fx:h-(h/23)]' 'zaLinux.ru' -set filename:currentfile '%t' 'withtext/%[filename:currentfile].jpg'

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

magick *.jpg -undercolor 'rgba(0,0,0,0.4)' -font Liberation-Serif -pointsize %[fx:w/14] -fill 'rgba(255,255,255,0.4)' -annotate '+%[fx:w-(w/2.5)]+%[fx:h-(h/23)]' 'zaLinux.ru' -set filename:currentfile '%t' 'withtext/%[filename:currentfile].jpg'


 

 

 

 

11. Скрипты ImageMagick

 

12. Использование библиотеки ImageMagick в различных языках программирования

 

 

13. Ошибки при использовании magick (convert) и их устранение

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

magick: no images found for operation…

Следующая команда:

magick -motion-blur 10 IMAGE.jpg OUTPUT.jpg

вызовет ошибку:

magick: no images found for operation `-motion-blur' at CLI arg 1 @ error/operation.c/CLIOption/5414.

Суть ошибки в том, что для указанного оператора не найдены изображения. При этом как вы можете убедиться, в команде указано входное изображение для преобразования (IMAGE.jpg) и указано имя выходного изображения (test.jpg).

Чтобы понять причину ошибки, обратимся к синтаксису команды magick:

magick [ВХОДНЫЕ-ОПЦИИ] ВХОДНОЙ ФАЙЛ [ВЫХОДНЫЕ-ОПЦИИ] ВЫХОДНОЙ ФАЙЛ

То есть утилита magick различает «опции входного файла» и «опции выходного файла». Причём практически все опции являются ВЫХОДНЫМИ-ОПЦИЯМИ. Исключением, то есть ВХОДНЫМИ-ОПЦИЯМИ, являются -antialias, -caption, -density, -define, -encoding, -font, -pointsize, -size и -texture, а также опции из раздела «Разные параметры».

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

magick IMAGE.jpg -motion-blur 10 OUTPUT.jpg

magick: missing output filename `-identify' …

Следующая команда по задумке должна вывести подробную информацию о файле IMAGE.jpg:

magick IMAGE.jpg -identify -verbose

Но вместо этого она выводит ошибку:

magick: missing output filename `-identify' at CLI arg 3 @ error/magick-cli.c/ProcessCommandOptions/524.

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

magick IMAGE.jpg -identify -verbose ANY.jpg

magick: MissingArgument …

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

magick IMAGE.jpg -posterize OUTPUT.jpg

Текст ошибки:

magick: MissingArgument `-posterize' at CLI arg 2 @ fatal/magick-cli.c/ProcessCommandOptions/447.

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

magick IMAGE.jpg -posterize 2 OUTPUT.jpg

magick: unrecognized option `-channel-extract'…

В следующей команде опция помещена между именами файлов, у опции присутствует аргумент:

magick IMAGE.jpg -channel-extract 10 OUTPUT.jpg

Но, тем не менее, выполнение команды завершается ошибкой:

magick: unrecognized option `-channel-extract' at CLI arg 2 @ fatal/magick-cli.c/ProcessCommandOptions/428.

Суть ошибки в том, что опция не распознана. Если опция не распознана, то для начала проверьте правильность её написания. Если опция написана правильно, но при этом не распознана, значит эта опция устарела и была исключена. По моим наблюдениям, справка, выводимая командой

man magick

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

Официальная онлайн справка по опциям magick находится на следующей странице: https://imagemagick.org/script/magick.php

magick: unable to read font `Candice' @ warning/annotate.c/RenderType/1005. (РЕШЕНО)

При выполнении команды с использованием опции -font, например:

magick -background lightblue -fill blue -font Candice -pointsize 72 label:Anthony label.gif

может возникнуть ошибка:

magick: unable to read font `Candice' @ warning/annotate.c/RenderType/1005.

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

Чтобы узнать, какие шрифты присутствуют в вашей системе, используйте следующую опцию:

magick -list font

Почему все файлы сохраняются в один файл (РЕШЕНО)

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

Форматы JPEG и PNG не поддерживает файлы с несколькими изображениями, поэтому рассмотренная проблема не возникает при конвертировании в эти форматы. Но ряд форматов, например, GIF, MIFF, TIFF, PDF, MNG, HEIF и HEIC, поддерживают файлы с несколькими изображениями. В этом случае все изображения по умолчанию будут сохранены в один файл.

Смотрите также: Что такое формат изображения HEIF (или HEIC)?

Например, следующая команда подразумевает конвертацию всех изображений JPEG в текущей папке в формат HEIF:

magick '*.jpg[1000x>]' -set filename:currentfile '%t-%wx%h' 'heif/%[filename:currentfile].heif'

Чтобы сохранять каждое изображение в отдельный файл, добавьте к вашей команде опцию +adjoin, например:

magick '*.jpg[1000x>]' -set filename:currentfile '%t-%wx%h' +adjoin 'heif/%[filename:currentfile].heif'

Опция не работает, но ошибки не показываются

Рассмотрим следующую команду:

magick IMAGE.jpg -rotate 30 -background red test8.jpg

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

Чтобы исправить ошибку, необходимо указать опцию -background первой. Следующая команда сработает именно так, как задумано:

magick IMAGE.jpg -background red -rotate 30 test8.jpg

14. Справочная информация

Все опции команды magick

Использование:

magick [ВХОДНЫЕ-ОПЦИИ] ВХОДНОЙ ФАЙЛ [ВЫХОДНЫЕ-ОПЦИИ] ВЫХОДНОЙ ФАЙЛ

Используйте любые опции или операторы в качестве ВЫХОДНЫХ-ОПЦИЙ. Только ограниченное количество настроек является ВХОДНЫМИ-ОПЦИЯМИ. К ним относятся: -antialias, -caption, -density, -define, -encoding, -font, -pointsize, -size и -texture, а также опции из раздела «Разные параметры» (смотрите ниже).

Опции:

       Настройки изображения:
         -adjoin              объединить изображения в один файл с несколькими изображениями
         -affine matrix       матрица аффинного преобразования
         -antialias           удалить пиксель-алиасинг
         -authenticate ПАРОЛЬ расшифровать изображение с этим паролем
         -background ЦВЕТ     фоновый цвет
         -bias ЗНАЧЕНИЕ       добавить смещение при свёртывании изображения
         -black-point-compensation
                              использовать компенсацию черной точки
         -blue-primary ТОЧКА  chromaticity синяя основная точка
         -bordercolor ЦВЕТ    цвет границы
         -caption СТРОКА      добавить подпись к изображению
         -cdl ИМЯ ФАЙЛА       коррекция цвета со списком цветовых решений
         -colors ЗНАЧЕНИЕ     предпочтительное количество цветов в изображении
         -colorspace ТИП      альтернативное цветовое пространство изображения
         -comment СТРОКА      аннотировать изображение комментарием
         -compose ОПЕРАТОР    установить составной оператор изображения
         -compress ТИП        тип сжатия пикселей при записи изображения
         -decipher ИМЯ ФАЙЛА  зашифрованные пиксели magick в простые пиксели
         -define ФОРМАТ:ОПЦИЯ
                              определить один или несколько параметров формата изображения
         -delay САНТИСЕКУНДЫ  отображать следующее изображение после паузы
         -density ГЕОМЕТРИЯ   горизонтальная и вертикальная плотность изображения
         -depth ЗНАЧЕНИЕ      глубина цвета изображения
         -direction ТИП       отображать текст справа налево или слева направо
         -display СЕРВЕР      получить изображение или шрифт с этого X-сервера
         -dispose МЕТОД       метод удаления слоя
         -dither МЕТОД        применить диффузию ошибок к изображению
         -encipher ИМЯ ФАЙЛА  простые пиксели magick в зашифрованные пиксели
         -encoding ТИП        кодировка текста
         -endian ТИП          порядок байтов (MSB или LSB) изображения
         -family ИМЯ          отображать текст с помощью этого семейства шрифтов
         -fill ЦВЕТ           цвет, используемый при заливке графического примитива
         -filter ТИП          использовать этот фильтр при изменении размера изображения
         -flatten             сгладить последовательность изображений
         -font ИМЯ            визуализировать текст с этим шрифтом
         -format "СТРОКА"     характеристики форматированного выходного изображения
         -fuzz ДИСТАНЦИЯ      цвета в пределах этого расстояния считаются одинаковыми
         -gravity ТИП         горизонтальное и вертикальное размещение текста
         -green-primary ТОЧКА chromaticity зелёная первичная точка
         -intent ТИП          тип цели рендеринга при управлении цветом изображения
         -interlace ТИП       тип схемы чересстрочной развёртки изображения
         -interpolate МЕТОД   метод интерполяции цвета пикселей
         -kerning ЗНАЧЕНИЕ    устанавливает пробел между двумя буквами
         -label СТРОКА        назначить метку для изображения
         -limit ТИП ЗНАЧЕНИЕ  ограничение ресурсов кэша пикселей
         -loop ПОВТОРЕНИЯ     добавить расширение Netscape loop к вашей анимации GIF
         -mask ИМЯ ФАЙЛА      связать маску с изображением
         -matte               сохранить матовый канал, если он есть на изображении
         -mattecolor ЦВЕТ     цвет рамки
         -monitor             следить за прогрессом
         -orient ТИП          ориентация изображения
         -origin ГЕОМЕТРИЯ    источник изображения
         -page ГЕОМЕТРИЯ      размер и расположение холста изображения (настройка)
         -ping                эффективно определять атрибуты изображения
         -pointsize ЗНАЧЕНИЕ  размер шрифта в пунктах
         -preview ТИП         тип изображения предварительного просмотра
         -quality ЗНАЧЕНИЕ    уровень сжатия JPEG/MIFF/PNG
         -quiet               подавить все предупреждающие сообщения
         -red-primary ТОЧКА   chromaticity красная основная точка
         -regard-warnings     обращать внимание на предупреждающие сообщения
         -repage ГЕОМЕТРИЯ    размер и расположение холста изображения
         -sampling-factor ГЕОМЕТРИЯ
                              горизонтальный и вертикальный коэффициент выборки
         -scene ЗНАЧЕНИЕ      номер сцены изображения
         -seed ЗНАЧЕНИЕ       создать новую последовательность псевдослучайных чисел
         -size ГЕОМЕТРИЯ      ширина и высота изображения
         -statistic ТИП ГЕОМЕТРИЯ
                              заменить каждый пиксель соответствующей статистикой из соседства
         -stretch ТИП         визуализировать текст с этим растянутым шрифтом
         -stroke ЦВЕТ         цвет штриха графического примитива
         -strokewidth ЗНАЧ.   ширина штриха графического примитива
         -style ТИП           отображать текст с этим стилем шрифта
         -support ФАКТОР      поддержка изменения размера: > 1.0 размыто, < 1.0 резко
         -synchronize         синхронизировать изображение с устройством хранения
         -taint               объявить изображение измененным
         -texture ИМЯ ФАЙЛА   имя текстуры для наложения на фон изображения
         -tile-offset ГЕОМЕТРИЯ
                              смещение плитки
         -treedepth ЗНАЧЕНИЕ  глубина дерева цвета
         -transparent-color ЦВЕТ
                              прозрачный цвет
         -undercolor ЦВЕТ     цвет ограничивающей рамки аннотации
         -units ТИП           единицы разрешения изображения
         -verbose             распечатать подробную информацию об изображении
         -view                трансформации просмотра FlashPix
         -virtual-pixel МЕТОД
                              метод доступа к виртуальному пикселю
         -weight ТИП          отображать текст с этим типом шрифта
         -white-point ТОЧКА   chromaticity белая точка

       Операторы изображения:
         -adaptive-blur ГЕОМЕТРИЯ
                              адаптивное размытие пикселей; уменьшить эффект вблизи краев
         -adaptive-resize ГЕОМЕТРИЯ
                              адаптивно изменять размер изображения с помощью триангуляции, зависящей от данных
         -adaptive-sharpen ГЕОМЕТРИЯ
                              адаптивная резкость пикселей; эффект увеличения вблизи краёв
         -annotate ГЕОМЕТРИЯ ТЕКСТ
                              аннотировать изображение текстом
         -auto-orient         автоматически ориентировать изображение
         -bilateral-blur ГЕОМЕТРИЯ
                              нелинейный сглаживающий фильтр с сохранением границ и шумоподавлением
         -black-threshold ВЕЛИЧИНА
                              заставить все пиксели ниже порога стать черными
         -blur ГЕОМЕТРИЯ      уменьшить шум изображения и уменьшить уровень детализации
         -border ГЕОМЕТРИЯ    окружить изображение цветной рамкой
         -channel МАСКА       установить маску канала изображения
         -charcoal РАДИУС     имитировать рисунок углем
         -chop ГЕОМЕТРИЯ      удалить пиксели из внутренней части изображения
         -clip                обрезать по первому пути из профиля 8BIM
         -clip-mask ИМЯ ФАЙЛА связать маску обрезки с изображением
         -clip-path ИДЕНТИФИКАТОР        обрезать по именованному пути из профиля 8BIM
         -colorize ЗНАЧЕНИЕ   раскрасить изображение цветом заливки
         -color-matrix МАТРИЦА применить цветокоррекцию к изображению
         -contrast            увеличить или уменьшить контрастность изображения
         -contrast-stretch ГЕОМЕТРИЯ
                              улучшить контраст, «растянув» диапазон интенсивности
         -convolve КОЭФФИЦИЕНТЫ
                              применить ядро свёртки к изображению
         -cycle КОЛИЧЕСТВО    определяет количество позиций, на которое сдвигается каждая запись палитры
         -despeckle           уменьшить пятнышки на изображении
         -draw СТРОКА         аннотировать изображение графическим примитивом
         -edge РАДИУС         применить фильтр для обнаружения краев на изображении
         -emboss РАДИУС       тиснение изображения
         -enhance             применить цифровой фильтр для улучшения шумного изображения
         -equalize            выполнить выравнивание гистограммы изображения
         -evaluate ОПЕРАТОР ЗНАЧЕНИЕ
                              вычислить арифметическое, реляционное или логическое выражение
         -extent ГЕОМЕТРИЯ    установить размер изображения
         -extract ГЕОМЕТРИЯ   извлечь область из изображения
         -fft                 реализует дискретное преобразование Фурье, discrete Fourier transform (DFT)
         -flip                перевернуть изображение по вертикали
         -floodfill ГЕОМЕТРИЯ ЦВЕТ
                              залить изображение цветом
         -flop                перевернуть изображение по горизонтали
         -frame ГЕОМЕТРИЯ     окружить изображение орнаментной рамкой
         -function ИМЯ        применить функцию к изображению
         -gamma ВЕЛИЧИНА      уровень гамма-коррекции
         -gaussian-blur ГЕОМЕТРИЯ
                              уменьшить шум изображения и уменьшить уровень детализации
         -geometry ГЕОМЕТРИЯ  предпочтительный размер или расположение изображения
         -identify            определить формат и характеристики изображения
         -ift                 реализует обратное дискретное преобразование Фурье, discrete Fourier transform (DFT)
         -implode КОЛИЧЕСТВО  взрывать пиксели изображения вокруг центра
         -integral            вычислить сумму значений (значений пикселей) в изображении
         -lat ГЕОМЕТРИЯ       локальное адаптивное пороговое значение
         -layers МЕТОД        оптимизировать или сравнить слои изображения
         -level ЗНАЧЕНИЕ      настроить уровень контрастности изображения
         -linear-stretch ГЕОМЕТРИЯ
                              улучшить контраст, «растянув с насыщением» диапазон интенсивности
         -median ГЕОМЕТРИЯ    применить медианный фильтр к изображению
         -mode ГЕОМЕТРИЯ      сделать каждый пиксель «преобладающим цветом» соседства
         -modulate ЗНАЧЕНИЕ   изменять яркость, насыщенность и оттенок
         -monochrome          преобразовать изображение в чёрно-белое
         -morphology МЕТОД ЯДРО
                              применить метод морфологии к изображению
         -motion-blur ГЕОМЕТРИЯ
                              имитировать размытие движения
         -negate              заменить каждый пиксель его дополнительным цветом
         -noise ГЕОМЕТРИЯ     добавить или уменьшить шум на изображении
         -normalize           преобразовать изображение, чтобы охватить весь диапазон цветов
         -opaque ЦВЕТ         изменить этот цвет на цвет заливки
         -ordered-dither NxN
                              добавить к изображению шаблон шума с определённой амплитудой
         -paint РАДИУС        имитировать картину маслом
         -polaroid УГОЛ       имитировать фото Polaroid
         -posterize УРОВНИ    уменьшить изображение до ограниченного числа цветовых уровней
         -print СТРОКА        интерпретировать строку и вывести на консоль
         -profile ИМЯ ФАЙЛА   добавить, удалить или применить профиль изображения
         -quantize ЦВЕТОВОЕ ПРОСТРАНСТВО уменьшить количество цветов в этом цветовом пространстве
         -radial-blur УГОЛ    радиальное размытие изображения
         -raise ЗНАЧЕНИЕ      осветлить/затемнить края изображения для создания 3D-эффекта
         -random-threshold НИЗ,ВЕРХ
                              случайное пороговое изображение
         -range-threshold ЗНАЧЕНИЯ
                              выполнять жёсткую или мягкую пороговую обработку в пределах некоторого диапазона значений изображения
         -region ГЕОМЕТРИЯ    применить параметры к части изображения
         -render              визуализировать векторную графику
         -resample ГЕОМЕТРИЯ  изменить разрешение изображения
         -resize ГЕОМЕТРИЯ    изменить размер изображения
         -roll ГЕОМЕТРИЯ      перевернуть изображение по вертикали или горизонтали
         -rotate ГРАДУСЫ      применить вращение Паэта к изображению
         -sample ГЕОМЕТРИЯ    масштабировать изображение с попиксельной выборкой
         -scale ГЕОМЕТРИЯ     масштабировать изображение
         -segment ЗНАЧЕНИЯ    сегментировать изображение
         -selective-blur ГЕОМЕТРИЯ
                              выборочно размывать пиксели в пределах контрастного порога
         -sepia-tone ПОРОГ
                              имитировать фотографию в тонах сепии
         -set СВОЙСТВО ВЕЛИЧИНА  установить свойство изображения
         -shade ГРАДУСЫ       заштриховать изображение, используя удалённый источник света
         -shadow ГЕОМЕТРИЯ    имитировать тень изображения
         -sharpen ГЕОМЕТРИЯ   повысить резкость изображения
         -shave ГЕОМЕТРИЯ     сбрить пиксели с краёв изображения
         -shear ГЕОМЕТРИЯ     сдвинуть один край изображения по оси X или Y
         -sigmoidal-contrast ГЕОМЕТРИЯ
                              изменение масштаба яркости с использованием сигмоидального усиления контраста
         -sketch ГЕОМЕТРИЯ    имитировать карандашный набросок
         -solarize ПОРОГ      отрицать все пиксели выше порогового уровня
         -sort-pixels         сортировать каждую строку сканирования в порядке возрастания интенсивности
         -splice ГЕОМЕТРИЯ    вставить цвет фона в изображение
         -spread КОЛИЧЕСТВО   смещать пиксели изображения на случайную величину
         -strip               очистить все профили и комментарии
         -swirl ГРАДУСЫ       вращать пиксели изображения вокруг центра
         -threshold ВЕЛИЧИНА  порог изображения
         -thumbnail ГЕОМЕТРИЯ создать миниатюру изображения
         -tile ИМЯ ФАЙЛА      мозаичное изображение при заливке графического примитива
         -tint ВЕЛИЧИНА       окрасить изображение цветом заливки
         -transform           аффинное преобразование изображения
         -transparent ЦВЕТ    сделать этот цвет прозрачным внутри изображения
         -transpose           перевернуть изображение по вертикали и повернуть на 90 градусов
         -transverse          перевернуть изображение по горизонтали и повернуть на 270 градусов
         -trim                обрезать края изображения
         -type ТИП            тип изображения
         -unique-colors       отбросить всё, кроме одного, любого цвета пикселя
         -unsharp ГЕОМЕТРИЯ   повысить резкость изображения
         -vignette ГЕОМЕТРИЯ  смягчить края изображения в стиле виньетки
         -wave ГЕОМЕТРИЯ      изменить изображение по синусоиде
         -white-threshold ВЕЛИЧИНА
                              заставить все пиксели выше порога стать белыми

       Операторы канала изображения [ВНИМАНИЕ: ЭТИ ОПЦИИ УСТАРЕЛИ!]:
         -channel-extract channel-list
                               извлечь каналы по порядку
         -channel-inject channel-list
                               вводить каналы по порядку
         -channel-swap channel,channel
                               поменять каналы

       Операторы последовательности изображений:
         -affinity ИМЯ ФАЙЛА  преобразовать цвета изображения, чтобы они соответствовали этому набору цветов
         -append              добавить последовательность изображений сверху вниз (используйте +append чтобы стало слева направо)
         -clut                применить таблицу поиска цвета к изображению
         -coalesce            объединить последовательность изображений
         -combine             объединить последовательность изображений
         -composite           составное изображение
         -crop ГЕОМЕТРИЯ      вырезать прямоугольную область изображения
         -deconstruct         разбить последовательность изображений на составные части (устарела)
         -evaluate-sequence ОПЕРАТОР
                              вычислить арифметическое, реляционное или логическое выражение
         -flatten             сгладить последовательность изображений
         -fx ВЫРАЖЕНИЕ        применять математическое выражение к каналу(ам) изображения
         -hald-clut           применить к изображению таблицу поиска цвета Hald
         -morph ВЕЛИЧИНА      трансформировать последовательность изображений
         -mosaic              создать мозаику из последовательности изображений
         -process АРГУМЕНТЫ   обработать изображение с помощью пользовательского фильтра изображения
         -separate            разделить канал изображения на изображение в градациях серогоe
         -smush ГЕОМЕТРИЯ     смешать последовательность изображений вместе
         -write ИМЯ ФАЙЛА     записать изображения в этот файл

       Операторы стека изображений:
         -clone ИНДЕКСЫ       клонировать изображение
         -delete ИНДЕКСЫ      удалить изображение из последовательности изображений
         -duplicate СЧЁТЧИК,ИНДЕКСЫ
                              дублировать изображение один или несколько раз
         -insert ИНДЕКС       вставить последнее изображение в последовательность изображений
         -swap ИНДЕКСЫ        поменять местами два изображения в последовательности изображений

       Разные параметры:
         -debug СОБЫТИЯ       отображать обширную отладочную информацию
         -help                вывести опции программы
         -log ФОРМАТ          формат отладочной информации
         -list ТИП            вывести список поддерживаемых аргументов опции
         -version             напечатать информацию о версии

Подробное описание всех опций: https://imagemagick.org/script/magick.php

Список поддерживаемых форматов и их краткое описание

Условные обозначения:

  • * — встроенная поддержка больших двоичных объектов
  • r — поддержка чтения
  • w — поддержка записи
  • + — поддержка нескольких изображений / многостраничных изображений
Формат Модуль Режим Описание
3FR DNG r-- Hasselblad CFV/H3D39II (0.20.2-Release)
3G2 VIDEO r-- Media Container
3GP VIDEO r-- Media Container
AAI* AAI rw+ AAI Dune image
AI PDF rw- Adobe Illustrator CS2
APNG VIDEO rw+ Animated Portable Network Graphics
ART* ART rw- PFS: 1st Publisher Clip Art
ARW DNG r-- Sony Alpha Raw Image Format (0.20.2-Release)
ASHLAR* ASHLAR -w+ Image sequence laid out in continuous irregular courses
AVI VIDEO r-- Microsoft Audio/Visual Interleaved
AVIF HEIC rw+ AV1 Image File Format (1.12.0)
AVS* AVS rw+ AVS X image
BGR* BGR rw+ Raw blue, green, and red samples
BGRA* BGR rw+ Raw blue, green, red, and alpha samples
BGRO* BGR rw+ Raw blue, green, red, and opacity samples
BIE* JBIG rw- Joint Bi-level Image experts Group interchange format (2.1)
BMP* BMP rw- Microsoft Windows bitmap image
BMP2* BMP rw- Microsoft Windows bitmap image (V2)
BMP3* BMP rw- Microsoft Windows bitmap image (V3)
BRF* BRAILLE -w- BRF ASCII Braille format
CAL* CALS rw- Continuous Acquisition and Life-cycle Support Type 1
CALS* CALS rw- Continuous Acquisition and Life-cycle Support Type 1
CANVAS* XC r-- Constant image uniform color
CAPTION* CAPTION r-- Caption
CIN* CIN rw- Cineon Image File
CIP* CIP -w- Cisco IP phone image format
CLIP* CLIP rw+ Image Clip Mask
CMYK* CMYK rw+ Raw cyan, magenta, yellow, and black samples
CMYKA* CMYK rw+ Raw cyan, magenta, yellow, black, and alpha samples
CR2 DNG r-- Canon Digital Camera Raw Image Format (0.20.2-Release)
CR3 DNG r-- Canon Digital Camera Raw Image Format (0.20.2-Release)
CRW DNG r-- Canon Digital Camera Raw Image Format (0.20.2-Release)
CUBE* CUBE r-- Cube LUT
CUR* ICON rw- Microsoft icon
CUT* CUT r-- DR Halo
DATA* INLINE rw+ Base64-encoded inline images
DCM* DCM r-- Digital Imaging and Communications in Medicine image (Изображения цифровой визуализации и коммуникации в медицине). DICOM используется медицинским сообществом для изображений, таких как рентгеновские снимки. Спецификация «Цифровая визуализация и коммуникация в медицине (DICOM)» доступна по адресу http://medical.nema.org/. В частности, см. часть 5, в которой описывается кодирование изображения (RLE, JPEG, JPEG-LS), и дополнение 61, в котором добавлено кодирование JPEG-2000.
DCR DNG r-- Kodak Digital Camera Raw Image File (0.20.2-Release)
DCRAW DNG r-- Raw Photo Decoder (dcraw) (0.20.2-Release)
DCX* PCX rw+ ZSoft IBM PC multi-page Paintbrush
DDS* DDS rw+ Microsoft DirectDraw Surface
DFONT* TTF r-- Multi-face font package (Freetype 2.12.1)
DJVU* DJVU r-- Deja vu
DNG DNG r-- Digital Negative (0.20.2-Release)
DOT DOT --- Graphviz
DPX* DPX rw- SMPTE 268M-2003 (DPX 2.0)
Digital Moving Picture Exchange Bitmap, Version 2.0.
DXT1* DDS rw+ Microsoft DirectDraw Surface
DXT5* DDS rw+ Microsoft DirectDraw Surface
EPDF PDF rw- Encapsulated Portable Document Format
EPI PS rw- Encapsulated PostScript Interchange format
EPS PS rw- Encapsulated PostScript
EPS2 PS2 -w- Level II Encapsulated PostScript
EPS3 PS3 -w+ Level III Encapsulated PostScript
EPSF PS rw- Encapsulated PostScript
EPSI PS rw- Encapsulated PostScript Interchange format
EPT EPT rw- Encapsulated PostScript with TIFF preview
EPT2 EPT rw- Encapsulated PostScript Level II with TIFF preview
EPT3 EPT rw+ Encapsulated PostScript Level III with TIFF preview
ERF DNG r-- Epson RAW Format (0.20.2-Release)
EXR EXR rw- High Dynamic-range (HDR) (OpenEXR 3.1.5)
FARBFELD* FARBFELD rw- Farbfeld
FAX* FAX rw+ Group 3 FAX. В факсимильных аппаратах используются неквадратные пиксели, ширина которых в 1,5 раза превышает их высоту, но компьютерные дисплеи используют квадратные пиксели, поэтому факсимильные изображения могут казаться узкими, если их размер явно не изменён с использованием геометрии «150×100%».
resized using a geometry of "150×100%".
FF* FARBFELD rw- Farbfeld
FILE* URL r-- Uniform Resource Locator (file://)
FITS* FITS rw- Flexible Image Transport System
FL32* FL32 rw- FilmLight
FLV VIDEO rw+ Flash Video Stream
FRACTAL* PLASMA r-- Plasma fractal image
FTP* URL r-- Uniform Resource Locator (ftp://)
FTS* FITS rw- Flexible Image Transport System
FTXT* FTXT rw- Formatted text image
G3* FAX rw- Group 3 FAX
G4* FAX rw- Group 4 FAX
GIF* GIF rw+ CompuServe graphics interchange format
GIF87* GIF rw- CompuServe graphics interchange format (version 87a)
GRADIENT* GRADIENT r-- Gradual linear passing from one shade to another
GRAY* GRAY rw+ Raw gray samples
GRAYA* GRAY rw+ Raw gray and alpha samples
GROUP4* TIFF rw- Raw CCITT Group4
GV DOT --- Graphviz
HALD* HALD r-- Identity Hald color lookup table image
HDR* HDR rw+ Radiance RGBE image format
HEIC HEIC rw+ High Efficiency Image Format (1.12.0)
HEIF HEIC rw+ High Efficiency Image Format (1.12.0)
HISTOGRAM* HISTOGRAM -w- Histogram of the image
HRZ* HRZ rw- Slow Scan TeleVision
HTM* HTML -w- Hypertext Markup Language and a client-side image map
HTML* HTML -w- Hypertext Markup Language and a client-side image map
HTTP* URL r-- Uniform Resource Locator (http://)
HTTPS* URL r-- Uniform Resource Locator (https://)
ICB* TGA rw- Truevision Targa image
ICO* ICON rw+ Microsoft icon
ICON* ICON rw- Microsoft icon
IIQ DNG r-- Phase One Raw Image Format (0.20.2-Release)
INFO INFO -w+ The image format and characteristics
INLINE* INLINE rw+ Base64-encoded inline images
IPL* IPL rw+ IPL Image Sequence
ISOBRL* BRAILLE -w- ISO/TR 11548-1 format
ISOBRL6* BRAILLE -w- ISO/TR 11548-1 format 6dot
J2C* JP2 rw- JPEG-2000 Code Stream Syntax (2.5.0)
J2K* JP2 rw- JPEG-2000 Code Stream Syntax (2.5.0)
JBG* JBIG rw+ Joint Bi-level Image experts Group interchange format (2.1)
JBIG* JBIG rw+ Joint Bi-level Image experts Group interchange format (2.1)
JNG* PNG rw- JPEG Network Graphics
JNX* JNX r-- Garmin tile format
JP2* JP2 rw- JPEG-2000 File Format Syntax (2.5.0)
JPC* JP2 rw- JPEG-2000 Code Stream Syntax (2.5.0)
JPE* JPEG rw- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.3)
JPEG* JPEG rw- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.3)
JPG* JPEG rw- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.3)
JPM* JP2 rw- JPEG-2000 File Format Syntax (2.5.0)
JPS* JPEG rw- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.3)
JPT* JP2 rw- JPEG-2000 File Format Syntax (2.5.0)
JSON JSON -w+ The image format and characteristics
JXL* JXL rw- JPEG XL (ISO/IEC 18181) (libjxl 0.6.1)
K25 DNG r-- Kodak Digital Camera Raw Image Format (0.20.2-Release)
KDC DNG r-- Kodak Digital Camera Raw Image Format (0.20.2-Release)
KERNEL* KERNEL -w- Morphology Kernel
LABEL* LABEL r-- Image label
M2V VIDEO rw+ MPEG Video Stream
M4V VIDEO rw+ Raw VIDEO-4 Video
MAC* MAC r-- MAC Paint
MAP* MAP rw- Colormap intensities and indices
MASK* MASK rw+ Image Clip Mask
MAT MAT rw+ MATLAB level 5 image format
MATTE* MATTE -w+ MATTE format
MEF DNG r-- Mamiya Raw Image File (0.20.2-Release)
MIFF* MIFF rw+ Magick Image File Format
MKV VIDEO rw+ Multimedia Container
MNG* PNG rw+ Multiple-image Network Graphics (libpng 1.6.37)
MONO* MONO rw- Raw bi-level bitmap
MOV VIDEO rw+ MPEG Video Stream
MP4 VIDEO rw+ VIDEO-4 Video Stream
MPC* MPC rw+ Magick Pixel Cache image format
MPEG VIDEO rw+ MPEG Video Stream
MPG VIDEO rw+ MPEG Video Stream
MRW DNG r-- Sony (Minolta) Raw Image File (0.20.2-Release)
MSL* MSL rw+ Magick Scripting Language
MSVG* SVG rw+ ImageMagick's own SVG internal renderer
MTV* MTV rw+ MTV Raytracing image format
MVG* MVG rw- Magick Vector Graphics
NEF DNG r-- Nikon Digital SLR Camera Raw Image File (0.20.2-Release)
NRW DNG r-- Nikon Digital SLR Camera Raw Image File (0.20.2-Release)
NULL* NULL rw- Constant image of uniform color
ORA ORA r-- OpenRaster format
ORF DNG r-- Olympus Digital Camera Raw Image File (0.20.2-Release)
OTB* OTB rw- On-the-air bitmap
OTF* TTF r-- Open Type font (Freetype 2.12.1)
PAL* UYVY rw- 16bit/pixel interleaved YUV
PALM* PALM rw+ Palm pixmap
PAM* PNM rw+ Common 2-dimensional bitmap format
PANGO* PANGO r-- Pango Markup Language (Pangocairo 1.50.8)
PATTERN* PATTERN r-- Predefined pattern
PBM* PNM rw+ Portable bitmap format (black and white)
PCD* PCD rw- Photo CD
PCDS* PCD rw- Photo CD
PCL PCL rw+ Printer Control Language
PCT* PICT rw- Apple Macintosh QuickDraw/PICT
PCX* PCX rw- ZSoft IBM PC Paintbrush
PDB* PDB rw+ Palm Database ImageViewer Format
PDF PDF rw+ Portable Document Format
PDFA PDF rw+ Portable Document Archive Format
PEF DNG r-- Pentax Electronic File (0.20.2-Release)
PES* PES r-- Embrid Embroidery Format
PFA* TTF r-- Postscript Type 1 font (ASCII) (Freetype 2.12.1)
PFB* TTF r-- Postscript Type 1 font (binary) (Freetype 2.12.1)
PFM* PNM rw+ Portable float format
PGM* PNM rw+ Portable graymap format (gray scale)
PGX* PGX rw- JPEG 2000 uncompressed format
PHM* PNM rw+ Portable half float format
PICON* XPM rw- Personal Icon
PICT* PICT rw- Apple Macintosh QuickDraw/PICT
PIX* PIX r-- Alias/Wavefront RLE image format
PJPEG* JPEG rw- Joint Photographic Experts Group JFIF format (libjpeg-turbo 2.1.3)
PLASMA* PLASMA r-- Plasma fractal image
PNG* PNG rw- Portable Network Graphics (libpng 1.6.37)
PNG00* PNG rw- PNG inheriting bit-depth, color-type from original, if possible
PNG24* PNG rw- opaque or binary transparent 24-bit RGB (zlib 1.2.12)
PNG32* PNG rw- opaque or transparent 32-bit RGBA
PNG48* PNG rw- opaque or binary transparent 48-bit RGB
PNG64* PNG rw- opaque or transparent 64-bit RGBA
PNG8* PNG rw- 8-bit indexed with optional binary transparency
PNM* PNM rw+ Portable anymap
POCKETMOD PDF rw+ Pocketmod Personal Organizer
PPM* PNM rw+ Portable pixmap format (color)
PS PS rw+ PostScript
PS2 PS2 -w+ Level II PostScript
PS3 PS3 -w+ Level III PostScript
PSB* PSD rw+ Adobe Large Document Format
PSD* PSD rw+ Adobe Photoshop bitmap
PTIF* TIFF rw+ Pyramid encoded TIFF
PWP* PWP r-- Seattle Film Works
QOI* QOI rw- Quite OK image format
RADIAL-GRADIENT* GRADIENT r-- Gradual radial passing from one shade to another
RAF DNG r-- Fuji CCD-RAW Graphic File (0.20.2-Release)
RAS* SUN rw+ SUN Rasterfile
RAW DNG r-- Raw (0.20.2-Release)
RGB* RGB rw+ Raw red, green, and blue samples
RGB565* RGB r-- Raw red, green, blue samples in 565 format
RGBA* RGB rw+ Raw red, green, blue, and alpha samples
RGBO* RGB rw+ Raw red, green, blue, and opacity samples
RGF* RGF rw- LEGO Mindstorms EV3 Robot Graphic Format (black and white)
RLA* RLA r-- Alias/Wavefront image
RLE* RLE r-- Utah Run length encoded image
RMF DNG r-- Raw Media Format (0.20.2-Release)
RSVG* SVG rw+ Librsvg SVG renderer (RSVG 2.54.4)
RW2 DNG r-- Panasonic Lumix Raw Image (0.20.2-Release)
SCR* SCR r-- ZX-Spectrum SCREEN$
SCT* SCT r-- Scitex HandShake
SFW* SFW r-- Seattle Film Works
SGI* SGI rw+ Irix RGB image
SHTML* HTML -w- Hypertext Markup Language and a client-side image map
SIX* SIXEL rw- DEC SIXEL Graphics Format
SIXEL* SIXEL rw- DEC SIXEL Graphics Format
SPARSE-COLOR* TXT -w+ Sparse Color
SR2 DNG r-- Sony Raw Format 2 (0.20.2-Release)
SRF DNG r-- Sony Raw Format (0.20.2-Release)
STEGANO* STEGANO r-- Steganographic image
STRIMG* STRIMG rw- String to image and back
SUN* SUN rw+ SUN Rasterfile
SVG* SVG rw+ Scalable Vector Graphics (RSVG 2.54.4)
SVGZ* SVG rw+ Compressed Scalable Vector Graphics (RSVG 2.54.4)
TEXT* TXT r-- Text
TGA* TGA rw- Truevision Targa image
THUMBNAIL* THUMBNAIL -w+ EXIF Profile Thumbnail
TIFF* TIFF rw+ Tagged Image File Format (LIBTIFF, Version 4.4.0)
TIFF64* TIFF rw+ Tagged Image File Format (64-bit) (LIBTIFF, Version 4.4.0)
TILE* TILE r-- Tile image with a texture
TIM* TIM r-- PSX TIM
TM2* TIM2 r-- PS2 TIM2
TTC* TTF r-- TrueType font collection (Freetype 2.12.1)
TTF* TTF r-- TrueType font (Freetype 2.12.1)
TXT* TXT rw+ Text
UBRL* BRAILLE -w- Unicode Text format
UBRL6* BRAILLE -w- Unicode Text format 6dot
UIL* UIL -w- X-Motif UIL table
UYVY* UYVY rw- 16bit/pixel interleaved YUV
VDA* TGA rw- Truevision Targa image
VICAR* VICAR rw- Video Image Communication And Retrieval
VID* VID rw+ Visual Image Directory
VIFF* VIFF rw+ Khoros Visualization image
VIPS* VIPS rw+ VIPS image
VST* TGA rw- Truevision Targa image
WBMP* WBMP rw- Wireless Bitmap (level 0) image
WEBM VIDEO rw+ Open Web Media
WEBP* WEBP rw+ WebP Image Format (libwebp 1.2.2 [020F])
WMF* WMF r-- Windows Meta File
WMV VIDEO rw+ Windows Media Video
WMZ* WMF r-- Compressed Windows Meta File
WPG* WPG r-- Word Perfect Graphics
X* X rw+ X Image
X3F DNG r-- Sigma Camera RAW Picture File (0.20.2-Release)
XBM* XBM rw- X Windows system bitmap (black and white)
XC* XC r-- Constant image uniform color
XCF* XCF r-- GIMP image
XPM* XPM rw- X Windows system pixmap (color)
XPS XPS r-- Microsoft XML Paper Specification
XV* VIFF rw+ Khoros Visualization image
XWD* XWD rw- X Windows system window dump (color)
YAML YAML -w+ The image format and characteristics
YCbCr* YCbCr rw+ Raw Y, Cb, and Cr samples
YCbCrA* YCbCr rw+ Raw Y, Cb, Cr, and alpha samples
YUV* YUV rw- CCIR 601 4:1:1 or 4:2:2

Рекомендуемые статьи:

1 Комментарий

  1. Smith

    Спасибо большое. Очень полезная статья. Хотя пользуюсь Image Magick давно, помогает упорядочить знания.

    Жаль про скрипты пропущено.

Оставить комментарий

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