forked from openkylin/imagemagick
133 lines
6.9 KiB
Plaintext
133 lines
6.9 KiB
Plaintext
|
Introduction to ImageMagick
|
||
|
|
||
|
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
|
||
|
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 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 error and thread data race detection to prevent
|
||
|
security vulnerabilities.
|
||
|
|
||
|
The current release is the ImageMagick 6.9.11-* series. It runs on Linux,
|
||
|
Windows, Mac Os X, iOS, Android OS, and others.
|
||
|
|
||
|
The authoritative ImageMagick version 6 web site is
|
||
|
https://legacy.imagemagick.org. The authoritative source code repository
|
||
|
is https://github.com/ImageMagick/ImageMagick6. We maintain a source code
|
||
|
mirror at https://gitlab.com/ImageMagick/ImageMagick6.
|
||
|
|
||
|
The design of ImageMagick is an evolutionary process, with the design and
|
||
|
implementation efforts serving to influence and guide further progress in
|
||
|
the other. With ImageMagick version 7 we aim to improve the design based
|
||
|
on lessons learned from the version 6 implementation.
|
||
|
|
||
|
|
||
|
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 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. With Magick.NET, use ImageMagick without having
|
||
|
to install ImageMagick on your server or desktop.
|
||
|
|
||
|
News
|
||
|
|
||
|
ImageMagick version 7 has been released.
|
||
|
|
||
|
ImageMagick best practices strongly encourages you to configure a security
|
||
|
policy that best suits your local environment.
|
||
|
|
||
|
As an analog to linear (RGB) and non-linear (sRGB) color colorspaces, as
|
||
|
of ImageMagick 6.9.9-29, we introduce the LinearGray colorspace. Gray is
|
||
|
non-linear grayscale and LinearGray is linear (e.g. -colorspace linear-gray).
|
||
|
|
||
|
Want more performance from ImageMagick? Try these options:
|
||
|
|
||
|
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. If you instead use a Q8 build,
|
||
|
you use half the memory The tradeoff is reduced precision. For a Q8 build
|
||
|
of ImageMagick, use this configure script option: --with-quantum-depth=8.
|