GraphicsMagick 1.3.19 Released

Bob Friesenhahn <[email protected]> Wed, 1 Jan 2014 11:06:00 -0600 (CST)
Newsgroups gmane.comp.video.graphicsmagick.announce
Message-ID <[email protected]>
GraphicsMagick 1.3.19 is now available.  This is the release 
recommended for use.  Please visit http://www.graphicsmagick.org/ to 
learn more about GraphicsMagick or download the release.  Please 
report any issues to the bug tracker.

The following are the significant changes since the 1.3.18 release:

1.3.19 (December 31, 2013)
==========================

Special Issues:

   * Due to GCC bug 53967, several key agorithms (e.g. convolution)
     may execute much faster (e.g. 2-3X) for x86-64 and/or when SSE is
     enabled for floating point math (`-mfpmath=sse`) if the GCC option
     `-frename-registers` is used. Default 32-bit builds do not
     experience the problem since they use '387 math.  It is not clear
     in what version of GCC this problem started but it was not noticed
     by the developers until the GCC 4.6 timeframe.  Other compilers do
     not suffer from this bug.

Security Fixes:

   * EPT: Fix crash observed when Ghostscript fails to produce useful
     output.  This was particularly noticeable when Ghostscript was not
     installed.  This crash could be used to cause denial of service.

   * PNG: With libpng 1.6.X, avoid a crash while copying a PNG with a
     "known incorrect ICC profile".  This crash could be used to cause
     denial of service.

Bug fixes:

   * Build: Fix cross-compilation for MinGW64 on Linux build machine.

   * Build: configure FreeType test no longer insists that
     <freetype/freetype.h> can be included.

   * CMS profile: Only delete the CMS transform if it is non-null.
     Fixes assersion observed when lcms returned a null profile and
     GraphicsMagick attempted to deallocate it.

   * Drawing: Improve error handling logic so that drawing returns
     quickly on pixel access errors rather than plowing on ahead.  This
     avoids problems with SVGs which take seemingly forever to render.

   * Drawing via C/C++ APIs: `BevelJoin` no longer causes a MVG parsing
     error.

   * EPT: Fix crash observed when Ghostscript fails to produce useful
     output.  This was particularly noticeable when Ghostscript was not
     installed.

   * OpenMP: Revert use of omp_set_dynamic() since it caused
     performance issues when using GCC's GOMP implementation and the
     number of threads to use is specified.

   * EXIF profile: Support the `SubjectArea` EXIF tag.

   * MIFF writer: PseudoClass format was written incorrectly for depth
     greater than 8.

   * MIFF writer: RLE compressed format used inverted alpha from the
     other subformats and contrary to the MIFF specification.

   * MIFF reader: Fixes Fixes to be able to read MIFF written by
     ImageMagick 6.X, including DirectClass grayscale images (except
     for RLE compressed).

   * Mosaic: Fixed unsigned underflow problem with -mosaic when page
     offset is negative and exceeds image width or height, resulting in
     assertions, out of memory errors, or pixel cache limit errors.

   * PDF: Consistently initialize Image page width and height to image
     width and height.  While general to all of GraphicsMagick, this
     change is to assure that the PDF writer computes page dimensioning
     consistently.  PDF page dimensioning was wrong if the image had
     been resized with -geometry "100%".

   * PAM: Fix MAXVAL scaling when reading PAM images.  PAM was only
     working correctly for images with 256 or 64k levels.

   * PNM: PGM "P2" format writer wrote bad output for 8-bit depth.

   * PNG: With libpng 1.6.X, avoid a crash while copying a PNG with a
     "known incorrect ICC profile".

   * PNG: Q8 GM build now correctly reads 16-bit PNG files.

   * TIFF writer: Try to avoid writing more than 32k strips per image
     by increasing rows-per-strip since some programs fail to read
     images with more than 32k strips per image.

   * TIM reader: PSX TIM reports 8-bit depth (rather than 16).

   * TTF font rendering: Improve FreeType rendering error logic so that
     rendering returns immediately on pixel access errors rather than
     plowing on ahead.

   * TTF font rendering: Support rendering UTF-8 up to 21-bit code
     points.  Was only supporting 16-bit code points.

   * Wand API: DrawSetStrokeDashArray() / DrawGetStrokeDashArray(), fix
     failure to work properly due to this code path never being tested.

   * Windows Ghostscript: 64-bit GraphicsMagick no longer requires both
     32-bit and 64-bit builds of Ghostscript to be installed in order
     to read Postscript and PDF formats.

   * XPM reader: Reported depth now depends on the colormap rather than
     always claiming to be 16-bit.

New Features:

   * JPEG: Add support for writing 'XMP' profile.

   * PNM: As a simple non-standard extension to the standard PNM and
     PAM formats, support writing and reading 32-bit sample depth.
     Writing such files is only supported by the Q32 build although
     they may be read by any build.

   * WebP: Now supports reading and writing Google's WebP format.  This
     feature is not currently supported by the Windows Visual Studio
     build.

Feature improvements:

   * Pixel composition based on BlendCompositePixel() is enhanced to
     completely eliminate under-color from the blending if the
     under-pixel is fully transparent.  Also blends based on the
     average opacity of both pixels rather than only the over-pixel.
     This change did not result in any change in the GM test suite
     results but it is possible that there could be some negative
     impact from it.  Please report any issues noticed which are due to
     this change.

   * X11 `display`: For DirectClass image, use ThumbnailImage() rather
     than SampleImage() when creating the panner icon to improve the
     quality of the image.

Performance Improvements:

   * PNG: `ping` a PNG faster by avoiding reading the image data.

Windows Delegate Updates:

   * Updated IJG JPEG library to release 9.

   * Updated PNG library to release 1.6.8.

   * Updated lcms2 library to release 2.5.

   * Updated libxml2 library to release 2.9.1.

   * Updated FreeType library to release 2.5.2.

Behavior Changes:

   * MIFF: Now writes PseudoClass images correctly when depth is
     greater than 8.  This impacts the reader, which will not be able
     to read previously written incorrect format correctly.  Images
     like this should be very rare.  The solution is to use an older
     GraphicsMagick version to convert such images to a valid storage
     format (with a depth of 8) so that they may be read with this
     version.

   * MIFF: Now writes RLE-compressed RGBA images with correct
     alpha. This impacts the reader, which will not be able to read
     previously written incorrect format correctly. Images like this
     should be very rare. A solution is to use an older GraphicsMagick
     version to use a compression algorithm other than RLE so that they
     are read correctly with this version.  Another solution is to
     process problematic images with '-operator Opacity Negate 0' to
     invert the alpha channel.

   * TIFF: Returns DirectClass images by default for MINISWHITE and
     MINISBLACK TIFF formats (rather then colormapped).

   * Windows: Also search c:\gs\fonts for Ghostscript font files.  This
     search path is normally hard-coded into Ghostscript binaries and
     is a convenient place to put fonts so they may be shared by
     multiple Ghostscript versions.

   * XPM: Now limits color resolution to 16-bits, even with Q32 build.


-- 
Bob Friesenhahn
[email protected], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk