cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame] | 1 | Introduction to ImageMagick |
| 2 | |
cristy | e68f599 | 2015-03-03 17:44:51 +0000 | [diff] [blame] | 3 | ImageMagick® is a software suite to create, edit, compose, or convert |
| 4 | bitmap images. It can read and write images in a variety of formats (over |
| 5 | 200) including PNG, JPEG, JPEG-2000, GIF, TIFF, DPX, EXR, WebP, Postscript, |
cristy | 4fa1433 | 2015-06-06 18:23:08 +0000 | [diff] [blame] | 6 | PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, |
cristy | e68f599 | 2015-03-03 17:44:51 +0000 | [diff] [blame] | 7 | shear and transform images, adjust image colors, apply various special |
| 8 | effects, or draw text, lines, polygons, ellipses and Bézier curves. |
cristy | a141093 | 2010-11-06 18:16:16 +0000 | [diff] [blame] | 9 | |
cristy | c1c6166 | 2009-09-30 14:04:37 +0000 | [diff] [blame] | 10 | The functionality of ImageMagick is typically utilized from the command |
| 11 | line or you can use the features from programs written in your favorite |
cristy | 4fa1433 | 2015-06-06 18:23:08 +0000 | [diff] [blame] | 12 | language. Choose from these interfaces: G2F (Ada), MagickCore (C), |
| 13 | MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++ (C++), |
| 14 | JMagick (Java), L-Magick (Lisp), Lua, NMagick (Neko/haXe), Magick.NET |
cristy | c1c6166 | 2009-09-30 14:04:37 +0000 | [diff] [blame] | 15 | (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP |
| 16 | (PHP), IMagick (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick |
| 17 | (Tcl/TK). With a language interface, use ImageMagick to modify or create |
| 18 | images dynamically and automagically. |
cristy | ed8d54c | 2015-05-25 13:48:40 +0000 | [diff] [blame] | 19 | |
dirk | b8dc624 | 2015-06-06 11:09:29 +0000 | [diff] [blame] | 20 | ImageMagick utilizes multiple computational threads to increase performance |
cristy | ed8d54c | 2015-05-25 13:48:40 +0000 | [diff] [blame] | 21 | and can read, process, or write mega-, giga-, or tera-pixel image sizes. |
cristy | a141093 | 2010-11-06 18:16:16 +0000 | [diff] [blame] | 22 | |
cristy | c1c6166 | 2009-09-30 14:04:37 +0000 | [diff] [blame] | 23 | ImageMagick is free software delivered as a ready-to-run binary distribution |
cristy | 4fa1433 | 2015-06-06 18:23:08 +0000 | [diff] [blame] | 24 | or as source code that you may use, copy, modify, and distribute in both open |
| 25 | and proprietary applications. It is distributed under the Apache 2.0 license. |
cristy | a141093 | 2010-11-06 18:16:16 +0000 | [diff] [blame] | 26 | |
cristy | 1bd5c4d | 2010-06-11 13:55:20 +0000 | [diff] [blame] | 27 | The ImageMagick development process ensures a stable API and ABI. Before |
| 28 | each ImageMagick release, we perform a comprehensive security assessment |
cristy | 4fa1433 | 2015-06-06 18:23:08 +0000 | [diff] [blame] | 29 | that includes memory error and thread data race detection to prevent |
| 30 | security vulnerabilities. |
cristy | c1c6166 | 2009-09-30 14:04:37 +0000 | [diff] [blame] | 31 | |
Cristy | 916b65e | 2015-08-24 17:17:00 -0400 | [diff] [blame] | 32 | ImageMagick is available from |
Cristy | 4b5bb7b | 2017-01-21 12:42:22 -0500 | [diff] [blame] | 33 | https://www.imagemagick.org/script/download.php. It runs on Linux, Windows, |
| 34 | Mac Os X, iOS, Android OS, and others. |
cristy | e68f599 | 2015-03-03 17:44:51 +0000 | [diff] [blame] | 35 | |
cristy | 4fa1433 | 2015-06-06 18:23:08 +0000 | [diff] [blame] | 36 | The authoritative ImageMagick web site is |
Cristy | 6459959 | 2016-11-04 22:32:09 -0400 | [diff] [blame] | 37 | https://www.imagemagick.org. The authoritative source code repository is |
dirk | 398f386 | 2015-08-09 13:03:21 +0200 | [diff] [blame] | 38 | http://git.imagemagick.org/repos/ImageMagick/. |
cristy | e68f599 | 2015-03-03 17:44:51 +0000 | [diff] [blame] | 39 | |
| 40 | |
cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame] | 41 | Features and Capabilities |
cristy | a141093 | 2010-11-06 18:16:16 +0000 | [diff] [blame] | 42 | |
cristy | c1c6166 | 2009-09-30 14:04:37 +0000 | [diff] [blame] | 43 | Here are just a few examples of what ImageMagick can do: |
cristy | a141093 | 2010-11-06 18:16:16 +0000 | [diff] [blame] | 44 | |
| 45 | * Format conversion: convert an image from one format to another (e.g. |
| 46 | PNG to JPEG). |
cristy | a06a5a8 | 2015-06-08 22:43:28 +0000 | [diff] [blame] | 47 | * Transform: resize, rotate, deskew, crop, flip or trim an image. |
cristy | a141093 | 2010-11-06 18:16:16 +0000 | [diff] [blame] | 48 | * Transparency: render portions of an image invisible. |
| 49 | * Draw: add shapes or text to an image. |
| 50 | * Decorate: add a border or frame to an image. |
| 51 | * Special effects: blur, sharpen, threshold, or tint an image. |
| 52 | * Animation: create a GIF animation sequence from a group of images. |
| 53 | * Text & comments: insert descriptive or artistic text in an image. |
Cristy | 7146ae8 | 2016-02-10 14:30:46 -0500 | [diff] [blame] | 54 | * Image gradients: create a gradual blend of one color whose shape is |
Cristy | a578020 | 2015-10-20 19:27:08 -0400 | [diff] [blame] | 55 | horizontal, vertical, circular, or ellipical. |
cristy | a141093 | 2010-11-06 18:16:16 +0000 | [diff] [blame] | 56 | * Image identification: describe the format and attributes of an image. |
| 57 | * Composite: overlap one image over another. |
| 58 | * Montage: juxtapose image thumbnails on an image canvas. |
| 59 | * Generalized pixel distortion: correct for, or induce image distortions |
| 60 | including perspective. |
cristy | 698968d | 2014-04-11 16:39:25 +0000 | [diff] [blame] | 61 | * Computer vision: Canny edge detection. |
cristy | a141093 | 2010-11-06 18:16:16 +0000 | [diff] [blame] | 62 | * Morphology of shapes: extract features, describe shapes and recognize |
| 63 | patterns in images. |
| 64 | * Motion picture support: read and write the common image formats used in |
| 65 | digital film work. |
| 66 | * Image calculator: apply a mathematical expression to an image or image |
| 67 | channels. |
cristy | 4bc91a1 | 2014-12-27 01:45:49 +0000 | [diff] [blame] | 68 | * Connected component labeling: uniquely label connected regions in an |
| 69 | image. |
cristy | a141093 | 2010-11-06 18:16:16 +0000 | [diff] [blame] | 70 | * Discrete Fourier transform: implements the forward and inverse DFT. |
cristy | df6cf21 | 2014-01-29 18:06:41 +0000 | [diff] [blame] | 71 | * Perceptual hash: maps visually identical images to the same or similar |
cristy | eab3d61 | 2014-01-29 18:09:51 +0000 | [diff] [blame] | 72 | hash-- useful in image retrieval, authentication, indexing, or copy |
| 73 | detection as well as digital watermarking. |
Cristy | 7146ae8 | 2016-02-10 14:30:46 -0500 | [diff] [blame] | 74 | * Complex text layout: bidirectional text support and shaping. |
cristy | 4800243 | 2014-01-29 15:31:47 +0000 | [diff] [blame] | 75 | * Color management: accurate color management with color profiles or in |
| 76 | lieu of-- built-in gamma compression or expansion as demanded by the |
| 77 | colorspace. |
cristy | a141093 | 2010-11-06 18:16:16 +0000 | [diff] [blame] | 78 | * High dynamic-range images: accurately represent the wide range of |
| 79 | intensity levels found in real scenes ranging from the brightest direct |
| 80 | sunlight to the deepest darkest shadows. |
| 81 | * Encipher or decipher an image: convert ordinary images into |
| 82 | unintelligible gibberish and back again. |
| 83 | * Virtual pixel support: convenient access to pixels outside the image |
| 84 | region. |
| 85 | * Large image support: read, process, or write mega-, giga-, or |
| 86 | tera-pixel image sizes. |
| 87 | * Threads of execution support: ImageMagick is thread safe and most |
| 88 | internal algorithms are OpenMP-enabled to take advantage of speed-ups |
| 89 | offered by multicore processor chips. |
cristy | 37aa559 | 2013-01-27 22:59:34 +0000 | [diff] [blame] | 90 | * Distributed pixel cache: offload intermediate pixel storage to one or |
| 91 | more remote servers. |
cristy | a141093 | 2010-11-06 18:16:16 +0000 | [diff] [blame] | 92 | * Heterogeneous distributed processing: certain algorithms are |
| 93 | OpenCL-enabled to take advantage of speed-ups offered by executing in |
| 94 | concert across heterogeneous platforms consisting of CPUs, GPUs, and |
| 95 | other processors. |
| 96 | * ImageMagick on the iPhone: convert, edit, or compose images on your |
cristy | 4fa1433 | 2015-06-06 18:23:08 +0000 | [diff] [blame] | 97 | iPhone or iPad. |
cristy | a141093 | 2010-11-06 18:16:16 +0000 | [diff] [blame] | 98 | |
cristy | 4fa1433 | 2015-06-06 18:23:08 +0000 | [diff] [blame] | 99 | Examples of ImageMagick Usage shows how to use ImageMagick from the |
| 100 | command-line to accomplish any of these tasks and much more. Also, |
| 101 | see Fred's ImageMagick Scripts: a plethora of command-line scripts that |
| 102 | perform geometric transforms, blurs, sharpens, edging, noise removal, |
| 103 | and color manipulations. With Magick.NET, use ImageMagick without having |
| 104 | to install ImageMagick on your server or desktop. |
cristy | 4bc91a1 | 2014-12-27 01:45:49 +0000 | [diff] [blame] | 105 | |