Основные команды ImageMagick

ImageMagick — набор утилит командной строки, с помощью которого можно записывать и конвертировать изображения в различных форматах.

Получение версии ImageMagick

C:\ImageMagick\convert -version

Результат:

Version: ImageMagick 7.0.8-10 Q16 x64 2018-08-14 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2018 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Visual C++: 180040629
Features: Cipher DPC HDRI
Delegates (built-in): bzlib cairo flif freetype gslib heic jng jp2 jpeg lcms lqr
lzma openexr pangocairo png ps raw rsvg tiff webp xml zlib

Получение информации об изображении

(утилита identify)

C:\ImageMagick\identify -verbose photo.jpg
C:\ImageMagick\identify -verbose IMG_5377.cr2

Преобразование формата изображения

C:\ImageMagick\convert photo.jpg test.png
C:\ImageMagick\convert photo.jpg test.tiff
C:\ImageMagick\convert photo.jpg test.gif
C:\ImageMagick\convert photo.jpg test.bmp
C:\ImageMagick\convert IMG_5377.cr2 -depth 16 test.tiff

Удаление EXIF из JPEG

(флаг -strip)

C:\ImageMagick\convert -strip -quality 90 photo.jpg test.jpg

Качество и сжатие при сохранении изображения

-quality value JPEG/MIFF/PNG compression level

JPEG и MPEG: качество 1 - низкое качество, 100 - без сжатия

C:\ImageMagick\convert test.tiff -quality 70 test2.jpg

MNG and PNG: сжатие 0 - , 10 - (по умолчанию 7) сжатие всегда без потерь

C:\ImageMagick\convert test.tiff -quality 7 test7.png

Измение размера изображения

Ширина 500, высота пропорциональна

C:\ImageMagick\convert -resize 500x -quality 92 photo.jpg test.jpg

Высота 500, ширина пропорциональна

C:\ImageMagick\convert -resize x500 -quality 92 photo.jpg test.jpg

700x500 с соблюдением пропорций

C:\ImageMagick\convert -resize 700x500 -quality 92 photo.jpg test.jpg

700x300 без соблюдения пропорций

C:\ImageMagick\convert -resize 700x300! -quality 92 photo.jpg test.jpg

Глубина цвета

(флаг -depth)

C:\ImageMagick\convert IMG_5377.cr2 -depth 16 test.tiff
C:\ImageMagick\convert test.tiff -depth 8 test.png
C:\ImageMagick\convert test.tiff test.jpg

Измение разрешения изображения

C:\ImageMagick\convert -density 300 test.jpg 300.jpg
C:\ImageMagick\convert -density 72 test.jpg 72.jpg

Вращение изображения

(флаг -rotate)

90 градусов по часовой стрелке

C:\ImageMagick\convert -rotate 90 -quality 92 test.jpg tests.jpg

90 градусов против часовой стрелки

C:\ImageMagick\convert -rotate "-90" -quality 92 test.jpg tests.jpg

Указание фона

C:\ImageMagick\convert -rotate 30 -quality 92 test.jpg tests.png
C:\ImageMagick\convert -rotate 30 -background blue -quality 92 test.jpg tests.png
C:\ImageMagick\convert -rotate 30 -background transparent -quality 92 test.jpg tests.png

Отражение изображения

По вертикали (флаг -flip)

C:\ImageMagick\convert -flip -quality 92 test.jpg tests.jpg

По горизонтали (флаг -flop)

C:\ImageMagick\convert -flop -quality 92 test.jpg tests.jpg

И по горизонтали и по вертикали

C:\ImageMagick\convert -flip -flop -quality 92 test.jpg tests.jpg

Усиление резкости

(-sharpen)

-sharpen radius

-sharpen radius x sigma

C:\ImageMagick\convert -sharpen 3 -quality 92 test.jpg tests.jpg
C:\ImageMagick\convert -sharpen 6 -quality 92 test.jpg tests.jpg

-unsharp radius

-unsharp radiusxsigma{+gain}{+threshold}

C:\ImageMagick\convert -unsharp 3 -quality 92 test.jpg tests.jpg
C:\ImageMagick\convert -unsharp 6 -quality 92 test.jpg tests.jpg

Размытие

по Гауссу (-gaussian-blur)

-gaussian-blur radius
-gaussian-blur radiusxsigma

Пример:

