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