---
obj: application
website: https://imagemagick.org
repo: https://github.com/imagemagick/imagemagick
---

# ImageMagick
ImageMagick is a collection of command-line tools that can be used to modify and manipulate images. While many people are used to using graphical user interfaces (GUIs) like [Gimp](images/GIMP.md) or Photoshop to edit images individually, these tools may not always be practical. For instance, if you need to process an image dynamically from a web script or apply the same operations to multiple images, or if you need to repeat a specific operation on the same or different images at different times, using a command-line utility like ImageMagick may be more efficient.

## Usage
```shell
magick tool [ {option} | {image} ... ] {output_image}

magick convert [image] [option]... [output]
```

You can manipulate the image with a chain of options which get executed one by one resulting in a final output image.

### Options
#### `-background color`
This option sets a background color

#### `-black-threshold value{%}`
Force to black all pixels below the threshold while leaving all pixels at or above the threshold unchanged.

The threshold value can be given as a percentage or as an absolute integer value.

#### `-blend geometry`
Blend an image into another by the given absolute value or percent.

Blend will average the images together ('plus') according to the percentages given and each pixels transparency. If only a single percentage value is given it sets the weight of the composite or 'source' image, while the background image is weighted by the exact opposite amount. That is a `-blend 30%` merges 30% of the 'source' image with 70% of the 'destination' image. Thus it is equivalent to `-blend 30x70%`.

#### `-blur radius`
Convolve the image with a Gaussian or normal distribution using the given Sigma value.

#### `-border geometry`
Surround the image with a border of color.

#### `-bordercolor color`
Set the border color.

#### `-borderwidth geometry`
Set the border width.

#### `-brightness-contrast brightness{xcontrast}{%}`
Brightness and Contrast values apply changes to the input image. They are not absolute settings. A brightness or contrast value of zero means no change. The range of values is -100 to +100 on each. Positive values increase the brightness or contrast and negative values decrease the brightness or contrast. To control only contrast, set the brightness=0. To control only brightness, set contrast=0 or just leave it off.

#### `-channel type`
Specify those image color channels to which subsequent operators are limited.

The channels above can also be specified as a comma-separated list or can be abbreviated as a concatenation of the letters 'R', 'G', 'B', 'A', 'O', 'C', 'M', 'Y', 'K'.

#### `-chop geometry`
Remove pixels from the interior of an image.

#### `-colorize value`
Colorize the image by an amount specified by value using the color specified by the most recent `-fill` setting.

Specify the amount of colorization as a percentage. Separate colorization values can be applied to the red, green, and blue channels of the image with a comma-delimited list of colorization values (e.g., `-colorize 0,0,50`).

#### `-composite`
Take the first image 'destination' and overlay the second 'source' image. The location of the 'source' or 'overlay' image is controlled according to `-gravity`, and `-geometry` settings.

#### `-contrast`
Enhance or reduce the image contrast.

#### `-copy geometry offset`
Copy pixels from one area of an image to another.

#### `-crop geometry{@}{!}`
Cut out one or more rectangular regions of the image.

#### `-draw string`
Annotate an image with one or more graphic primitives.

The shape primitives:
- `point x,y`
- `line x0,y0 x1,y1`
- `rectangle x0,y0 x1,y1`
- `roundRectangle x0,y0 x1,y1 wc,hc`
- `arc x0,y0 x1,y1 a0,a1`
- `ellipse x0,y0 rx,ry a0,a1`
- `circle x0,y0 x1,y1`
- `polyline x0,y0 ... xn,yn`
- `polygon x0,y0 ... xn,yn`
- `bezier x0,y0 ... xn,yn`
- `image operator x0,y0 w,h filename`

#### `-extract geometry`
Extract the specified area from image.

#### `-fill color`
Color to use when filling a graphic primitive.

#### `-flip`
Create a mirror image
reflect the scanlines in the vertical direction. The image will be mirrored upside-down.

#### `-flop`
Create a mirror image.
Reflect the scanlines in the horizontal direction, just like the image in a vertical mirror.

#### `-gaussian-blur radius`
Blur the image with a Gaussian operator.

#### `-geometry geometry`
Set the preferred size and location of the image.

#### `-gravity type`
Sets the current gravity suggestion for various other settings and options.

Choices include: `NorthWest`, `North`, `NorthEast`, `West`, `Center`, `East`, `SouthWest`, `South`, `SouthEast`.

#### `-negate`
Replace each pixel with its complementary color.

#### `-region geometry`
Set a region in which subsequent operations apply.

#### `-resize geometry`
Resize an image.

#### `-size width[xheight][+offset]`
Set the width and height of the image.

#### `-sort-pixels`
sorts pixels within each scanline in ascending order of intensity.

#### `-stroke color`
Color to use when stroking a graphic primitive.

#### `-strokewidth value`
Set the stroke width.

### Composite images
```shell
magick composite -geometry +100+200 overlay.png input.jpg output.jpg
```