ImageMagick is a software suite for reading, writing and processing images. Over the years various functionalities have been added to the suite and the current version can read and write almost all common formats and also many not so common formats. It can also process these images using its various transformation, filtering etc. It is a free software and is available for all common OS.
It is so powerful that many other desktop applications and some online applications like flickr.com have been developed around it. So whether you are looking for a simple image conversion or you want to program your website to serve users image processing needs, ImageMagick can handle it for you.
1. If the various operations in image processing can be classified in to input, processing and output, ImageMagick provides functionalities that perform all these three operations.
2. ImageMagick provides a set of libraries that allow reading and writing about 100 different formats. So that the user can concentrate more on the image processing than on the file input and output (I/O).
3. ImageMagick can be used in command line in almost all the common operating systems like Windows, Linux, UNIX and Mac etc by combining the read, write and image processing operations.
1. Read and write files from over 100 different file formats. These include the commonly used formats like GIF, JPEG, PNG and TIFF etc. Refer http://www.imagemagick.com/www/formats.html for complete list.
2. Modify shape, size and orientation of the images
3. Add different effects like blur, emboss, swirl etc
4. Create GIF and movie sequences
5. Draw vector graphics on the images
6. Perform image composition
7. Decorate an image with a border or frame
8. Combine all these operations with different programming languages using APIs to create powerful image processing functionality
Why ImageMagick APIs?
1. Command line tools do not lend themselves to large programs.
2. The number of file formats is finite and definitely only a few of them are used universally. But the number of image processing operations is infinite as the individual operations can be mixed and matched. Hence, the programmer needs flexibility in creating their own image processing routines. ImageMagick fills this gap by providing APIs.
3. APIs also allow access to the individual pixels in an image and hence can perform low level image processing operations as well.
4. Two people are not alike and definitely two programmers are not alike. So, ImageMagick provides a multiple choice for programming environment. A Java developer need not be constrained to use C++ for his image processing operations.
5. This also allows ImageMagick to be used in different environment,
a. Desktop applications using C, C++, LabView, Pascal and Tcl/Tk
b. Internet based applications using COM+, Java, .NET, PHP, Python and Ruby
This listing demonstrates the range of applications that can be developed using ImageMagick and does not in any way limit the imagination of the programmer. PHP can also be used to write desktop application while C++ can be used to write command line operations which in turn can be used in an internet based application.
Please check this and this website for some examples on ImageMagick. Also check this website for introductory tutorials on various ImageMagick API.