Мультимедиа в командной строке/ImageMagick
В данном разделе мы рассмотрим примеры использования программ из пакета ImageMagick для выполнения различных преобразований графических данных.
Отличительной особенностью данного пакета является возможность задания командной строкой сложных, многоэтапных преобразований. С другой стороны, поскольку ImageMagick зачастую использует в расчетах 32-разрядное представление цвета (включая прозрачность), обработка графики средствами данного пакета может занимать более продолжительное время, нежели чем при использовании некоторых других программных средств.
Выяснение формата и свойств
правитьОпределить (вывести) формат и основные свойства (разрешение, цветовое пространство, etc.) файла file.xpg:
$ identify file.xpg
То же, но включая метаданные EXIF и подобную информацию:
$ identify -verbose file.xpg
Просмотр
правитьВывести изображение file.xpg на текущий дисплей:
$ display file.xpg
Воспроизвести видеофрагмент, составленный из кадров, хранящихся в файлах file1.xpg и file2.xpg:
$ animate file1.xpg file2.xpg
Простейшие преобразования
правитьПривести изображение input.xpg к формату PNG:
$ convert input.xpg output.png
… То же, но подавив определение выходного формата по суффиксу имени файла:
$ convert input.xpg png:output.any
… Требуя, кроме того, формат TIFF для входного файла (подавляя автоопределение):
$ convert tiff:input.any png:output.any
Добавить подпись label к изображению:[1]
$ montage -geometry +0+0 -label "label" in.xpg out.xpg
… Шрифтом Courier кегля 20 пунктов:
$ montage -geometry +0+0 -font Courier -pointsize 20 -label "label" in.xpg out.xpg
… Цветом navy; поверх изображения, в точке 16, 24:
$ convert -font Courier -pointsize 20 -fill navy -annotate +16+24 "label" in.xpg out.xpg
… С окантовкой цвета white:
$ convert -font Courier -pointsize 20 -stroke white -strokewidth 2 -annotate +16+24 "label" -stroke none -fill navy -annotate +16+24 "label" in.xpg out.xpg
Извлечение фрагмента размера 320×240 пикселей из левого верхнего угла изображения:[2]
$ convert -crop 320x240 in.xpg out.xpg
… Сбрасывая информацию об исходном расположении фрагмента в изображении (в частности для GIF):[2]
$ convert -crop 320x240 +repage in.xpg out.xpg
… Из центра:
$ convert -gravity Center -crop 320x240+0+0 in.xpg out.xpg
Возможны по меньшей мере следующие значения для опции
-gravity
(команда $ convert -list gravity вернет полный список)[3]:NorthWest
(по-умолчанию)North
NorthEast
West
Center
East
SouthWest
South
SouthEast
Масштабирование изображения до размера, умещающегося в прямоугольник 320×240 пикселей:[4]
$ convert -resize 320x240 in.xpg out.zpg
… Подавляя масштабирование в случае, если исходное изображение уже умещается в заданный прямоугольник:
$ convert -resize "320x240>" in.xpg out.zpg
… Требуя масштабирования в точности до указанного размера — даже если это ведет к изменению отношения сторон:
$ convert -resize 320x240! in.xpg out.zpg
Объединение изображений
правитьСоздать анимированный GIF out.gif из трех кадров — in1, in2, in3, с паузой 0.75 с между ними:[5]
$ convert -delay 75 in1 in2 in3 out.gif
Объединить изображения in1, in2, in3 в вертикальный ряд:
$ convert -append in1 in2 in3 out.xpg
… В горизонтальный ряд:
$ convert +append in1 in2 in3 out.xpg
Создать мозаику 2 × 2 из изображений in1, in2 (первая строка), in3, in4 (вторая):[6]
$ montage -tile 2x2 in1 in2 in3 in4 out.xpg
… Предварительно приведя изображения к заданному размеру (
-resize
) — если он превышен. Размер «ячеек» мозаики будет подобран сообразно результирующим размерам изображений (-geometry 100%
).$ montage -resize "192x144>" -tile 2x2 -geometry 100% in1 in2 in3 in4 out.xpg
… Добавив, кроме того, подпись (
-label
), состоящую из имени файла без ведущих директорий и суффикса (%t
):[7]$ montage -resize "192x144>" -tile 2x2 -geometry 100% -label %t in1 in2 in3 in4 out.xpg
См. также
править- http://imagemagick.org/ — домашняя страница проекта.
Примечания
править- ↑ Annotating(англ.) ImageMagick v6 Examples Проверено 2015-04-29 г.
- ↑ а б Animation Basics(англ.) ImageMagick v6 Examples Проверено 2015-04-16 г.
- ↑ Command-line Options(англ.) ImageMagick Проверено 2015-04-15 г.
- ↑ Resizing or Scaling(англ.) ImageMagick v6 Examples Проверено 2015-04-15 г.
- ↑ Animation Basics(англ.) ImageMagick v6 Examples Проверено 2015-04-15 г.
- ↑ Montage, Arrays of Images(англ.) ImageMagick v6 Examples Проверено 2015-04-15 г.
- ↑ Escapes(англ.) ImageMagick Проверено 2015-04-15 г.