Subject: CVS commit: pkgsrc/graphics
From: Adam Ciarcinski
Date: 2014-08-18 13:13:45
Message id: 20140818111345.C85D596@cvs.netbsd.org

Log Message:
Changes 1.3.20:

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.

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.

Files:
RevisionActionfile
1.69modifypkgsrc/graphics/GraphicsMagick/Makefile
1.10modifypkgsrc/graphics/GraphicsMagick/Makefile.common
1.20modifypkgsrc/graphics/GraphicsMagick/PLIST
1.36modifypkgsrc/graphics/GraphicsMagick/distinfo
1.22modifypkgsrc/graphics/p5-GraphicsMagick/Makefile