Introduction to ImageMagick
- ImageMagick® is a software suite to create, edit, and compose bitmap
- images. It can read, convert and write images in a variety of formats
- (over 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG,
- Postscript, SVG, and TIFF. Use ImageMagick to translate, flip, mirror,
- rotate, scale, shear and transform images, adjust image colors, apply various
- special effects, or draw text, lines, polygons, ellipses and Bézier curves.
-
+ ImageMagick® is a software suite to create, edit, compose, or convert
+ bitmap images. It can read and write images in a variety of formats (over
+ 200) including PNG, JPEG, GIF, HEIC, TIFF, DPX, EXR, WebP, Postscript,
+ PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort,
+ shear and transform images, adjust image colors, apply various special
+ effects, or draw text, lines, polygons, ellipses and Bézier curves.
+
The functionality of ImageMagick is typically utilized from the command
line or you can use the features from programs written in your favorite
- programming language. Choose from these interfaces: G2F (Ada), MagickCore
- (C), MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++
- (C++), JMagick (Java), L-Magick (Lisp), NMagick (Neko/haXe), MagickNet
+ language. Choose from these interfaces: G2F (Ada), MagickCore (C),
+ MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++ (C++),
+ JMagick (Java), L-Magick (Lisp), Lua, NMagick (Neko/haXe), Magick.NET
(.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP
(PHP), IMagick (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick
(Tcl/TK). With a language interface, use ImageMagick to modify or create
images dynamically and automagically.
+ ImageMagick utilizes multiple computational threads to increase performance
+ and can read, process, or write mega-, giga-, or tera-pixel image sizes.
+
ImageMagick is free software delivered as a ready-to-run binary distribution
- or as source code that you may freely use, copy, modify, and distribute in
- both open and proprietary applications. It is distributed under an Apache
- 2.0-style license, approved by the OSI.
-
+ or as source code that you may use, copy, modify, and distribute in both open
+ and proprietary applications. It is distributed under a derived Apache 2.0
+ license.
+
The ImageMagick development process ensures a stable API and ABI. Before
each ImageMagick release, we perform a comprehensive security assessment
- that includes memory and thread error detection to help prevent exploits.
+ that includes memory error and thread data race detection to prevent
+ security vulnerabilities.
+
+ The current release is the ImageMagick 7.0.8-* series. It runs on Linux,
+ Windows, Mac Os X, iOS, Android OS, and others.
+
+ The authoritative ImageMagick web site is https://imagemagick.org. The
+ authoritative source code repository is https://github.com/ImageMagick. We
+ maintain a source code mirror at https://gitlab.com/ImageMagick.
+
+ We continue to maintain the legacy release of ImageMagick, version 6,
+ at https://legacy.imagemagick.org.
-Features and Capabilities
+Features and Capabilities
+
Here are just a few examples of what ImageMagick can do:
+
+ * Format conversion: convert an image from one format to another (e.g.
+ PNG to JPEG).
+ * Transform: resize, rotate, deskew, crop, flip or trim an image.
+ * Transparency: render portions of an image invisible.
+ * Draw: add shapes or text to an image.
+ * Decorate: add a border or frame to an image.
+ * Special effects: blur, sharpen, threshold, or tint an image.
+ * Animation: create a GIF animation sequence from a group of images.
+ * Text & comments: insert descriptive or artistic text in an image.
+ * Image gradients: create a gradual blend of one color whose shape is
+ horizontal, vertical, circular, or ellipical.
+ * Image identification: describe the format and attributes of an image.
+ * Composite: overlap one image over another.
+ * Montage: juxtapose image thumbnails on an image canvas.
+ * Generalized pixel distortion: correct for, or induce image distortions
+ including perspective.
+ * Computer vision: Canny edge detection.
+ * Morphology of shapes: extract features, describe shapes and recognize
+ patterns in images.
+ * Motion picture support: read and write the common image formats used in
+ digital film work.
+ * Image calculator: apply a mathematical expression to an image or image
+ channels.
+ * Connected component labeling: uniquely label connected regions in an
+ image.
+ * Discrete Fourier transform: implements the forward and inverse DFT.
+ * Perceptual hash: maps visually identical images to the same or similar
+ hash-- useful in image retrieval, authentication, indexing, or copy
+ detection as well as digital watermarking.
+ * Complex text layout: bidirectional text support and shaping.
+ * Color management: accurate color management with color profiles or in
+ lieu of-- built-in gamma compression or expansion as demanded by the
+ colorspace.
+ * High dynamic-range images: accurately represent the wide range of
+ intensity levels found in real scenes ranging from the brightest direct
+ sunlight to the deepest darkest shadows.
+ * Encipher or decipher an image: convert ordinary images into
+ unintelligible gibberish and back again.
+ * Virtual pixel support: convenient access to pixels outside the image
+ region.
+ * Large image support: read, process, or write mega-, giga-, or
+ tera-pixel image sizes.
+ * Threads of execution support: ImageMagick is thread safe and most
+ internal algorithms are OpenMP-enabled to take advantage of speed-ups
+ offered by multicore processor chips.
+ * Distributed pixel cache: offload intermediate pixel storage to one or
+ more remote servers.
+ * Heterogeneous distributed processing: certain algorithms are
+ OpenCL-enabled to take advantage of speed-ups offered by executing in
+ concert across heterogeneous platforms consisting of CPUs, GPUs, and
+ other processors.
+ * ImageMagick on the iPhone: convert, edit, or compose images on your
+ iPhone or iPad.
+
+ Examples of ImageMagick Usage * https://imagemagick.org/Usage/
+ shows how to use ImageMagick from the command-line to accomplish any
+ of these tasks and much more. Also, see Fred's ImageMagick Scripts @
+ http://www.fmwconcepts.com/imagemagick/: a plethora of command-line scripts
+ that perform geometric transforms, blurs, sharpens, edging, noise removal,
+ and color manipulations. With Magick.NET, use ImageMagick without having
+ to install ImageMagick on your server or desktop.
+
+
+News
+
+ Now that ImageMagick version 7 is released, we continue
+ to maintain the legacy release of ImageMagick, version 6, at
+ https://legacy.imagemagick.org. Learn how ImageMagick version 7 differs
+ from previous versions with our porting guide.
+
+ ImageMagick best practices strongly encourages you to configure a security
+ policy that suits your local environment.
+
+ As an analog to linear (RGB) and non-linear (sRGB) color colorspaces, as
+ of ImageMagick 7.0.7-17, we introduce the LinearGray colorspace. Gray is
+ non-linear grayscale and LinearGray is linear (e.g. -colorspace linear-gray).
- * Format conversion: convert an image from one format to another (e.g. PNG
- to JPEG).
- * Transform: resize, rotate, crop, flip or trim an image.
- * Transparency: render portions of an image invisible.
- * Draw: add shapes or text to an image.
- * Decorate: add a border or frame to an image.
- * Special effects: blur, sharpen, threshold, or tint an image.
- * Animation: create a GIF animation sequence from a group of images.
- * Text & comments: insert descriptive or artistic text in an image.
- * Image identification: describe the format and attributes of an image.
- * Composite: overlap one image over another.
- * Montage: juxtapose image thumbnails on an image canvas.
- * Generalized pixel distortion: correct for, or induce image distortions
- including perspective.
- * Morphology of shapes: extract features, describe shapes and recognize
- patterns in images.
- * Motion picture support: read and write the common image formats used in
- digital film work.
- * Image calculator: apply a mathematical expression to an image or image
- channels.
- * Discrete Fourier transform: implements the forward and inverse DFT.
- * High dynamic-range images: accurately represent the wide range of
- intensity levels found in real scenes ranging from the brightest direct
- sunlight to the deepest darkest shadows.
- * Encipher or decipher an image: convert ordinary images into
- unintelligible gibberish and back again.
- * Virtual pixel support: convenient access to pixels outside the image
- region.
- * Large image support: read, process, or write mega-, giga-, or tera-pixel
- image sizes.
- * Threads of execution support: ImageMagick is thread safe and most
- internal algorithms are OpenMP-enabled to take advantage of speed-ups
- offered by multicore processor chips.
- * Heterogeneous distributed processing: certain algorithms are
- OpenCL-enabled to take advantage of speed-ups offered by executing in
- concert across heterogeneous platforms consisting of CPUs, GPUs, and
- other processors.
- * ImageMagick on the iPhone: convert, edit, or compose images on your
- iPhone.
+ Want more performance from ImageMagick? Try these options:
- Examples of ImageMagick Usage shows how to use ImageMagick from the
- command-line to accomplish any of these tasks and much more. Also,
- see Fred's ImageMagick Scripts: a plethora of command-line scripts that
- perform geometric transforms, blurs, sharpens, edging, noise removal,
- and color manipulations.
+ Add more memory to your system, see the pixel cache; Add more cores to
+ your system, see threads of execution support; push large images to a
+ solid-state drive, see large image support.
+ If these options are prohibitive, you can reduce the quality of the image
+ results. The default build is Q16 HDRI. If you disable HDRI, you use
+ half the memory and instead of predominately floating point operations,
+ you use the typically more efficient integer operations. The tradeoff
+ is reduced precision and you cannot process out of range pixel values
+ (e.g. negative). If you build the Q8 non-HDRI version of ImageMagick,
+ you again reduce the memory requirements in half-- and once again there
+ is a tradeoff, even less precision and no out of range pixel values. For
+ a Q8 non-HDRI build of ImageMagick, use these configure script options:
+ --with-quantum-depth=8 --disable-hdri.