ImageMagick
Encyclopedia
ImageMagick is an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 software suite
Software suite
A software suite or application suite is a collection of computer programs, usually application software and programming software of related functionality, often sharing a more-or-less common user interface and some ability to smoothly exchange data with each other.Sometimes software makers...

 for displaying, converting, and editing
Image editing
Image editing encompasses the processes of altering images, whether they be digital photographs, traditional analog photographs, or illustrations. Traditional analog image editing is known as photo retouching, using tools such as an airbrush to modify photographs, or editing illustrations with any...

 raster image
Raster graphics
In computer graphics, a raster graphics image, or bitmap, is a data structure representing a generally rectangular grid of pixels, or points of color, viewable via a monitor, paper, or other display medium...

 files. It can read and write over 100 image file formats
Image file formats
Image file formats are standardized means of organizing and storing digital images. Image files are composed of either pixels, vector data, or a combination of the two. Whatever the format, the files are rasterized to pixels when displayed on most graphic displays...

. ImageMagick is licensed under the Apache 2.0
Apache License
The Apache License is a copyfree free software license authored by the Apache Software Foundation . The Apache License requires preservation of the copyright notice and disclaimer....

 license.

Features and capabilities

The software mainly consists of a number of command-line interface
Command-line interface
A command-line interface is a mechanism for interacting with a computer operating system or software by typing commands to perform specific tasks...

 utilities for manipulating images. ImageMagick does not have a GUI
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

-based interface to edit images, as do Adobe Photoshop
Adobe Photoshop
Adobe Photoshop is a graphics editing program developed and published by Adobe Systems Incorporated.Adobe's 2003 "Creative Suite" rebranding led to Adobe Photoshop 8's renaming to Adobe Photoshop CS. Thus, Adobe Photoshop CS5 is the 12th major release of Adobe Photoshop...

 and GIMP
GIMP
GIMP is a free software raster graphics editor. It is primarily employed as an image retouching and editing tool and is freely available in versions tailored for most popular operating systems including Microsoft Windows, Apple Mac OS X, and Linux.In addition to detailed image retouching and...

, but instead modifies existing images as directed by various command-line parameters. Nevertheless, ImageMagick also includes an X Window graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 for rendering and manipulating images called IMDisplay and API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 libraries for many programming languages. The program uses magic numbers
Magic number (programming)
In computer programming, the term magic number has multiple meanings. It could refer to one or more of the following:* A constant numerical or text value used to identify a file format or protocol; for files, see List of file signatures...

 to identify image file format
File format
A file format is a particular way that information is encoded for storage in a computer file.Since a disk drive, or indeed any computer storage, can store only bits, the computer must have some way of converting information to 0s and 1s and vice-versa. There are different kinds of formats for...

s.

A number of programs, such as MediaWiki
MediaWiki
MediaWiki is a popular free web-based wiki software application. Developed by the Wikimedia Foundation, it is used to run all of its projects, including Wikipedia, Wiktionary and Wikinews. Numerous other wikis around the world also use it to power their websites...

, phpBB
PhpBB
phpBB is a popular Internet forum package written in the PHP scripting language. The name "phpBB" is an abbreviation of PHP Bulletin Board...

, and vBulletin
VBulletin
vBulletin is a proprietary Internet forum software produced by Jelsoft Enterprises and vBulletin Solutions, both subsidiaries of Internet Brands. It is written in PHP and uses a MySQL database server.-History:...

, can use ImageMagick to create image thumbnail
Thumbnail
Thumbnails are reduced-size versions of pictures, used to help in recognizing and organizing them, serving the same role for images as a normal text index does for words...

s if it is installed. ImageMagick is also used by other programs, such as LyX
LyX
LyX is a document processor following the self-coined "what you see is what you mean" paradigm , as opposed to the WYSIWYG ideas used by word processors...

, for converting images.

ImageMagick has a fully integrated Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

 API called PerlMagick, as well as many other APIs.

File format conversion

One of the basic and thoroughly-implemented features of ImageMagick is its ability to efficiently and accurately convert images between different file formats.

Color quantization

The number of colors in an image can be reduced to an arbitrary number and this is done by intelligently weighing the most prominent color values present among the pixels of the image. Note that many other image handling applications do not support a color palette of an arbitrary number of colors. If, for example, one reduces an image to 13 colors via ImageMagick, some applications will open it but some will regard it as corrupted.