C:\ImageMagick\convert -gaussian-blur 3 -quality 92 test.jpg tests.jpg
C:\ImageMagick\convert -gaussian-blur 6 -quality 92 test.jpg tests.jpg

В движении

-motion-blur radius
-motion-blur radiusxsigma+angle

Радиальное размытие

-radial-blur angle

Размытие

-selective-blur radius
-selective-blur radiusxsigma{+threshold}

Добавление шума

-noise geometry
+noise type
Gaussian
Impulse
Laplacian
Multiplicative
Poisson
Random
Uniform

C:\ImageMagick\convert -size 500x300 xc: +noise Gaussian -define png:format=png24 canvas5.png

Нормализация

C:\ImageMagick\convert test.jpg -normalize normalize.png

Изменение яркости и констраста

-contrast

+contrast

C:\ImageMagick\convert test.jpg -contrast test2.jpg
C:\ImageMagick\convert test.jpg -contrast -contrast test2.jpg
C:\ImageMagick\convert test.jpg +contrast test2.jpg
C:\ImageMagick\convert test.jpg +contrast +contrast test2.jpg

Яркость и констраст (-100 - +100)

-brightness-contrast brightness
-brightness-contrast brightness{xcontrast}{%}

C:\ImageMagick\convert test.jpg -brightness-contrast +30 test2.jpg
C:\ImageMagick\convert test.jpg -brightness-contrast -30 test2.jpg
C:\ImageMagick\convert test.jpg -brightness-contrast 0x+30 test2.jpg
C:\ImageMagick\convert test.jpg -brightness-contrast 0x-30 test2.jpg

C:\ImageMagick\convert test.jpg -contrast-stretch 0.15x0.05% test2.jpg
C:\ImageMagick\convert test.jpg -normalize test2.jpg

В оттенки серого

(-colorspace Gray)

C:\ImageMagick\convert -colorspace Gray -quality 92 test.jpg tests.jpg

Сепия

C:\ImageMagick\convert -sepia-tone 80% -quality 92 test.jpg tests.jpg

Негатив

C:\ImageMagick\convert test.jpg -negate negate.png

Обрезка

C:\ImageMagick\convert test.jpg -crop 100x150+100+100 norm.png

Запоминает место вырезки

C:\ImageMagick\test>C:\ImageMagick\identify norm.png
norm.png PNG 100x150 500x333+100+100 8-bit sRGB 28102B 0.000u 0:00.046

Чтобы не запоминал

C:\ImageMagick\convert test.jpg -crop 100x150+100+100 +repage norm.png
C:\ImageMagick\test>C:\ImageMagick\identify norm.png
norm.png PNG 100x150 100x150+0+0 8-bit sRGB 28074B 0.000u 0:00.000

Разделение по каналам

C:\ImageMagick\convert test.jpg -colorspace RGB -separate channels_%d.png

channels_0.png (R) channels_1.png (G) channels_2.png (B)

C:\ImageMagick\convert test.jpg -colorspace HSL -separate channels2_%d.png

channels2_0.png (H) channels2_1.png (S) channels2_2.png (L)

C:\ImageMagick\convert test.jpg -colorspace LAB -separate channels3_%d.png

channels3_0.png (L) channels3_1.png (A) channels3_2.png (B)

Сборка из каналов

C:\ImageMagick\convert channels_*.png -set colorspace RGB -combine -colorspace sRGB myimage2.png
C:\ImageMagick\convert channels2_*.png -set colorspace HSL -combine -colorspace sRGB myimage2.png
C:\ImageMagick\convert channels3_*.png -set colorspace LAB -combine -colorspace sRGB myimage2.png

Создание нового изображения

(фон по умолчанию белый)

C:\ImageMagick\convert -size 500x300 canvas:red -define png:format=png24 canvas.png
C:\ImageMagick\convert -size 500x300 xc:#008800 -define png:format=png24 canvas.png

Прозрачный фон

C:\ImageMagick\convert -size 500x300 xc:transparent -define png:format=png32 canvas2.png

Градиент

C:\ImageMagick\convert -size 500x300 gradient: -define png:format=png24 canvas3.png
C:\ImageMagick\convert -size 500x300 radial-gradient: -define png:format=png24 canvas4.png
C:\ImageMagick\convert -size 500x300 xc: +noise Gaussian -define png:format=png24 canvas5.png
C:\ImageMagick\convert -size 500x300 plasma: -define png:format=png24 canvas5.png

Заливка текстурой

C:\ImageMagick\convert -size 500x300 tile:blue.png -define png:format=png24 canvas6.png

