GraphicsMagick 1.3.20 Released
Bob Friesenhahn <[email protected]> Sat, 16 Aug 2014 20:28:25 -0500 (CDT)
| Newsgroups | gmane.comp.video.graphicsmagick.announce |
|---|---|
| Message-ID | <[email protected]> |
GraphicsMagick 1.3.20 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.19 release:
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. Please lobby the GCC project to fix
this embarrassing performance bug.
Security Fixes:
* No security issues were reported or fixed.
Bug fixes:
* Compilation: No longer undefine __attribute__ since this may be
used by system or compiler headers and cause problems.
* BMP: Alpha channel from BMP3 format was inverted.
* PNG: Fix round-trip repeatability issue (due to rounding
algorithm) with modern versions of libpng. Prefer the less
accurate method which does not alter the image.
* PNG: Fix some memory leaks in error-handling paths.
* PNM: Scaling of alpha in sub-ranged pixels is fixed.
* Wand API: Removed development debug fprintf which causes each
drawing primitive to be printed to stderr.
* PS, PS2, PS3, PDF: Only use resolution from image or -density if
units was properly specified. Without units, resolution is
worthless.
* PS, PS2, PS3, PDF: Use resolution from image if it appears to be
valid.
* WebP: Fix inverted return status which caused failure to be
reported instead of success.
* Rotation clipping/shearing errors for short wide images at some
angles is fixed.
* -geometry: Deal with resize geometry missing width or height
(e.g. '640x' or 'x480') by substituting the missing value with one
which preserves the image aspect ratio. This has been documented
to be supported since almost the dawn of GraphicsMagick but was
not actually supported until now.
* -geometry: Support '>' and '<' qualifiers with '@' qualifier to
specify if image should be resized if larger or lesser than given
area specification.
New Features:
* Wand API: MagickSetImageGravity() - New function to set image
gravity.
* Wand API: MagickGetImageGravity() - New function to get image
gravity.
* Wand API: MagickSetImageMatte() - New function to set the image
matte channel enable flag.
* Wand API: MagickGetImageMatte() - New function to read the image
matte channel enable flag.
* Wand API: MagickSetImageGeometry() - New function to set the image
geometry string.
* Wand API: MagickGetImageGeometry() - New function to get the image
geometry string.
* Wand API: MagickOperatorImageChannel() - New function to apply an
operator to an image channel.
* Magick++ API: New Image::thumbnail() method for fast image
resizing, particularly to make thumbnails.
* Core C API: Added SetLogMethod() to allow an application/library
to specify a function to be called for logging.
* Clang/LLVM: Provide support for clang/llvm attribute and builtin
specifiers similar to that provided for GCC.
* OpenMP: OpenMP native locking and thread specific data is
supported via a configuration option (is not the default). This
offers a "pure" OpenMP compilation mode. No real value for this
compilation mode has been observed yet but it seems worthy to
support.
* Coders: Added BrokenCoderClass to mark coders which often
malfunction or are not very useful in their current condition.
* Composition: Added HardLight composition operator, which is now
used by PSD and XCF formats, and available via command line,
Magick++ API, PerlMagick API, and Wand API.
* Composition: Added ScreenCompositePixels composition operator.
* Composition: Added missing Photoshop separable compositing
operations, Overlay, Exclusion, ColorBurn, ColorDodge, SoftLight,
LinearBurn, LinearDodge, LinearLight, VividLight, PinLight,
HardMix.
* +set: Command line utilities now support +set to remove an
existing image attribute.
* -format: Support additional format specifiers 'g', 'A', 'C', 'D',
'G', 'H', 'M', 'O', 'P', 'Q', 'T', 'U', 'W', 'X', and '@', similar
to the major brand.
* -operator: New quantum operators ThresholdBlackNegateQuantumOp and
ThresholdWhiteNegateQuantumOp These correspond to -operator
"Threshold-Black-Negate" and "Threshold-White-Negate".
* TIFF: Now support setting the TIFF "Software" tag for users who do
not want to admit to using GraphicsMagick.
* WebP: All of the WebP encoder encoder options are now supported
by -define arguments.
Feature improvements:
* Pixel interpolation quality is greatly improved, with minimal
impact on performance. Pixel interpolation now also works well
given an alpha channel.
* WebP: WebP support is now prepared to compile with most WebP
library versions and supports all features except for those
pertaining to "RIFF" container support.
Performance Improvements:
* Non-integral image rotation performance has been improved by about
40%, with lower memory usage as well.
* GradientImage: Update image is_grayscale and is_monochrome flags
based on gradient color properties.
Windows Delegate Updates/Additions:
* PNG: Libpng 1.6.12 - June 12, 2014.
* JPEG: libjpeg 9a of January 19, 2014.
* FreeType: FreeType 2.5.3 of March 6, 2014.
* WebP: webp 0.4.0 of January 20, 2013.
* zlib: zlib 1.2.8 of April 28, 2013.
Build Changes:
* --without-threads no longer disables use of OpenMP. Use the
already existing option --disable-openmp to disable OpenMP.
* Makefiles: Include paths are now exceedingly pedantic to make sure
that only the required directories are included.
* VisualMagick configure: Improve configure program so that it is
possible to select QuantumDepth, OpenMP, and 64-bit build via
configure dialog boxes as well as options on the command line.
Also automatically detects and deals with similarly named files in
subdirectories so that WebP support can now build successfully.
Behavior Changes:
* MultiplyCompositePixels: Multiply composition now uses SVG
interpretation of how alpha should be handled. No longer does a
simple multiply of alpha channel.
* Composition: The Difference, Darken, Lighten, and HardLight
composition operators were modified to support alpha in their
computations.
* PNG: Using -optimize no longer triggers palette and depth
optimizations since their implementations have been problematic.
--
Bob Friesenhahn
[email protected], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/
------------------------------------------------------------------------------