Установка , настройка и работа с ImageMagick на Ubuntu

ImageMagick

ImageMagick — это кроссплатформенный консольный редактор изображений, а точнее набор консольных программ. Конечно же, большинство манипуляций с изображениями позволяют сделать такие графические редакторы как GIMP и Photoshop, но если требуется повторение заданных преобразований множество раз — то ImageMagick подходит как нельзя лучше. На данный момент в статье рассмотрена работа с утилитами convert, montage, identify и composite.

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

Перед установкой устанавливаем зависимости и другие дополнения для данного редактора изображений

$ sudo apt-get update
$ sudo apt-get install build-essential checkinstall libx11-dev libxext-dev zlib1g-dev libpng12-dev libjpeg-dev libfreetype6-dev libxml2-dev
$ sudo apt-get build-dep imagemagick

Далее подгружаем архив с ImageMagick допустим версию 6.8.7-5

$ wget http://www.imagemagick.org/download/ImageMagick-6.8.7-5.tar.gz

Распаковываем скачанный архив

$ tar -xzvf ImageMagick-6.8.7-5.tar.gz

Чтобы посмотреть какие варианты установки данного софта присутствуют в сборке нужно набрать команду

$ ./configure --help

Устанавливаем командой

$ sudo checkinstall

все готово можно пользоваться.

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

$ sudo dpkg -r imagemagick-6.8.7-5

ImageMagick + php

Если вы работаете с php то вам обязательно понадобится поддержка сложной обработки изображений в php c помощью библиотек ImageMagick

Для установки ImageMagick для php вам потребуется ввести команду:

apt-get install imagemagick php5-imagick --no-install-recommends - See more at: http://ibeblog.com/2013/01/21/installing-imagemagick-or-gd-ubuntu-12-04/#sthash.nLoWX8DG.diF6SwFw.dpuf

все готово можете пользоваться на здоровье.

Работа с  с ImageMagick

Использование convert

Здесь описаны лишь некоторые примеры использования утилиты.

 


convert <input_image> <commands> <out_image>
convert ubuntu_logo.png -resize 100% ubuntu_out_logo.jpg

В качестве основных изображений возьмем лого Ubuntu и тукса:

  Установка yui compressor на vps ubuntu 14.04 / 16.04

 

ОпцияПримерОписание
-resize <MMMxNNN>-resize 500×200Изменяем размер изображения в пикселях, с сохранением соотношения сторон
-resize 500Сжатие до 500 пикс. по ширине, с пропорциональным сжатием высоты
-resize x500Сжатие до 500 пикс. по высоте, с пропорциональным сжатием ширины

-resize <MMMxNNN!>-resize 100×50!Изменяем размер изображения в пикселях, без сохранения соотношения сторон

-resize <@PPP>-resize @100Задаем количество пикселей в изображении.
* из изображения 100х100 пикселей, при -resize @100, получим изображение 10х10 пикселей. 10*10 = 100 пикселей

 

-resize <MMM%>-resize 33%Изменяем размер изображения в процентах

-scale <МММ%>-scale 33%Масштабируем. Тоже что и -resize <MMM%> но более быстро, и с худшим качеством

-gravity <type>-gravity CenterЗадаем положение относительно сцены (примеры ниже). North, West, Center, East, South…
*полный список можно получить командой convert -list gravity

FIXME добавить пример для -crop 100×100

-crop <geometry>-crop 100×100+0+0Обрезаем изображение.
* заметьте, что -crop 100×100 не обрежет изображение до 100 на 100 пикселей относительно верхнего левого угла, а нарежет все изображение на кусочки заданного размера. Если у нас было изображение 1000х1000пикс, то мы получим 100 кусочков 100×100.

Примеры:

convert ubuntu_logo.png -gravity Center -crop 100x100+0 out.png

convert ubuntu_logo.png -gravity NorthWest -crop 100x100+0 out.png

-rotate <degrees>-rotate +90Вращаем изображение

* при повороте на градус кратный 90 — изображение будет просто менять ориентацию. А вот при повороте, скажем, на 45 градусов, выйдет что то такое (для контраста, фон сделан черным):

  Почтовый сервер для Ubuntu установка и настройка