Цвет заливки и обводки

-fill none
-fill blue
-fill "#ddddff"
-fill "rgb(255,255,255)"
-stroke white
-strokewidth value

Рисование точек, линий и фигур

-fill white -draw "point 5,30"

Точка

point x,y
C:\ImageMagick\convert canvas.png -fill white -draw "point 5,30" test2.png

Линия

line x0,y0 x1,y1
C:\ImageMagick\convert canvas.png -fill white -draw "line 0,0 200,200" test2.png

Прямоугольник

rectangle x0,y0 x1,y1
C:\ImageMagick\convert canvas.png -fill white -stroke red -draw "rectangle 0,0 200,200" test2.png

Прямоугольник со скругленными углами

roundRectangle x0,y0 x1,y1 wc,hc
C:\ImageMagick\convert canvas.png -fill white -stroke red -draw "roundRectangle 0,0 200,200, 30,30" test2.png

Дуга

arc x0,y0 x1,y1 a0,a1
C:\ImageMagick\convert canvas.png -fill white -stroke red -draw "arc 130,30 200,100 45,180" test2.png

Эллипс

ellipse x0,y0 rx,ry a0,a1
C:\ImageMagick\convert canvas.png -fill white -stroke red -draw "ellipse 100,100 100,50 0,360" test2.png

Круг

circle x0,y0 x1,y1
C:\ImageMagick\convert canvas.png -fill white -stroke red -draw "circle 100,100 150,150" test2.png

Ломаная линия

polyline x0,y0 ... xn,yn
C:\ImageMagick\convert canvas.png -fill white -stroke red -draw "polyline 100,100 150,150, 300,100" test2.png

Многоугольник

polygon x0,y0 ... xn,yn
C:\ImageMagick\convert canvas.png -fill white -stroke red -draw "polygon 100,100 150,150, 300,100" test2.png

Кривая Безье

bezier x0,y0 ... xn,yn
C:\ImageMagick\convert canvas.png -fill white -stroke red -draw "bezier 20,50 45,100 45,0 70,50" test2.png

Вывод изображения

image operator x0,y0 w,h filename
-draw 'image SrcOver 100,100 225,225 image.jpg'

Вывод текста

text x0,y0 string

Привязка

gravity NorthWest, North, NorthEast, West, Center, East, SouthWest, South, or SouthEast

Получение всех шрифтов

(запись в файл)

C:\ImageMagick\convert -list font >fonts.txt

Вывод текста

C:\ImageMagick\convert test.jpg -font Arial -pointsize 30 -fill blue -annotate +5+30 "Привет!" test2.jpg

На черном фоне

C:\ImageMagick\convert test.jpg -font Arial -pointsize 30 -fill white -box black -annotate +5+30 "Привет!" test2.jpg
C:\ImageMagick\convert test.jpg -font Arial -pointsize 30 -fill white -box black -draw "text 5,30 'Привет!'" test2.jpg

If text is of the form '@mytext.txt', the text is read from the file mytext.txt.

-family fontFamily
-style fontStyle
Any, Italic, Normal, Oblique
-weight fontWeight
Thin
    Same as fontWeight = 100.
ExtraLight
    Same as fontWeight = 200.
Light
    Same as fontWeight = 300.
Normal
    Same as fontWeight = 400.
Medium
    Same as fontWeight = 500.
DemiBold
    Same as fontWeight = 600.
Bold
    Same as fontWeight = 700.
ExtraBold
    Same as fontWeight = 800.
Heavy
    Same as fontWeight = 900.
-kerning value
the space between two letters.
-stretch fontStretch

Наложение

C:\ImageMagick\composite -geometry +50+50 blue.png test.jpg norm.png
C:\ImageMagick\convert test.jpg -draw "image SrcOver 50,50 32,32 blue.png" norm.png

Создание GIF-анимации

C:\ImageMagick\convert -delay 100 C:/ImageMagick/1/img_*.png tests.gif
C:\ImageMagick\convert -delay 100 -resize x480 C:/ImageMagick/1/img_*.png tests2.gif
C:\ImageMagick\convert -delay 300 -resize x480 C:/ImageMagick/1/img_*.png tests2.gif

Преобразование GIF-анимации в отдельные кадры

desr_0

C:\ImageMagick\convert tests2.gif desr.png

desr_000000

C:\ImageMagick\convert tests2.gif desr_%06d.png
  Все статьи