Оглавление
1. Как установить ImageMagick со всеми зависимости для поддержки максимального количества форматов
1.2 Установка ImageMagick в Linux
1.3 Как исправить «magick: команда не найдена»
1.4 ImageMagick: использовать команду magick или convert?
2. Структура команды magick (ImageMagick)
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.8 Онлайн-сервис для вывода информации об изображениях
4. Конвертация изображений в любые форматы в Linux
4.1 Как конвертировать картинки в командной строке Linux
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.18 Как сделать изображение светлее. Как увеличить экспозицию
6.19 Как сделать изображение темнее. Как уменьшить экспозицию
7. Наложение и объединение изображений в командной строке Linux (компоновка изображений)
7.1 Как наложить одно изображение на другое
7.2 Как объединить фотографии без наложения
7.3 Объединение фотографий с добавлением пространства между ними
8. Создание и конвертация анимированных GIF и видео файлов
9. Создание изображений с помощью ImageMagick в командной строке
9.1
Как сделать скриншот окна или экрана с помощью magick
Как сделать скриншот веб-страницы
10. Добавление текста на изображения в ImageMagick
10.1 Как в ImageMagick наложить текст на картинку
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.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.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 состоит из
- одно или несколько обязательных имён входных файлов.
- ноль, один или несколько параметров изображения.
- ноль, один или несколько операторов изображения.
- ноль, один или несколько операторов последовательности изображений.
- ноль, один или несколько стеков изображений.
- ноль или одно имя файла выходного изображения
Вы можете найти подробное объяснение каждой из составных частей командной строки в следующих разделах.
Имя входного файла
Входной файл — это исходный файл, с которыми программа будет выполнять различные действия.
Входной файл можно указать различными способами. К тому же, в 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 хочет предоставить их), аргумент геометрии может принимать различные формы. Мы опишем многие из них в этом разделе.
Имейте в виду, что некоторые из опций анализируют свои аргументы немного по-разному. Параметры и настройки изображения, которые принимают форму аргумента геометрии, включают следующее:
- -adaptive-resize
- -border
- -borderwidth
- -chop
- -crop
- -density
- -extent
- -extract
- -frame
- -geometry
- -iconGeometry
- -liquid-rescale
- -page
- -region
- -repage
- -resize
- -sample
- -scale
- -shave
- -splice
- -thumbnail
- -window
Аргумент геометрии может принимать любую из форм, перечисленных в таблице ниже. Они будут описаны более подробно в подразделах, следующих за таблицей. Обычная форма — РАЗМЕР[СМЕЩЕНИЕ], что означает, что размер обязателен, а смещение необязательно. Иногда (для некоторых опций) возможно [РАЗМЕР]СМЕЩЕНИЕ. Ни в коем случае не допускаются пробелы в аргументе геометрии.
Рассмотрим как может быть задана первая, обязательная часть Геометрии, — Размер.
Размер | Общее описание (фактическое поведение может различаться в зависимости от параметров и настроек) |
---|---|
МАСШТАБ% | Высота и ширина масштабируются в указанном проценте. |
МАСШТАБ-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 расширяет концепцию имени выходного файла, кроме указания относительного или абсолютного пути до файла, куда должно быть сохранено изображение, применяются:
- явный формат изображения
- запись в стандартный вывод
- указание шаблона имени файлов
Каждое из этих расширений объясняется в следующих нескольких абзацах.
Если вы не хотите записывать конечное изображение в файл, то используйте вместо имени выходного файла опцию -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 не сработала в первой команде является то, что опции применяются последовательно:
- Вначале применяется оператор изображения -rotate, при этом появившиеся пустые углы заливаются фоном по умолчанию (белым).
- Затем устанавливается новая настройка фона, которая по итогу команды уже ни на что не влияет.
Во второй команде последовательность действие такая:
- Опцией -background устанавливается новый цвет фона (красный).
- Оператором изображения -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
Если вы столкнулись с ошибками, то вам могут помочь статьи:
- Ошибка «convert: attempt to perform an operation not allowed by the security policy `PDF’» (РЕШЕНО)
- Ошибка «convert: attempt to perform an operation not allowed by the security policy `gs’» (РЕШЕНО)
Конвертация 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, то вы можете воспользоваться онлайн конвертацией изображений в любые форматы. Это бесплатный онлайн сервис, вам достаточно указать картинку для конвертации и выбрать желаемый формат нового файла.
Ссылки:
- Онлайн сервис «Универсальный конвертер изображений»: https://suip.biz/ru/?act=convert-any-image
- Зеркало: https://w-e-b.site/?act=convert-any-image
- Онлайн сервис конвертации PDF в JPG: https://suip.biz/ru/?act=convert-pdf-to-jpg
- Онлайн сервис конвертации JPG в PDF: https://suip.biz/ru/?act=convert-jpg-to-pdf
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
Подробности смотрите в справке по опции -distort: https://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 (компоновка изображений)
Как наложить одно изображение на другое
Рассмотрим как сделать наложение картинки на картинку.
Команда наложения одного изображения на другое состоит из трёх основных частей:
- Имя начального изображения, которое будет выполнять роль фона.
- Имя второго изображения, которое будет наложено на первое. Опции Геометрии, а также опция -composite. Данный пункт может быть повторён множество раз, для наложения нескольких изображений на одно.
- Имя выходного файла.
В следующем примере на изображение 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 | 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 | 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 |
rw+ | Portable Document Format | ||
PDFA | 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 | 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 |
Связанные статьи:
- Как узнать уровень качества JPG (РЕШЕНО) (81.5%)
- Ошибки при использовании magick (convert) из пакета ImageMagick и их устранение (72.3%)
- Конвертация изображений в любые форматы в Linux (72.3%)
- Модификация изображений в командной строке Linux (72.3%)
- Как наложить одно изображение на другое в командной строке Linux (компоновка изображений) (72.3%)
- Как монтировать образы дисков для просмотра и редактирования файлов (РЕШЕНО) (RANDOM - 12.4%)
Спасибо большое. Очень полезная статья. Хотя пользуюсь Image Magick давно, помогает упорядочить знания.
Жаль про скрипты пропущено.