В этой статье описана лишь малая часть возможностей ImageMagick, т.к мы хотим лишь познакомить читателя с этим пакетом и дать базовые навыки работы, которые часто нужны в повседневной жизни.
Установка
ImageMagick доступен в репозиториях большинства дистрибутивов. Просто устанавливаем пакет imagemagick через пакетный менеджер.
Для Deb:
apt-get install imagemagick
Для RPM:
yum install imagemagick
Утилиты пакета ImageMagick
Как уже упоминалось, ImageMagick — это не одна программа, а пакет утилит.
В его в состав входят:
animate Создание анимации из группы изображений;
compare Показывает различия между двумя изображениями;
composite Используется для наложение одного изображения на другое;
conjure Выполняет скрипты, написанные на собственном языке "Magick Scripting Language";
convert Используется для различных манипуляций с изображениями;
display Вывод изображения на экран (понятно по названию);
identify Позволяет узнать свойства изображения такие как разрешение, размер и тип;
import Создаёт скриншот;
mogrify Используется аналогично convert, но записывает все изменения в этот же файл.
stream Позволяет получать части от изображения;
Практическое применение некоторых возможностей пакета
Опишем некоторые приёмы обработки изображений при помощи ImageMagick.
Создание анимации
animate -delay значение -loop 0 *
Эта команда создаёт из всех файлов в данной папке анимацию. После выполнения результат работы будет показан в окне. Чтобы сохранить анимацию, раскройте меню, нажав левой кнопкой мыши в области окна вывода анимации, затем выберете Animate > Save и укажите имя файла и выберите желаемый формат.
Значение после аргумента -delay задаёт паузы между кадрами сотых секундах. Например, -delay 100 означает секундную задержку перед показом очередного кадра анимации.
Значение аргумента -loop указывает на то, сколько раз нужно повторить сначала анимацию. Значение -loop 0 задаёт неограниченное количество циклов повторения.
Различия между двумя изображениями
compare изображение1 изображение2 имя_результирующего_изображения
Изображения должны быть одинакового разрешения. Результатом работы программы, грубо говоря, станет изображение, где будет выделены цветом пиксели, которые различны в двух заданных изображениях.
Наложение одного изображения на другое
composite изображение1 изображение2 имя_результирующего_изображения
Накладывает изображение1 на изображение2, результатом работы станет изображение имя_результирующего_изображения.
Вывод изображения на экран
display имя_изображения
Выводит указанное изображение на экран. При нажатии на изображение откроется меню ImageMagick, где можно проводить операции с изображением как в обычном графическом редакторе, так что ImageMagick поддерживает не только текстовый интерфейс.
Информация об изображении
identify изображение1 [изображение 2 ... ]
Позволяет узнать тип, разрешение, глубину цвета, размер и другие параметры указанных изображений.
Создание скриншота
import имя_результирующего_изображения
При вызове программы необходимо мышкой указать прямоугольную область экрана. Результат будет сохранён в имя_результирующего_изображения.
Изменение разрешения изображения
convert -resize ШИРИНАxВЫСОТА изображение изменённое_изображение
Явно задаёт новое разрешение. Пропорциональность сохраняется, даже если введённые значения непропорциональны изначальному разрешению.
convert -resize количество_% изображение изменённое_изображение
Изменения разрешения относительно старого разрешения.
Пример использования:
convert -resize 50% *.png resized.png
Уменьшает разрешение всех изображений с расширением png в папке в два раза. Изменённые изображения будут называться resized-порядковый_номер.
Кадрирование изображения
convert -crop ШИРИНАxВЫСОТА+0+0 изображение имя_результирующего_изображения
Вырезает прямоугольник размера ШИРИНАxВЫСОТА из изображения, начиная с крайнего левого угла. Чтобы сместить точку начала кадрирования нужно задавать координаты точки начала, например 100x100+50+50 — вырежет область размером 100x100 начиная с точки на изображения с координатами x=50 y=50 (эти координаты отсчитываются от крайнего левого угла).
Изменить глубину цвета
convert -depth значение_глубины изображение имя_результирующего_изображения
Склейка изображений в единое
convert * +append имя_результирующего_изображения
Из всех файлов в папке создаёт единое изображение, в котором содержаться все изображения из папки в ряд (опция +append означает добавить изображение в ряд с права).
Добавление цветной рамки вокруг изображения
convert -bordercolor имя_цвета -border размер_бордюра изображение имя_результирующего_изображения
Пример:
convert -bordercolor green -border 3x3
Поворот изображения
convert -rotate +/-градус> изображение имя_результирующего_изображения
"+" указывает на направление по часовой стрелки, а "-" против часовой. ">" разрешает поворачивать только если ширина больше высоты, а "<" наоборот.
Пример:
convert -rotate +90
Было-бы полезно показать на скриншотах результат отработки команд