Как видите, разрешение изображения увеличилось. Стандартный фон будет белым, но его можно изменить командой -background, в данном случае -background black.

-flipОтражаем по вертикали

-flopОтражаем по горизонтали

-blur radius-blur 10Применяем Гауссово размытие

+append+append logo_gray.png logo.png logo.png logo_out.pngОбъединяем горизонтально. Справа-налево

-append-append logo_gray.png logo.png logo.png logo_out.pngОбъединяем вертикально. Сверху-вниз

-negateИнвертируем цвета изображения

-colorspace <value>-colorspace GrayПереводим изображения в другие цветовые пространства

-depth <value>-depth 8Изменяем разрядности изображения

 

-quality <value>-quality 80Задаем качество выходного изображения (92 — стандартно для jpg, 75 — для png)

 

Использование montage

montage <input_image> <commands> <out_image>

Примеры:

montage *.png -auto-orient  -thumbnail 200x200 -bordercolor Lavender -background black +polaroid -resize 30% -gravity center -background none -extent 80x80 -background white -geometry -10+2  -tile x1  out.png

montage logo.png logo.png logo.png logo.png logo.png logo.png -geometry 100x100+1+1 -background black out.png

 

Использование identify

  • Получение информации о изображении:
identify <commands> <image>
  • Короткая информация о изображении:
identify ubuntu_logo.png
  • Полная информация о изображении:
identify -verbose ubuntu_logo.png

 

Использование composite

Утилита composite накладывает одно изображение на другое следуя заданным параметрам.

composite <commands> <input_image> <out_image>

Для примера создадим изображение с прозрачным фоном и высотой 45 пикселей:

convert -background transparent -pointsize 45 label:'Ubuntu' ubuntu.png

Наложим его на уже имеющиеся изображение:

composite -gravity south ubuntu.png ubuntu_logo.png main.png

 

  Как настроить PhpMyAdmin на NGINX и PHP 7

Примеры

  • Конвертирование всех *.png изображений в *.jpg, и переименование их по шаблону:
convert *.png new%03d.jpg

получим изображения с именами, вида: new000.jpg new001.jpg new002.jpg и тд.

 

  • Ресайз(изменение размеров) всех *.png в папке, до размера 100 пикс. по ширине и с качеством равным 75%:
find . -iregex '.*.png' -exec convert '{}' -resize 100 -quality 75 png:'{}' \;

 

  • Создание gif-анимации:
convert -delay 8 -size 400x400 *.png -loop 0 animation.gif
-delayКоличество смен изображений за секунду (по умолчанию 10 — 100мс)
-loopколичество повторов (0 — неограниченно)

FIXME нужна анимашка

 

  • Отображение готового изображения без сохранения (опция show:):
convert logo.png -resize 100 -quality 75 show:out.jpg

 

  • Скругление краев:
convert logo_negate.png  
          \( +clone -alpha extract -draw 'fill black polygon 0,0 0,15 15,0 fill white circle 15,15 15,0' 
          \( +clone -flip \) -compose Multiply -composite 
          \( +clone -flop \) -compose Multiply -composite \) 
          -alpha off -compose CopyOpacity -composite  rounded_corners.png

 

  • Демотиватор =):
convert logo.png \
          -bordercolor black -border 3   -bordercolor white -border 2 \
          \( -background black -fill white -pointsize 24 \
             label:Ubuntu   -trim +repage \
             -bordercolor black -border 10 \
          \) -gravity South -append \
          -bordercolor black -border 10   -gravity South -chop 0x10 \
          border_framework.png

 

  • Добавление тени:
convert -page +4+4 thumbnail.gif -matte \
          \( +clone -background black -shadow 60x4+4+4 \) +swap \
          -background none -mosaic     shadow_soft.png

 

  • Просмотр списка всех шрифтов в системе:
convert -list font | grep Font

 

3 Комментария (ев)

  1. Где? Где тут хоть слово про установку?! Как же вы задолбали для поисковых роботов статьи писать, а не для людей.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here