Мультимедиа в командной строке/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; поверх изображения, в точке 1624:

    $ 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 
    

См. такжеПравить

ПримечанияПравить

  1. Annotating(англ.) ImageMagick v6 Examples Проверено 2015-04-29 г.
  2. а б Animation Basics(англ.) ImageMagick v6 Examples Проверено 2015-04-16 г.
  3. Command-line Options(англ.) ImageMagick Проверено 2015-04-15 г.
  4. Resizing or Scaling(англ.) ImageMagick v6 Examples Проверено 2015-04-15 г.
  5. Animation Basics(англ.) ImageMagick v6 Examples Проверено 2015-04-15 г.
  6. Montage, Arrays of Images(англ.) ImageMagick v6 Examples Проверено 2015-04-15 г.
  7. Escapes(англ.) ImageMagick Проверено 2015-04-15 г.