* PNG vulnerability fix.
* Added YCbCr coder for raw Y, Cb, and Cr samples.
* Fixed the -fx option operator precendence problem (+ and - should be the
same precendence).
* Rare memory corruption due to a JPEG comment (bug report by
brundlefly76@hotma...).
* The PerlMagick Evaluate() method no longer fails with an assertion error.
* Restore -dSAFER for a more secure Ghostscript invocation. The downside is
we must copy the Postscript file to a temporary file otherwise we get a
the ocassional invalidfileaccess fom Ghostscript.
* Do not report image depth unless the -verbose or -format %z option is used
with the identify program.
* Center gravity now works when cropping by percent (e.g. -crop 75%).
* Small memory leak on exception in the ImageToBlob() method.
* %@ returns the image bounding box (e.g. identify -format %@ logo:).
* Sync pixel cache when cloning an image-- just in case someone clones
an image clone and accesses pixels with AcquireImagePixel() instead of
GetImagePixels().
Changes:
Bug fixes:
* Fixed problem with relative filename wildcards (e.g.
identify images/*.jpg)
* DrawSetStrokeDashArray() now respects the number_elements argument.
Performance improvements:
* Don't open a loadable module if its already open.
* Added anonymous memory-mapping to the pixel cache. This makes it
possible for memory to be returned to the system after the image is
destroyed.
Utilities enhancements:
* The display program now composites any transparent images on top of a
checkered background to assist in visualizing any partial transparent
pixels.
Coder additions/improvments:
* When an unknown property is encountered in the XCF coder, it enters a
bogus loop that never terminates.
Code/structure enhancements:
* Introduce MagickBooleanType and MagickStatusType types of unsigned int.
These types are 100% compatible with the existing API but removes
ambiguity. Previously we got complaints that users did not realize that a
return value of unsigned int in most cases meant a binary value (0/1).
MagickStatusType is used for methods that return a bit mask.
* Introduce MagickFalse and MagickTrue while we deprecate True/False.
And more...
* DrawSetStrokeDashArray() now respects the number_elements argument
* Since the WMF coder has Wand dependancies we only enable this coder when
both WMF is available and module support enabled
* Some XCF tiles were not being read properly
* Fixed memory leak in EPT coder
* Fixed memory leak in DestroyImage()
* Close Windows registry when no longer needed
* RelinquishUniqueFileResource() was not freeing file resource properly
* Free the ImageInfo structure allocated by CloneImageInfo() in the
WriteImages() method
* EPT images cannot support blobs
* Fixed temporary file resource limit leak in RelinquishUniqueFileResource()
* ConvolveImageChannel() incorrectly initialized non-selected channels to 0
* Added Cisco IP phone image format (write only)
* MagickWand API, a higher level C interface to the ImageMagick methods.
* Increased stability. The library was checked and cross-checked with
splint and valgrind to eliminate security vulnerabilities and common
programming mistakes as well as ensure no memory leaks.
* A new -fx option to apply a mathematical expression to an image list from
the command line.
* Algorithms were improved to reduce processing requirements resulting in a
significant speed-up over previous releases.
* All regression tests pass at Q8, Q16, and Q32 on a variety of platforms
including Linux, Solaris, FreeBSD, Mac OS X, and Windows.
* The composite methods have been corrected to precisely conform to the
SVG standard.
* New image comparison utility, `compare'.
* Better support for CMYK image workflow.
* New string handling methods to help prevent potential buffer overflow
problems.
* Error reporting has more detail to help identify the cause of a
particular problem.
* Bug fixes
Changes since version 5.5.6:
- File descriptor leak prevented temporary disk pixel cache from being
removed under Windows.
- Color profile patches provided by (dge at softec.st).
- West/East geometry was computed with image width rather than height.
- The MNG encoder failed to set the JNG bit in the simplicity profile.
- The MNG encoder failed to write FRAM chunks when all images were JNG.
- The JNG encoder wrote the wrong alpha_sample_depth for opaque images.
- Fixed JPEG EXIF problem.
- Added -thumbnail as an option to the utilities.
- No TIFF preview was written on EPT write (patch provided by
Lars Ruben Skyum).
- NegateImage() now negates the K channel of a CMYK image (patch provided
by Lars Ruben Skyum).
- Parameter 'elevation' misspeclled for PerlMagick Shape() method.
- A number of minor leak/unitialzed memory problems fixed.
- Allocate free nodes from the heap in QuantizeImage().
- Magick-config --version returned gibberish.
- Adopted Bob Friesenhahn's patterns-- use as filename pattern:checkboard,
pattern:bricks, etc.
- We cannot reliably auto rotate PDF files so this feature was removed.
- The conjure program did not correctly handle the gravity attribute.
- The persistent cache reference count was not properly incremented.
- Added $image->Describe() method to PerlMagick to interface to the
DescribeImage() C API method.
- Added support for the EXIF Tag Parsing Library. Currently we simply
display the tags when calling DescribeImage(). In the near future
there will be support for modifying or adding tags.
- Added Bob Friesenhahn's updated Windows installation instructions.
- Interfaced the drawing routines with the new MagickWand API.
MagickWand will be the primary public C interface to ImageMagick in
the near future.
- magick/effect.c: RandomChannelThresholdImage was not handling
PseudoColor, non-gray images correctly.
- png.c would not compile with libpng versions older than libpng-0.95,
due to bugs introduced in ImageMagick version 5.5.2.
- Implemented -random-threshold and -ordered-dither options.
- The locale messaging system now uses a hash for fast lookup.
- Updated libtool to the new released version, 1.5.
- Fixed bug with decoding grayscale PNG images and JNG alpha channel
at Q:32.
- Now recognize 32-bit hex color specifications, patches provided by
Bob Friesenhahn.
- Started API wrappers based on Bob Friesenhahn's method suggestions.
- Text annotations that started with '\n' were not rendered correctly.
- Removed artifacts from images rotated with a small number of degrees.
- Minor bug fix in the ParseGeometry() method.
- Modified the non-public inline AlphaComposite() to use a PixelPacket
pointer; previously it returned a PixelPacket structure.
- You can now specify an image geometry as an image file (e.g. -geometry
image.jpg).
- Use new temporary file manager for JNG components.
- Added support for 12-bit TIFF images.
- Added improved locale message subsystem (contributed by Kyle Shorter).
- Removed a bias from SampleImage() and DrawAffineImage() (bug report
by Glenn Randers-Pehrson).
- PerlMagick now recognizes percent values for fuzz or opacity.
- Not enough memory allocated for reading PCX (bug report by Trevor
Willis).
- There were artifacts when using the Bessel function for resizing
(bug report by Bob Friesenhahn).
- Added -resample to convert to change the resolution of an image.
- Added a temporary file manager that prevents race conditions and
removes any remaining files on exit.
- Prepped ImageMagick to work with Visual C++ 7.0 under Windows.
The Windows configure patches came from William Radcliffe.
- The refresh of the display image window no longer lags when the
magnify window overlay it.
- Numerous code clean-up and minor speed ups based on problem areas
identified in the Graphics-Magick ChangeLog.