A related capability is the posterization
Posterization
Posterization of an image entails conversion of a continuous gradation of tone to several regions of fewer tones, with abrupt changes from one tone to another. This was originally done with photographic processes to create posters...

 artistic effect, which also reduces the number of colors represented in an image. The difference between this and standard color quantization is that while in standard quantization the final palette is selected based upon a weighting of the prominence of existing colors in the image, posterization creates a palette of colors smoothly distributed across the spectrum represented in the image. Whereas with standard color quantization all of the final color values are ones that were in the original image, the color values in a posterized image may not have been present in the original image but are in between the original color values.

Dithering

A fine control is provided for the dithering that occurs during color and shading alterations, including the ability to generate halftone
Halftone
Halftone is the reprographic technique that simulates continuous tone imagery through the use of dots, varying either in size, in shape or in spacing...

 dithering.

Liquid rescaling

Recently support for seam carving
Seam carving
Seam carving , is an algorithm for image resizing, developed by Shai Avidan, of Mitsubishi Electric Research Labs , and Ariel Shamir, of the Interdisciplinary Center and MERL...

 (content-aware image resizing) ("liquid rescaling" of images) has been added. This feature allows, for example, rescaling
Aspect ratio (image)
The aspect ratio of an image is the ratio of the width of the image to its height, expressed as two numbers separated by a colon. That is, for an x:y aspect ratio, no matter how big or small the image is, if the width is divided into x units of equal length and the height is measured using this...

 4:3 images into 16:9 images without distorting the image.

Artistic effects

ImageMagick includes a variety of filters and features intended to create artistic effects:
  • Charcoal Sketch Transform
  • Posterization
    Posterization
    Posterization of an image entails conversion of a continuous gradation of tone to several regions of fewer tones, with abrupt changes from one tone to another. This was originally done with photographic processes to create posters...


OpenCL

ImageMagick can use OpenCL
OpenCL
OpenCL is a framework for writing programs that execute across heterogeneous platforms consisting of CPUs, GPUs, and other processors. OpenCL includes a language for writing kernels , plus APIs that are used to define and then control the platforms...

 to use an accelerated graphics card (GPU) for processing.

Other

Below are just a few other examples of what ImageMagick can do:
  • 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.

Distribution

ImageMagick is cross-platform
Cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...

, and runs on Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 and Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

 systems including Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, Solaris, and FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...

. The project's source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 can be compiled for other systems, including AmigaOS 4.0
AmigaOS 4
AmigaOS 4, , is a line of Amiga operating systems which runs on PowerPC microprocessors. It is mainly based on AmigaOS 3.1 source code, and partially on version 3.9 developed by Haage & Partner...

 and MorphOS
MorphOS
MorphOS is an Amiga-compatible computer operating system. It is a mixed proprietary and open source OS produced for the Pegasos PowerPC processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the...

.

Related software

GraphicsMagick
GraphicsMagick
GraphicsMagick is a fork of ImageMagick, emphasizing stability of both programming API and command-line options. It was branched off ImageMagick's version 5.5.2 in 2002 after irreconcilable differences emerged in the developers' group....

 is a fork
Fork (software development)
In software engineering, a project fork happens when developers take a legal copy of source code from one software package and start independent development on it, creating a distinct piece of software...

 of ImageMagick 5.5.2 made in 2002, emphasizing the cross-release stability of the programming API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 and user interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...

. GraphicsMagick emerged after irreconcilable differences emerged in the developers' group.

See also

  • GraphicsMagick
    GraphicsMagick
    GraphicsMagick is a fork of ImageMagick, emphasizing stability of both programming API and command-line options. It was branched off ImageMagick's version 5.5.2 in 2002 after irreconcilable differences emerged in the developers' group....

  • DevIL
    DevIL
    Developer's Image Library or DevIL , started by Denton Woods, is a cross-platform image library which aims to provide a common API for different image file formats...

  • GD Graphics Library
    GD Graphics Library
    The GD Graphics Library is a graphics software library by Thomas Boutell and others for dynamically manipulating images. Its native programming language is ANSI C, but it has interfaces for many other programming languages. It can create GIFs, JPEGs, PNGs, and WBMPs...

  • Netpbm
    Netpbm
    Netpbm is an open source package of graphics programs and a programming library, used mainly in the Unix world. It is a highly portable package, working under many Unix platforms, Windows, Mac OS X, VMS, Amiga OS and others and is included in all major open source Unix-like operating system...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK