ImageMagick 6.3.6 Released

Announcements pertaining to ImageMagick, or ImageMagick related software. This list is moderated. No discussions here, instead post to the users group instead.
User avatar
Site Admin
Posts: 11254
Joined: 2003-05-31T11:32:55-07:00

ImageMagick 6.3.6 Released

Post by magick »

ImageMagick Studio LLC announces the release of ImageMagick 6.3.6.

ImageMagick is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (about 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 Bezier 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 (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and automagically.

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. Its license is compatible with the GPL. It runs on all major operating systems.

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, 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 properties of an image
    * Composite: overlap one image over another
    * Montage: juxtapose image thumbnails on an image canvas
    * 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
    * 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.
    * Large image support: read, process, or write mega- and giga-pixel image sizes
    * Threads of execution support: ImageMagick is thread safe and many internal algorithms are already threaded to take advantage of speed-ups offered by the dual and quad-core processor technologies.
Examples of ImageMagick Usage ( shows how to use ImageMagick from the command-line to accomplish any of these tasks and much more.

See for more information about ImageMagick.

Significant changes since the last official ImageMagick release, include:

Code: Select all

2007-09-29  6.3.6-0 Anthony <anthony@griffith...>
  * Added Scaling 'derivitives' to -distort Arc, so image arcing is now
    sharp and clear as you approach the center of the distort.
  * Added  " -set option:distort:viewport 'geometry' " special option
    that can be used to override the output image size and offset.
  * Fixed experimental use of -filter and -support in Resampling (more later).
  * Changed order for coordinate arguments in -distort (for leastsq addition)

2007-09-22  6.3.6-0 Cristy  <quetzlzacatenango@image...>
  * Check the API version and quantum depth before loading a coder module or
    image filter (reference
  * Add exception to the image filter signature.
  * Get the execution path under Mac OS X.
  * TIFFTAG_STRIPBYTECOUNTS requires a uint32 pointer (magick/compress.c).
  * Fixed memory leak in CloneString() (reference
  * Set S_IRUSR | S_IWUSR | S_IRGRP mode when writing a file in

User avatar
Posts: 8884
Joined: 2004-05-31T19:27:03-07:00
Authentication code: 8675308
Location: Brisbane, Australia

Re: ImageMagick 6.3.6 Released

Post by anthony »

This release represents a major milestone in the ImageMagick's ability to handle image distortions. Users who keep themselves up to date with IM developments may have noticed the addition of a new image distortion operator. This has been in development for some time, and development is still continuing.

The General Distort Operator, -distort from command line or DistortImage() from various API's allows you to distort an image in various ways, from simple rotations and scaling using the 'Affine' type distortions to the addition of 'Perspective' distortions and even a simple 'Arc' distort (or polar varient). And these distortions are only the start of what is eventually planned.

For more details see the -distort and the IM Examples general Distort Operator.

The last beta release of IM saw the addition of a very complex internal Resampling Method allowing you to do things like infinite plane tiling with views right out to a perspective horizon ,and even proper separation of 'sky' in the distortion.
See IM examples, Viewing Distant Horizons
This of course is computationally slow at this extreme (more improvements for speed improvements at the horizon is planned), but the same function also allow the distort function to produce better 'minification' (image size reduction) in the distortions. At this point the minifiction is producing a better result, though currently it is a little fuzzy, but improvements to sharpen the minor minification results still being made.

Proper error reporting has also been added rather than the distortion just 'failing' for no apparent reason.

The BIG CHANGE in the distort function (both command line and API) that was made is in the handling of lists of coordinate changes.
Instead of two sets of coordinates....
u1,v1 u2,v2 u3,v3 u4,v4 x1,y1 x2,y2 x3,y3 x4,y4
the distort function is NOW using pairs of coordinates
u1,v1 x1,y1 u2,v2 x2,y2 u3,v3 x3,y3 u4,v4 x4,y4 ...
The reason is that I am installing a 'least squares fit' method (over the next couple of beta releases) which will allow you to give more than the 4 minimal coordinates you would normally need.

This change is for a number of reasons.
  • It links src and destination coordinates that refer to each other, more directly which makes it a lot easier when editing and adjusting the coordinates.
  • Coordinates could also then come from a text file mapping of one coordinate change per line (this still needs testing but should be working).
  • Second it means you can think of the coordinates as any point, not just a corner of a triangle or quadrilateral.
  • The main reason however... You can use a larger list of automatically determined points (from an image registration program), of say 20 or more coordinates, rather than the minimum.
  • This is not just not just for perspective but for even higher level polynomial distortions of coordinates, such as barrel/pincussion distortions (corrections), and possibly future spline or triangular mesh warps (think movie transformations!)
  • More points of registration also allows your to more exactly define the distortion beyond normal pixel resolution, and the future possibility for IM to automatically finding deleting 'large error' coordinates (with user control of course).
  • Finally the current (old) method was just something that seemed to be good format style when I was first proto-typing the perspective transform using -fx. It was never really thought out very well.
If its any consolation, I had a lot of examples that also need changing to use this coordinate organization.

Finally a special 'out-of-band' distortion control (probably the first of a number of these) to let you specify exactly where (and at what size) in the output distorted image canvas you are wanting to see. "-set option:distort:viewport 'geometry' ".
this option can be used to enlarge the output view, or restrict it to a smaller area of interest. It could even be used to arrange for cluster parallelization of the distortion, but having each machine generate only a portion of the distorted image.
Anthony Thyssen -- Webmaster for ImageMagick Example Pages