knowledge/technology/applications/media/ImageMagick.md

138 lines
5.2 KiB
Markdown
Raw Normal View History

2023-12-04 10:02:23 +00:00
---
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.
2024-01-17 08:44:04 +00:00
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%`.
2023-12-04 10:02:23 +00:00
#### `-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
```