Path to this page:
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: