* 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.
Changes are lots of bug fixes and minor enhancements (several pages
worth of it).
XXX Those two should probably be using a Makefile.common instead
XXX of just copying the appropriate bits.
libMagick.so libraries to be API compatible, and they don't want to
handle proper ELF versioning, but have the "real" version number in
the library. To spare us the pkgsrc maintenance nightmare, follow their
example. Bump PKGREVISION.
Changes:
* Verify sanity of sysconf(_SC_PAGE_SIZE) and sysconf(_SC_PHYS_PAGES)
before using their values.
* Corrected bug in image geometry height calculation.
* PingBlob() improperly set the length memory of BlobInfo to zero.
* Fixed Ping() memory leak in PerlMagick.
* Fixed -map problem in convert/mogrify utilities.
* -border with a single value now produces correct results
(e.g. -border 10).
* Set locale type LC_NUMERIC to "C".
* Bug fix for PS2 encoder.
* Added PS-Adobe preamble to PS3 encoder.
* Use ImageMagick release number to allow multiple ImageMagick releases
to co-exist without interference on the same machine.
* Decided that DrawGet functions should return by value.
* Added detailed logging to BMP, PNG, and JPEG codecs, including JPEG
quality estimate.
* Added draw.h "DrawGet" equivalents to most of the "DrawSet" functions.
* Added an array size argument to DrawSetDashPattern and got rid of
the zero-termination garbage.
o Remove 'Set' from the names of draw.h functions which update the
current affine transformation array (e.g. DrawSetRotate becomes
DrawRotate).
* Under Windows, a DllMain function which automatically initializes
ImageMagick (when ImageMagick is built using DLLs) may be added by
defining ProvideDllMain in magick_config.h
* Added resource consumption methods, see magick/resource.c.
* Replaced underscores in commandline options with hyphens. For backward
compatibility, underscores will continue to be recognized.
* Added -blue-primary, -green-primary, -red-primary, -white-point options.
* Added BMP2 and BMP3 output formats.
* Changed chromaticity primary.z from 1.0 to 1.0-(primary.x+primary.y)
in the PNG and PCD codecs.
* Added 'exception' parameter to the ImageMagick progress monitor API.
* Added enumerated types for the dispose member of the Image structure.
* Added -version option to commandline utilities.
* The xcf decoder would sometimes create artifacts when reading RLE-encoded
grayscale images, due to the green and blue samples not being defined.
* Added logging capabilities to the CORE API. This facility is useful
for debugging. Added "events" parameter to the -debug commandline option.
* AcquireImagePixels() did not always return the same pixel values
for virtual pixels when the cache was stored on disk (very rare).
* new -virtual-pixel command line option.
* new PerlMagick virtual-pixel image attribute.
Remove `-p' from mkdir arguments, it is already part of ${MKDIR}.
While here substitute a couple of ${PREFIX} by `%D' in
`@exec ${MKDIR} ...' lines and add a couple of missing `%D' in such lines too!