knowledge/technology/applications/media/ImageMagick.md
2023-12-04 11:02:23 +01:00

138 lines
No EOL
5.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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
```