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.
|
Log message:
Changes 1.3.19:
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.
|