Properly set image->colorspace in the PNG decoder (previously it was setting image->gamma, but only setting image->colorspace for grayscale and gray-alpha images. Reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=32418).
Fix improper use of NULL in the JNG decoder (CVE-2017-11750, Reference https://github.com/ImageMagick/ImageMagick/issues/632).
Removed write_chunk_from_profile() from coders/png.c because it has not worked at least since version 6.7.6.
Removed many redundant checks before RelinquishMagickMemory(), which is safe to call with a NULL argument.
Removed vpAg chunk write support (we are now writing caNv instead).
coders/png.c: Initialized quantum_info to prevent memory leakage (reference https://github.com/ImageMagick/ImageMagick/issues/582, CVE-2017-11539).
coders/png.c: fixed NULL dereference when trying to write an empty MNG (CVE-2017-11522, reference https://github.com/ImageMagick/ImageMagick/issues/586).
Introduce SetMagickSecurityPolicy() (MagickCore) and MagickSetSecurityPolicy() (MagickWand) to set the ImageMagick security policy (reference https://github.com/ImageMagick/ImageMagick/issues/407).
Renamed read_vpag_chunk_callback() function to png_user_chunk_callback() in coders/png.c
Implemented a private PNG caNv (canvas) chunk for remembering the original dimensions and offsets when an image is cropped. Previously we used the oFFs and vpAg chunks for this purpose, but this had potential conflicts with other applications that also use the oFFs chunk.
coders/png.c: Added support for a proposed new PNG chunk (exIf read-write, eXIf read-only) that is currently being discussed on the png-mng-misc at lists.sourceforge.net mailing list.
Added define 'psd:preserve-opacity-mask' to preserve the opacity mask in a PSD file.
Fixed issue where the display window was used instead of the data window when reading EXR files (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&p=137849).
Security improvements to TEXT coder broke it (reference
Prevent possible shell command injection vulnerability through the authenticate parameter of the PDF, PCL and XPS coders (report from Erez Turjeman). https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=29754).
Fix stroke offset problem for -annotate (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=29626).
Add additional checks to DCM reader to prevent data-driven faults (bug report from Hanno Böck).
Pair AcquireMagickResource with calls to RelinquishMagickResource when resource limits are hit (reference https://github.com/ImageMagick/ImageMagick/pull/75).
Return non-zero for the -format %b option (reference https://imagemagick.org/discourse-server//viewtopic.html?f=1&t=28969).
The DICOM reader now handles the rescale intercept and slope.
Added 'bmp3:alpha' option for including the alpha channel when writing an image in the BMP3 format. (reference https://imagemagick.org/discourse-server//viewtopic.html?f=1&t=28733).
Only one thread permitted when delegating to the Ghostscript library under Windows.
Fixed alpha blending issue with semi-transparent pixels in the merged image of PSD files. This can be disabled by setting the option 'psd:alpha-unblend' to 'off' (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=28169).
Fixed issue in jpeg:extent that prevented it from working (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&p=126638).
Fixed memory leak when reading Photoshop layers in a TIFF file.
Add Bootstrap MIT license to ImageMagick web CSS and JS.
Use modern idiom for autoconf Fix a forgotten dir when regenerating html doc (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=28363).
The -colorspace gray option no long leaves a ghostly shadow (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=28350).
coders/magick.c: added "-define h:format=FMT" and "-define magick:format=FMT" options. FMT can be any output format supported by ImageMagick except "H" or "MAGICK". If this define is omitted, the encoder uses GIF by default for pseudoclass images and PNM for directclass images, as previously. Made "MAGICK" (read-write) and "H" (write-only) visible in the format list.
Fixed transparency issue with 16-bit tga files (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=27469).
Fixed writing label and comment in tiff images (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=25516).
Jpeg images no longer have pixels per inch as a default value for density units when the density is not set (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=27589).
Added support for setting the font color with -fill to the pango coder.
Reduce draw epsilon to increase mathematical stability.
Fixed UTF8 issue when determining the current working directory on Windows (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=27295).
Fixed command line execution in Windows for delegates that move files (reference https://imagemagick.org/discourse-server//viewtopic.html?f=1&t=27027).
Report Ghostscript version when -verbose is used and when an exception is raised.
Fixed invalid path check in MagickCoreGenesis under Windows and disabled ProvideDllMain by default (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&p=118875).
Do not let libpng16 check ICC/sRGB profiles in non-debug runs; we do it ourselves anyway. Avoids emitting "known incorrect profile" warnings. For strict profile checking and warning, use "-debug coder".
The -fx equality operator returns a proper boolean result now (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=25580).
Permit spaces in the gradient color specification (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=25614).
Fix IdentifyImage() crash when image->magick member is null (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=25615).
The -format M and Y channels are no longer reversed (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=25633).
Remove Makefile race condition where two targets attempt to install magick-baseconfig.h (reference http://git.buildroot.net/buildroot/commit/?id=7395ee9d3b88e45798143e05a28d6d4b51409130)
Fix memory leak in BlobToStringInfo() (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=25639).
In certain cases, -adaptive-sharpen failed to sharpen (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=23211
Fixed bug with the PNG00 subformat when the original format was PNG32.
The "-strip" option now only removes profiles and comments from PNG output. Previously the background, density, and other metadata were also discarded.
Although they are internal methods, deprecate InitializeModuleList(), LoadMimeLists(), and RelinquishCommandQueue() (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=25263).
Do not block threads in the png codec when PNG_SETJMP_SUPPORTED is not defined (reference https://imagemagick.org/discourse-server//viewtopic.html?f=23&t=25218).
Reset colorspace to Grayscale when reading a gray PNG image with gamma > 0.75 instead of when gamma==1.0 (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=25136).
Convert linear RGB to sRGB before writing the Targa image format.
Make sure we use the secure C library functions when compiling ImageMagick on Windows.
Tweak color reduction optimization to return a full color palette (reference https://imagemagick.org/discourse-server//viewtopic.html?f=1&t=25098).
Patch configure.ac to support FlashPix under Debian (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=25140).
OpenCL support writes to $HOME/.config/ImageMagick, if the path does not exist, two calls to mkdir() are required (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=25080).
Replace MAGICKCORE_JP2_DELEGATE with MAGICKCORE_LIBOPENJP2_DELEGATE in magick/static.c (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=25153).
Added image->duration to image.h, calculate duration in gif.c, and report duration in identify.c (reference https://imagemagick.org/discourse-server//viewtopic.html?f=1&t=23276).
Fixed bug in coders/png.c that caused -define png:color-type=0 to fail (reference https://imagemagick.org/discourse-server//viewtopic.html?f=1&t=24568).
Fixed problem with PNG8 reduction in coders/png.c (special case where exactly 256 colors plus one transparent color are present).
Set image->intensity = Rec709LuminancePixelIntensityMethod before setting the colorspace to Gray while reading a gray PNG (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=24205). This ensures that image->gamma will be set to 1.0 (linear).
Call SVG / MSL xmlCleanupParser() / xmlInitParser() once (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=23991).
Support LEGO Mindstorms EV3 Robot Graphics File format (contributed by bdwheele@ind.../
Since glib-2.35.0 g_type_init() was removed (reference https://bugs.gentoo.org/show_bug.cgi?id=481042).
New identify define to output the location of the minimum, maximum, or mean pixel of the image (e.g. identify -define identify:locate=maximum -define identify:limit=7 rose).
Column columns / rows no longer inverted for RGF image format (patch from Brian Wheeler <bdwheele@india...>.
16bit PSD images might have a 65536 colormap (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=24102).
Ascii map is now declare as AsciiMap (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=24106).
Return label for identify -format "%l" (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=24105).
Add option to perform Fourier normalization in either the forward or inverse transform (e.g -define fourier:normalize=inverse). The default remains as it was in the forward transform (i.e. -define fourier:normalize=forward)
Added the following command line options to configure.exe: /x64, set 64 bit build /mtd, set project type to: multi threaded dll /sts, set project type to: single threaded static /mts, set project type to: multi threaded static /mtsd, set project type to: multi threaded static dll /noWizard, skip the wizard and generate the project/solution files
Fixed infinite loop with jpeg:extent (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=23314).
Fixed performance issue when converting jpeg to png (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=23922).
Added combineImages, evaluateImages, mergeImageLayers, optimizeImageLayers optimizePlusImageLayers and separateImages to STL.h (reference https://imagemagick.org/discourse-server//viewtopic.html?f=2&t=23699).
Added support for the fill area flag ('^') and the pixel area count limit flag ('@') to the Geometry class of Magick++ (reference https://imagemagick.org/discourse-server//viewtopic.html?f=2&t=23704).
Enabled automatic linking for static Magick++ in Visual Studio (reference https://imagemagick.org/discourse-server//viewtopic.html?f=2&t=23558).
Recognize PNG iCCP chunks that contain the sRGB profile and replace them with the PNG sRGB chunk. Use "-define png:preserve-iCCP" to get the previous behavior, of simply copying the iCCP chunk.
Export versioning to automake in order to use it for library prefix.
So bump was incomplete due to no changing map file.
Change abi name by adding major version to lib name (will simplify next imagemagick major version release work) and reset release version to 1 (due to changing abi name).
Deleted some code added to the PNG decoder in SVN revision 10825; it was failing to handle transparency in paletted images (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=22720).
Compare alpha to "QuantumRange-OpaqueOpacity" not just "OpaqueOpacity" when detecting transparency in the PNG encoder.
Fixed LBR01 (left-bit-replication) macro in coders/png.c; problem reported by the clang compiler.
Chromaticity values were read in the wrong order in the cHRM chunk when it accompanied the sRGB chunk. Libpng applications built with libpng16 and later will detect this and issue a warning (PNG files previously written with the cHRM chunk are OK). Removed the troublesome redundant png_set_cHRM() and png_set_sRGB() calls.
Look for libpng17 and libpng16 while configuring PNG support.
Magickcore headers recently used pow() in the inline functions inside public headers. Thus in order to avoid library depends problem, put -lm in library depends (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=22483).
Improve exception reporting when AcquireAuthenticCacheView() fails.
2012-12-13 6.8.0-10 Anthony Thyssen <A.Thyssen@griffith...>
Minor tweeks and commenting of Virtual Pixel shortcuts in resampling filters.
Added -define "shepards:power" to control the power setting (def=2) for Shepards Method in -distort and -sparse-color https://imagemagick.org/discourse-server//viewtopic.html?t=22416
Fixed problem with writing grayscale PNG, bug introduced in version 6.8.0-0 or 6.8.0-1 (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=22355).
Implement symbol versioning (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=22352).
ABI is incompatible if quantum depth change. Add abi indication to library name, thanks to Bastien Roucaries (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=22352).
The stream utility no longer returns a black image (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=22046).
Fixed an old bug in chromaticity decoding in coders/bmp.c (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=22294).
Fixed bug in coders/bmp.c that failed to read a paletted image properly (fix by J. Summers, reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=22316).
Fixed bug in coders/bmp.c that failed to read transparency properly (fix by J. Summers, reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=22312).
Only report sRGB, iCCP, gAMA, cHRM chunks in "identify" output when these chunks were actually present in input, and not when they were inserted by the PNG decoder.
Attenuate random noise (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=21387).
Return linear grayscale for gradient:white-black.
Promote linear grayscale to linear RGB when compositing.
gradient:white-black is sRGB whereas gradient:'icc-color(rgb,255,255,255)- icc-color(rgb,0,0,0)' is linear RGB whereas gradient:'gray(255)-gray(0)' is linear grayscale.
Set the colorspace to linear gray when reading intensity values (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=21362).
Don't overrun pixel buffer on inverse fourier for odd image widths.
Change LAB encoding to permit blurring, resize, etc. (signed A and B channel values now stored using a 50% bias)
Additional.. This removes a non-linear discontinuity from stored LAB space values. As a result you can now Blur, Compose, Resize and Distort in LAB colorspace, without problems that previously existed.
Support the -features option in convert / mogrify.
Add support for the %[type] property.
2012-06-15 6.7.7-8 Anthony Thyssen <A.Thyssen@griffith...>
Geometry arguments accept multiple sign character for offsets EG: "-10-10", "-+10-+10", or "+-10+-10" generate negative offsets while "+10+10", "++10++10", or "--10--10" generate positive offsets, that is, you can not only optionally have a sign in offset variable substitutions, but can negate that substitution if you so desire.
2012-06-12 6.7.7-8 Nicolas Robidoux <nicolas.robidoux@gmail...>
Refactor Catmull-Rom and Spline "interpolation" using state-of-the-art unpublished formulas.
Fix incorrect transparency handling of "interpolative" cubic B-spline smoothing.
Disabled the new libpng-1.5.10 test for invalid palette index when reading a PNG or MNG (for speed), or when writing a MNG (because a zero-length PLTE is valid in a MNG when the global PLTE is used).
Display the PNG colortype as a string in "identify -verbose" output.
2012-06-06 6.7.7-7 Anthony Thyssen <A.Thyssen@griffith...>
Small refactor of Average Interpolators (save some multiplies)
Added 'Spline' as a filter type as an alias to 'Cubic'. This brings both Catrom and Spline -filter and -interpolate methods in line. Cubic should only be used when defining a general cubic using expert settings or when listed in "filter:verbose" debugging output.
2012-06-05 6.7.7-6 Anthony Thyssen <A.Thyssen@griffith...>
Renamed 'Bicubic' interpolation the more precise definition 'Catrom' Old name kept (but hidden) for backward compatibility in bit CLI and API interfaces.
The -set colorspace option sets the colorspace, it does not transform it.
Assume grayscale images in the GIF format are linear.
Add Nicolas Robidoux's bicubic interpolation method (reference https://imagemagick.org/discourse-server//viewtopic.html?f=2&t=21118). This replaces the old 'bicubic' which was very extreme 'cardinal' cubic.
Add DuPont & XFIG copyright to NOTICE.
sRGB.icc has an unfriendly license, remove it.
MinGW does not define KEY_WOW64_32KEY (reference https://imagemagick.org/discourse-server//viewtopic.html?f=2&t=21155).
Fix bug with stroke-dasharray (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=21090).
In rare cases, caption would not word-wrap properly (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=21106).
Don't set alpha pixels in SetImageVirtualPixelMethod() unless image area is well defined (i.e. != 0) (reference https://imagemagick.org/discourse-server//viewtopic.html?t=21110).
2012-05-27 6.7.7-3 Anthony Thyssen <A.Thyssen@griffith...>
Trialing the addition of new interpolation methods Average16 average of 16 pixels around sampling point Average9 9 pixels around nearest pixel Average4 Average of 4 pixels around sampling point Background Background color (for resampling error checking) Blend Blend of closest 1, 2 or 4 pixel neighbors NOTE: 'Average' is now equivalent to 'Average4', previous to this version it was equivalent to 'Average16'. The 'Background' method is for showing 'resample errors' be it accidental, or on purpose. See IM Examples, Cylindrical Filters.
added -interpolative-resize added around this version
Reset color info in grayscale PNG images to gamma=1.0, undefined rendering_intent and chromaticity only when reading images that don't have a gAMA, sRGB, or cHRM chunk.
2012-05-14 6.7.6-10 Anthony Thyssen <A.Thyssen@griffith...>
Added a low level "Cosine" Windowing Filter -- Request by Nicholas Robidox
Fixed Kaiser Window Filter (was producing all zeros!)
Kaiser Window Function now uses the working value "filter:kaiser-beta" (formerly "filter:alpha" in previous versions)
Setting the expert option "filter:kaiser-alpha" will override this, (after being multiplied by PI).
Added resampling 'weight' sanity check in EWA resampling.
Set default for histogram:unique-colors to be 'true' when undefined Returning it to previous behavior.
Refactor of InterpretImageProperties() (percent escape substitutions)
Add "gamma" as a -set and % escape to access image gamma meta-data
2012-04-25 6.7.6-8 Anthony Thyssen <A.Thyssen@griffith...>
Gaussian Filter Fixed. For some strange reason it was half the width it should be with an effective sigma of 0.25 (not 0.5). This was the real reason "variable blur" was not blurring enough.
2012-04-21 6.7.6-7 Anthony Thyssen <A.Thyssen@griffith...>
Error when doing an implicit (final) write to a single space filename. This is typically a failed line continuation and is very common. Using an explicit "-write" will let you do this.
2012-04-20 6.7.6-7 Anthony Thyssen <A.Thyssen@griffith...>
Always unlock the semaphore before returning from the png codec, either by a "return" or png_error(); changed all Magick*Exception() calls after setjmp() to png_error() to ensure proper cleanup (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=16883).
2012-04-10 6.7.6-6 Anthony Thyssen <A.Thyssen@griffith...>
Fixed log known alpha*kernel normalization bug in morphology convolve.
Convolve kernel weights have been separated from alpha blend handling. Un-normalized kernels applied to images with active alpha will no longer be auto-normalized due to the effect of alpha blending. The bug causes images using the default channel setting and having an alpha channel to automatically 'normalize' the results of a convolve during the handling of alpha blending. This probably would cause severe effects when a zero-summing kernel is being used on an image containing an active (though likely fully-opaque) alpha channel, as division by near zero weights would cause extreme color values in results. This bug is not normally seen as convolution, which is normally applied only to fully-opaque images. And using a zero-summing kernel on an image with alpha also results in a transparent image! This is why it was not fixed up until now.
Reduce the scope of quantum_info in the PNG decoder to avoid a possible memory leak (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=20522).
non-verbose identify now reports DirectClass for transparent PNG images to agree with the report by identify -verbose. (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=20448 and https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=15482).
2012-02-22 6.7.5-7 Anthony Thyssen <A.Thyssen@griffith...>
Re-added the Iterative Distance function in morphology (as opposed to the faster more direct 2-pass Distance Function that replaced it) so it can be used in the special situation of Constrained Distance Morphology. https://imagemagick.org/discourse-server//viewtopic.html??f=2&t=18032
Support the -alpha remove option (use it to remove transparency from PDF, convert -density 200 apple.pdf -alpha remove x:).
Use union instead of casting gzFile and BZFILE.
Don't treat PSD user channel as alpha (patch from Dominic Benson).
Prevent overflow when casting short int to size_t when parsing a maliciously crafted image with an IFD whose all IOP tags' value offsets point to the beginning of the IFD itself [CVE-2012-0247].
Prevent DES when parsing a maliciously crafted image with an IFD whose all IOP tags' value offsets point to the beginning of the IFD itself [CVE-2012-0248].
Caption with Pango support no longer return a blank canvas.
Fixed -black-threshold and -white-threshold so they work properly with the -channels option (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=20096).
Add "png:format" property with possible values png8, png24, and png32, for use when prepending the format type to the filename is not convenient or is not possible, e.g., when embedding the PNG in a PNG-encoded ICO.
Revised configure.ac (and configure) to look for -lpng15, -lpng14, -lpng12, and -lpng in that order instead of just -lpng. This should help find a consistent library and headers when users upgrade their libpng delegate from one version to another, incompatible version.
The "-strip" option was excluding the PNG tRNS chunk (see 6.6.6-7, below); revised the -strip option so it behaves as if "-define PNG:include-chunk=none,trns,gama" had appeared on the commandline.
When writing a PNG8 and more than one transparent color is present, merge them into the image->background_color (Reference https://imagemagick.org/discourse-server//viewtopic.html?f=1&t=19329), finishing the implementation started in version 6.6.8-7.
The PNG encoder would sometimes fail to respect the -define PNG:color-type option when the incoming image was PseudoClass (reference https://imagemagick.org/discourse-server//viewtopic.html?f=1&t=19262).
Use zlib default compression strategy instead of Z_RLE and Z_FIXED strategies when linking with zlib versions (prior to 1.2.0 and 1.2.2.2, respectively) that don't support them.
Exit test loop sooner in coders/png.c when a non-gray pixel is found.
Added "-define PNG:compression-level|strategy|filter=value" options to the PNG encoder. If these options are used, they take precedence over the -quality option (reference https://imagemagick.org/discourse-server//viewtopic.html?&f=1&p=73548).
2011-06-14 6.7.0-8 Anthony Thyssen <A.Thyssen@griffith...>
Added Initial implementation of Cylinder to/from Plane 3D Distorts Includes derivative (scaled lookup), and anti-aliased horizon (validity) Currently can NOT handle extractions from full 360 cylinder panoramas.
The PNG encoder would sometimes make black pixels transparent when some other gray level was supposed to be the transparent color (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18900). This occurred only with 1, 2, 4-bit grayscale images with Q16 or Q32 builds.
The PNG encoder now respects the -depth setting, including 1, 2, 4. Previously settings other than 8 and 16 were ignored (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18412).
Fixed some cut-and-paste errors in new png.c code that caused PNG8 reductions to fail.
2011-05-02 6.6.9-8 Anthony Thyssen <A.Thyssen@griffith...>
Add various Option Flags, and fix option skip counts for plus forms of simple operators where plus form is the same as minus form. For example the incorrect counts produces a weird error, and possible future segmentation fault in a command like convert rose: +border show:
2011-04-21 6.6.9-6 Anthony Thyssen <A.Thyssen@griffith...>
Make filter:blur define a multiplicative adjustment of filter settings rather than a complete override of those settings.
Add Flags to CommandOptions parse table, removing the need for ImageListOptions parsing table. This is the start of development to produce a "convert" replacement that can read options from both command line and from files or pipelines, in "Do it Immediately" handling.
Crop Bug Fix. Prevent infinite loop with "+repage -crop 0x40"
Added "date" to the things that can appear on the -define PNG:exclude-chunk list. This excludes the IM-generated Date:modify and Date:create properties from PNG output text chunks without excluding the rest of the text chunks.
Added "#define PNG_PTR_NORETURN" because this macro does not work on all platforms with libpng15, with failure to load png_longjmp() (ref https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18518).
2011-04-14 6.6.9-5 Anthony Thyssen <A.Thyssen@griffith...>
Layers Composition Bug Fix, animations attributes of first image not transferred in a single destination, multi-source image composition.
2011-04-09 6.6.9-5 Anthony Thyssen <A.Thyssen@griffith...>
Add a special 'Voronoi' Morphology Distance method that will fill in holes using the nearest non-transparent edge pixel. It is experimental, and hidden from normal morphology usage, as it may be interfaced with a future hole-filling color 'Diffusion' method.
2011-04-07 6.6.9-5 Anthony Thyssen <A.Thyssen@griffith...>
Major BUG FIX - wrong sign breaks most morphology methods in IM v6.6.9-4
Fixed -region handling of transparency. Original images without transparency will use 'Over' while images with transparency will preserve transparency using 'Copy'. Before this only 'Over' was used due to the testing of the wrong image.
Added Compose methods DarkenIntensity and LightenIntensity
Make the PNG encoder use depth==8 when incoming image->depth < 8 (the encoder later reduces the depth if it can), to avoid writing an incorrect image.
Remove any bogus colormap received by the PNG encoder with an image that is not PseudoClass (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18475).
Revised the png decoder to store the PNG IHDR and other known PNG chunk data as properties, for later retrieval and reporting by "identify", so users can easily and reliably discover the color-type, bit-depth, etc that were in the input PNG datastream.
The PNG decoder sometimes set images with more than 256 different gray-alpha pixels to storage_class=PseudoClass with an incorrect colormap.
2011-03-30 6.6.9-2 Anthony Thyssen <A.Thyssen@griffith...>
Add a "Resize" distortion method (distort equivalent of -resize).
Special CLI handling so -distort Resize takes a "geometry" argument.
Remove version from etc folder and instead use /etc/ImageMagick.
2011-03-28 6.6.9-0 Anthony Thyssen <A.Thyssen@griffith...>
Separated complex cropping function from TransformImage() as a new function CropImageToTiles(). This new function returns either the new cropped image, or a list of tiles, according to geometry, without replacing the source image. The Source image may be part of a larger list of images, without the function 'losing' the other images of the list.
2011-03-27 6.6.8-10 Anthony Thyssen <A.Thyssen@griffith...>
Modified image handling in MogrifyImages() and MogrifyImage() which improves overall handling, and allows correct %p, %n and the %[fx:..] 't' and 'n' escape usage to work correctly.
Added -duplicate as a multi-image sequence operator
Revised the PNG8 encoder to use 50% threshold instead of 0% when reducing transparency to binary. Collapse all resulting fully transparent colors into one (the background color), to reduce the compressed filesize.
First try the 4-4-4-1 and 3-3-3-1 palettes instead of 3-3-2-1, to preserve colors (especially gray) better, when reducing to PNG8.
Force the PNG encoder to return image->matte==MagickTrue when the format is RGBA or GA or if the tRNS chunk is present, even when the image is fully opaque (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18349).
Re-enabled reduction of grayscale images (color-type 0) to 2 or 4 bits when appropriate (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18098).
The "-define PNG:color-type=4" option did not always force the PNG encoder to write an all-opaque alpha channel (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18349).
Fixed memory leak for PDF and Bitmap PSD RLE support (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18317).
Support the -statistic option: replace each pixel with corresponding statistic from the neighborhood.
Add support for -duplicate option.
Move configuration files from /usr/share and /usr/lib to /etc and /var.
Do not cache the results of fx: otherwise -format '%[fx:rand()] %[fx:rand()]' returns the same random numbers.
2011-03-18 6.6.8-6 Anthony Thyssen <A.Thyssen@griffith...>
Replaced Minus and Divide Composition methods with Dst and Src equivalents. Now users can decide how these non-commutative mathematical operators are applied to the images being composited.
Fix the percent escape values for %p, %n and %[fx:t], %[fx:n] to respectively mean the current images index and the total number of images within the current image sequence.
2011-03-17 6.6.8-5 Anthony Thyssen <A.Thyssen@griffith...>
Backed out the patch for Variable Blur Composition that was added 2011-02-13 v6.6.7-7, until I can re-think the problem. The existing fix was failing to do circular blurs correctly.
Fixed a rounding/truncation error while writing the pHYs chunk in the png encoder.
Don't write text-encoded profile when "-define PNG:exclude-chunk=text,ztxt" is present (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=17086 and https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18225).
Don't try to store a bKGD chunk in a PNG8 when there are already 256 colors in the palette and the background colors is not in that palette (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18199);
The "-define PNG:exclude-chunk=bKGD" option was also excluding the text chunks. (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18253).
Throw error message when the requested color-type or bit-depth cannot be written by the PNG encoder (error was being thrown into the wrong image structure). (Reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18162).
Don't write a PNG text chunk with "density" keyword that overrides the PNG pHYs chunk, if the pHYs chunk was not excluded (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18253).
Ignore any PNG text chunk with a "density" keyword found by the PNG decoder, if the PNG datastream also contains a pHYs chunk.
Fix scaling of new color-reduction method in the PNG encoder (16-bit images were scaled down to 0 or 1, or nearly black).
Delay opening the PNG output blob until the PNG encoder is ready to write the IHDR chunk, to avoid writing zero-length PNG files when errors are found while building the palette. (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18162).
Write sub-8-bit grayscale PNG images as palette-indexed PNG images. This usually makes smaller files anyhow.
Eliminated a number of redundant tests for gray images in the PNG encoder.
Removed now-unused IsMonochromeImage() function from coders/png.c
Scan the colormap instead of all of the pixels, when possible, to determine whether the image received by the PNG encoder is grayscale or black-and-white.
Avoid reading from the colormap in coders/png.c when it is NULL (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18162).
Add a check whether the PNG "cheap transparency" criteria are met. That is, there is a single transparent color, no semitransparent colors, and no opaque color that has the same RGB components as the transparent color. If those aren't met, a color that is transparent in one pixel and opaque in another would always be rendered as transparent, so we must write a PNG colortype that has an alpha channel (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18167).
Disabled reduction of grayscale images (color-type 0) to less than 8 bits when writing because this sometimes produced incorrect output (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18098).
The PNG encoder should ignore bogus q->opacity values when image->matte is MagickFalse (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=18067).
Removed a call to GetNumberColors() from the PNG encoder that was only there for debugging purposes and was consuming a huge amount of CPU time. (reference https://imagemagick.org/discourse-server//viewtopic.html?f=2&t=17799).
Sometimes black was still written as transparent, when the PNG encoder received an image with image->matte==true but no transparent pixels were present. (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=17913);
Changed the PNG encoder's "transparent_color" from a UShortPixelPacket to LongPixelPacket and made the default (65537,65537,65537), which can never occur in the PNG image data. Previously the default was (0,0,0) and black pixels would be rendered as as transparent when no tRNS chunk was present in the input, which has caused problems with some test cases since version 6.6.6-10.
Improved the PNG_BUILD_PALETTE section to count opaque, transparent, and semitransparent pixels separately. Previously it wasn't always possible to determine if there was a single fully-transparent color, to decide whether to write an RGBA or Gray-Alpha image or an RGB or Gray image with a tRNS chunk.
Don't let the PNG encoder try to sort the colormap when there are more than 256 colors in the image. (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=17834).
Quieted some inconsequential warnings in the PNG codec due to a change in the type of the PNG iCCP profile from png_charp to png_bytep in libpng-1.5.0.
Recent changes sometimes caused the PNG encoder to select colortype=2 (Truecolor) instead of 0 (Grayscale) for grayscale images. This made the filesize larger than necessary and caused some of the PerlMagick tests to fail.
The PNG decoder now checks whether the image actually has any transparency when the input file contains an alpha channel or a tRNS chunk. (Reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=17748)
Use a clone instead of the main image in coders/png.c, so the image can still be used later on without being affected by changes made by the PNG encoder.
Added PNG:exclude-chunk and PNG:include-chunk defines.
Revised the -strip option so it behaves as though "-define PNG:include-chunk=none,gama" had appeared on the commandline.
Avoid writing PNG ancillary chunks in the PNG/MNG/JNG encoder while generating the alpha channel for a JNG image.
2010-12-21 6.6.6-7 Anthony Thyssen <A.Thyssen@griffith...>
Removed the forced interpolation setting in AcquireResampleFilterThreadSet It prevented user defined interpolation settings for -clut, and possibly other usage.
2010-12-17 6.6.6-6 Chris Madison <madisonblu@gmail...>
Make the PNG encoder always rebuild the palette, to avoid losing transparency when it is out of sync with the pixel data (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=17655).
Eliminated CompressColormapTransFirst() since the palette is already compressed and sorted by opacity now when it's recreated.
Account for virtual canvas for the -flip / -flop options (reference https://imagemagick.org/discourse-server//viewtopic.html?f=1&t=17626).
Also for -transpose and transverse options
Support -metric fuzz option.
2010-12-09 6.6.6-4 Anthony Thyssen <A.Thyssen@griffith...>
Replace IsMagickColorSimilar() which provides the Fuzz Factor threshold function. Note function does not calculate 'distance' in total but short-circuits when threshold is reached for faster processing.
Ordered Dithered handling of Alpha channel was incorrect - fixing Bug was introduced v6.6.5-6
Many of the problems with the PNG encoder have been fixed (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=16490).
The "-type Optimize" option is now deprecated. If present, it is treated by the PNG encoder the same as if the type were undefined. Optimization is now always performed. No other formats used the "type Optimize" option.
Merged redundant code into LosslessReduceDepth() function in the PNG codec.
The splice option no longer throws spurious "pixels are not authentic" exceptions.
Thread the -adaptive-resize option.
Set XBM coder height to height not width.
2010-11-14 6.6.5-9 Nicolas Robidoux <nicolas.robidoux@gmai...>
Lanczos2Sharp blur tweaked. New blur = 0.9549963639785485.
2010-11-13 6.6.5-9 Nicolas Robidoux <nicolas.robidoux@gmai...>
LanczosSharp blur tweaked to minimize worst case deviation from "perfect preservation of images which only vary horizontally (or vertically)" under no-op. New blur = 0.9812505644269356.
2010-11-08 6.6.5-8 Nicolas Robidoux <nicolas.robidoux@gmai...>
Use #pragma omp master for dumping single threaded debugging information (single caused a fault).
Add support for -evaluate exp.
2010-10-12 6.6.5-0 Anthony Thyssen <A.Thyssen@griffith...>
Added "filter:sigma" expert setting defining the 'sigma' for the Gaussian filter only. This is similar in action to 'blur' but only for Gaussians, and does not modify the filters support, allowing you to set a very small sigma, without the function 'missing' all pixels. (This will allow future adjustment of Gaussians for variable blur mapping)
Patch for DrawableRotation() and DrawableTranslation() (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=17246).
The webp format requires the webpconv delegate program (experimental).
2010-10-05 6.6.5-0 Anthony Thyssen <A.Thyssen@griffith...>
Replaced "Robidoux" with Cubic 'Keys' filter that is near equivalent to the previous sharped "Lanczos2D" filter. (C=0.31089212245300069) This also is very similar to a Mitchell filter but specifically designed for EWA use and is the new default filter for Distorting Images.
Original sharpened Lanczos2D filter now called "Lanczos2Dsharp"
2010-10-08 6.6.4-10 Jerry Gay <jerry.gay@gmail..>
Autodetect file type support in Makefile.PL to prevent test failures
2010-10-05 6.6.4-10 Anthony Thyssen <A.Thyssen@griffith...>
Added new filter 'Lanczos2D' a 2-lobe Lanczos as defined by Andreas Gustafsson in his thesis "Interactive Image Warping" (page 24) http://www.gson.org/thesis/warping-thesis.pdf
Added filter "Robidoux" which is a slightly sharpened version of the "Lanczos2D" filter (blur=0.958033808) specifically designed to be less 'blurry' for horizontal and vertical lines in no-op distortions.
Fix memory assertion with --enable-embeddable (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=17201).
Don't permit access to pixels when pinging an image (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=17194).
2010-10-02 6.6.4-9 Anthony Thyssen <A.Thyssen@griffith...>
Added sqrt(2) blurring default for Gaussian Filter if used as a Cylindrical EWA filter. This resulted removing the last aliasing issue that was present in tests for Gaussian EWA resampling. Of course it is still a very blurry filter for default use in EWA.
Adjusted Variable Mapping Blur Composition so user arguments actual relate properly to the sigma of the blur for a maximum mapping value.
Fix horizon anti-aliasing for output-scaled perspective distortions.
'Bessel' filter is now officially and more accurately named 'Jinc' however 'Bessel' while not visible as a filter option can still be used as an internal alias for 'Jinc'.
2010-09-28 6.6.4-8 Nicolas Robidoux <nicolas.robidoux@gmai...>
Chantal Racette double checked the bounding parallelogram computation in resample.c (and I tightened the comments).
Temporary files not always deleted (reference https://imagemagick.org/discourse-server//viewtopic.html?f=2&t=15960).
2010-09-28 6.6.4-8 Anthony Thyssen <A.Thyssen@griffith...>
Bug fix for -filter point distorts (occasional generating black pixels)
2010-09-27 6.6.4-8 Nicolas Robidoux <nicolas.robidoux@gmai...>
Simplified the ClampUpAxes code, the use of its outputs, its comments, and credited Craig DeForest for the "clamp singular values" idea.
No reason to have "insane" precision Sinc in resize.c: Use the 1.2e-12 max. abs. relative error version for Q64 as well as Q32.
2010-09-27 6.6.4-8 Anthony Thyssen <A.Thyssen@griffith...>
Replace the blurry "High Quality EWA" technique with a 'Clamped EWA' for Distort Resampling. This makes -distort a whole lot nicer and allows for the use of better cylindrical filters.
2010-09-26 6.6.4-7 Anthony Thyssen <A.Thyssen@griffith...>
Fix Point filter for ResizeImage() caused by support limiting the Box weighting function.
Do not break words if caption size is absolute (reference https://imagemagick.org/discourse-server//viewtopic.html?f=1&t=17123).
Don't define HAVE_THREADS for --without-threads configure script option.
2010-09-20 6.6.4-5 Nicolas Robidoux <nicolas.robidoux@gmai...>
Modified "magick/resize.c" so that MagickPIL is a MagickRealType number. Some computations were needlessly done in long double precision because PIL forced an automatic upcast wherever it appeared. Changed its name to MagickREALTYPEPI. <- This was later reverted back to MagickPIL.
Modified "magick/resize.c" so that Bohman uses one trig call + one sqrt call instead of two trig calls.
2010-09-20 6.6.4-5 Anthony Thyssen <A.Thyssen@griffith...>
modified "magick/resample.c" to allow use of either EWA or HQEWA (default)
Removed LanczosFast from supported filters (SincFast*SincFast is faster)
IPTC profile not always wrapped properly inside an 8BIM profile.
TIFF tile geometry must be divisible by 16.
2010-09-15 6.6.4-2 Anthony Thyssen <A.Thyssen@griffith...>
Rename of SincPolynomial to SincFast for easier user understanding
Ditto for LanczosChebyshev to LanzcosFast
2010-09-14 6.6.4-2 Anthony Thyssen <A.Thyssen@griffith...>
Switch default resize filters to using the faster SincPolynomial filter by default internally. However 'Sinc' will still use the Trigonometric function, and can be used to assign the trig version of Sinc() to filters using the filter expert options.
The default filter for 'distort' was found to be a very blurry inaccurate filter function. It was removed and replaced with a correct Gaussian filter (as used by resize)
Added a switch so that "-interpolate filter" will force the use of a cylindrical filter for ALL pixels in distorted images. That is you can use that switch to use a cylindrical filter even for images that are being enlarged by the distortion. However EWA is still currently using a fixed 2.0 sampling radius. This switch complements the use of "-filter point" which turns off EWA filters in favor of interpolation for all pixels in a distorted image. BOTH switches should not be used together.
A bug in the support radius of the EWA resampling function was found, now that correctly defined resize filters are being used. Suddenly Normal Gaussian distortions are not so blurry, and tests with distortions of the 'Rings' image show extremely good and clear results, with only minimal blurring. The filter 'blur' expert option can be used to adjust this further.
The above represents a major improvement forward in the quality of the image distortion operator. But near-unity distortions (no scaling) are still overly blurry.
The RGBO format is now listed as a supported format.
2010-09-07 6.6.4-1 Anthony Thyssen <A.Thyssen@griffith...>
Added the Nicolas Robidoux and Chantal Racette Lanczos resize filter function as "LanczosChebyshev" as faster alternative to Lanczos.
Re-code Nicolas Robidoux and Chantal Racette Polynomial Approximation of the Sinc Trigonometric resize filter, as a proper filter to allow direct comparison and speed testing of the filter.
Expanded the "-set option:filter:verbose 1" output, so as to also include the actual functions and other values that were used to create the filter.
2010-09-02 6.6.4-0 el_supremo <digipete@shaw...>
Repair a few incorrect LocaleNCompare() calls (ttf.c, ps.c).
Eliminate useless message about assuming zero delay when writing a single-frame MNG, and changed it from Error to Warning when writing a multiple-frame MNG.
Don't "ping" a PNG image if it is embedded in a MNG. Otherwise the reader tries to read MNG chunks from the interior of the embedded PNG, resulting in an erroneous "corrupted image" message.
The PNG decoder failed to handle the tRNS chunk properly for grayscale images where the PNG bit_depth was not the same as the quantum depth, and the transparent color was not black.
2010-07-01 6.6.3-0 Chris Madison <madisonblu@gmail...>
Pinging the DJVU image format no longer faults.
Check for time-limit-exceeded in only one thread.
Reading filenames from a file (e.g. @filenames) no longer includes the utility name (side effect of StringToArgv() method).
Properly scale color components of the PNG bKGD chunk.
Prevent MNG divide by zero in calculation of frame_timeout. Set both frame_delay and frame_timeout to infinite when ticks_per_second is zero, as required by the MNG spec.
Do not interpret a format specifier when enclosed in brackets (e.g. rose_tile_%[filename:tile].gif.
Use 64-bit types when compiling with the 64-bit Visual C++ compiler under Windows.
Prevent MNG divide by zero in calculation of frame_delay (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=16320).
2010-05-23 6.6.2-0 Anthony Thyssen <A.Thyssen@griffith...>
Third Re-write of MorphologyApply() to better handle compound methods.
Implemented -set option:morphology:compose for merging results of multiple kernels. "None" means re-iterate results with next kernel. While "Undefined" means to use the internal default for a method. Thinning, Thickening, HitAndMiss, Convolve, Correlate defaults to "None" while HitAndMiss defaults to "Lighten" (union of all kernel results). Other morphology methods defaults still to be decided.
Added HitAndMiss Kernel: Ridges (find ridges and pixel width lines)
Rotation Expansion of single kernels '^' and '@' flags in arguments EG: -set option:showkernel 1 -morphology Convolve 'Blur:0x2^'
ExpandKernelInfo() (rotation expand) now groks symmetrical kernels. So the above will only produce a list of 2 kernels, not 4 kernels
2010-05-18 6.6.2-0 Anthony Thyssen <A.Thyssen@griffith...>
Separation of internal function MorphologyApply() from MorphologyImageChannel() to calls to convolve without user settings.
Rewrite of MorphologyApply() to output better 'verbose' messages
Better handling of Gaussian tyle filters (bug fixes)
Bug fix and optimization of kernel size calculations in "gem.c"
Allow '^' or '@' flags in 'user defined' kernel size arguments to expand kernel into a rotated list. EG: -set option:showkernel 1 -morphology Thinning '3@: 0,1,0 0,1,0 0,0,0'
Allow a scaled unity kernel to be added to kernel (EdgeDet->Sharpen) EG: -set option:convolve:scale [kernel_scale][^!],[unity_scale][%]
Addition of "Laplacian of Gaussian" (LOG), also known as Mexican Hat EG: -morphology convolve LOG:0x1
Added FreiChen, Kirsch Convolution kernels
Added Discrete 'Laplacian of Gaussian' kernels (Laplacian type 15 and 19)
Increase the estimated # points for the path drawing primitive.
Remove any prior resolution block from PSD before writing the new block.
2010-05-14 6.6.1-9 Anthony Thyssen <A.Thyssen@griffith...>
Addition of more Morphological/Convolution Kernels. DOG (Difference of Gaussians) and DOB (Difference of Blurs), EG: -morphology convolve DOG:0x1,3 -morphology convolve DOB:0x1,3,90
Do not claim gray colorspace if gray image includes a non-gray pixel.
Initialize BMP alpha channel to opaque for RGB images.
Fixed under allocation for round rectangles.
The -list option returns a 0 status as expected.
2010-05-06 6.6.1-6 Anthony Thyssen <A.Thyssen@griffith...>
Made use of new no-'sync' channel enabled mathematical compose methods for the difference morphology methods. These should now work correctly for specific channels, and more importantly for alpha shaped morphology.
Simplified and corrected rowbytes calculation in coders/png.c and added more logging.
2010-05-05 6.6.1-6 Anthony Thyssen <A.Thyssen@griffith...>
Rename of "Add" and "Subtract" compositions to "ModulusAdd" and "ModulusSubtract" for more clarity of there functions. Old names will continue to work as expected.
Fix "Minus", "ModulusAdd", and "ModulusSubtract" to follow normal SVG 'Over' blending specifications, (see next for override) Note that this does NOT include the "Plus" composition method which has SVG definition for it to use a 'Plus' blending rather than 'Over' blending.
By default mathematical compositions work as per SVG definition. That is the results are synchronized with 'Over' alpha-blending (except "Plus" which uses 'plus' alpha-blending).
By removing the default 'sync' flag from the -channel setting however Break this inter-channel synchronization and do the mathematical operations only on the individual channels as specified by the -channel setting. That is do 'channel' math rather than 'SVG' composition.
With this change you can then use mathematical composition methods on individual channels or even with the alpha channel of images.
2010-04-28 6.6.1-6 Anthony Thyssen <A.Thyssen@griffith...>
Special case handling in Barrel distortion (pixel at image center)
Calculation of image for Barrel distortion (pixel vs image coords)
Argument input (handling optional 'd' argument) for Barrel distortion
The -direction option now works with the -annotate and -draw options.
For the histogram: format, if you have no need for the unique color list, use <kbd>-define histogram:unique-colors=false</kbd> to forego this expensive operation.
Match on literal after backslash in glob expression (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=16068).
Enable JPEG-compression for grayscale TIFF images (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=16064).
Don't write empty tile if tile geometry matches the image width (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=16064).
Support -regard-warnings in the mogrify utility.
Output the correct units for the identify utility (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=16075).
2010-04-06 6.6.1-1 Anthony Thyssen <A.Thyssen@griffith...>
Fixed bug in -auto-level for special case when only one value is present in some channel of the image. In this case no 'stretch is performed, just as -normalize does.
The animate program no longer loops twice when -loop 1 is specified.
The caption format would sometimes hang when the text was not UTF-8.
Don't gamma correct log to linear color conversion unless the -gamma is specified (reference https://imagemagick.org/discourse-server//viewtopic.html?f=1&t=15799).
The default Helvetica font is not always available, check for Century Schoolbook too (reference https://imagemagick.org/discourse-server//viewtopic.html?f=2&t=15780).
Check to see if ICON image width /height exceeds that of the image canvas.
Set the DPX descriptor to Luma only if the image type is not TrueColor.
Add support for -fx airy(), j0(), j1(), jinc(), and sinc() (reference https://imagemagick.org/discourse-server//viewtopic.html?f=2&t=15685). Anthony, review these for correctness.
Don't embed an XMP profile in an EPS image for now.
Make -define png:color-type less persnickety about what it will accept.
2010-01-24 6.5.9-1 Anthony Thyssen <A.Thyssen@griffith...>
added use of -precision in 'showkernel' output of -morphology
correct use of a 'reflected kernel' for 'Convolve' 'Dilate' and 'Distance' Morphology primitives. This does not have a performance hit, though is only truely applicable when the kernel is asymmetric. Note that 'Erode' does not use a 'reflected' kernel, so that 'Open' and 'Close' operations work properly. This 'reflected usage is defined by online morphology lecture notes (Google for "EECE Binary Morphology")
Added convolve kernel scaling setting "-set option:convolve:scale N" If undefined morphology convolve does not do any scaling or normalization of the convolution kernel. A value of 0.0 causes normalization for both zero and non-zero (added weights) kernel types.
Add support for compact floating point (i.e. -depth 16 -define quantum:format=floating-point).
Transparent images no longer flicker on certain system when using the display program.
Permit interactive resizing with the display program.
Support heterogeneous distributed processing, see ../www/architecture.html#distributed.
Fix semaphore assertion when reading a corrupt image with Magick++.
Add support for -brightness-contrast option.
2010-01-05 6.5.9-0 Stephan Menzel <stephan.menzel@gmail...>
Add support for the BGRA raw image format.
2010-01-04 6.5.9-0 Anthony Thyssen <A.Thyssen@griffith...>
Added Kernel Generator to generate kernels from user strings, which allows the generation in many built in kernels for both Convolution and other Morphological methods. New Kernels currently include.. Convolution: Gaussian, Blur, Comet Morphological: Rectangle, Square, Diamond, Disk, Plus Distance: Chebyshev, Manhatten, Knight, Euclidean And both old and new (rectangular) user defined kernel specifications including the use of 'nan' to represent elements which are not part of the kernel definition. List built-in kernel types use "-list kernel"
Added -morphology {method}[:{iteration}] {kernel_string} Initial methods includes no only the basic morphology methods: Dilate, Erode, Open, Close; and a pixel color preserving 'Intensity' version, but also the special methods: Convolve, and Distance. Of course the appropriate kernel should be provided for each specific method.
SVG compile error when if MAGICKCORE_CAIRO_DELEGATE is not defined.
2009-08-23 6.5.5-1 Anthony Thyssen <A.Thyssen@griffith...>
Bug Fix for transparency handling in Composite Variable Blur
Addition of -auto-level and -auto-gamma image enhancements (under trial not yet final)
Addition of a special -channel flag 'sync' which means that the specified channels are to be modified together by the same amount. The flag is enabled by default. This replaces the current 'channels not modified' type handling thought IM.
Modified -channel parsing to continue looking for words, after handling any shorthand channel options. For example: -channel RGB,sync
More than one -dispose setting overwrote previous settings (reference https://imagemagick.org/discourse-server//viewtopic.html?f=1&t=14252).
Don't use JPEG's color reduction algorithm for less than 8 colors.
2009-07-13 6.5.4-3 Anthony Thyssen <A.Thyssen@griffith...>
Final testing and bug fixes for all mathematical compose methods Including non-overlapping regions bugs found in in operators Divide, ColorDodge, VividLight. And the handling of transparency to follow standard 'Over' Blending in Divide. Only math methods not looked at are the addition methods Plus, Add, Minus, and Subtract, which do not follow normal 'Over' alpha blending behavior, for the purposes of mask handling.
2009-07-12 6.5.4-3 Anthony Thyssen <A.Thyssen@griffith...>
Addition of user definable 'Mathematics' compose method -compose Mathematics -set option:compose:args A,B,C,D -composite Will implement the formula f(Sc,Dc) = A*Sc*Dc + B*Sc + C*Dc + D this lets you implement most smooth polynomial compose methods. (requested by Fred WienHaus)
2009-07-11 6.5.4-3 Anthony Thyssen <A.Thyssen@griffith...>
Finished the recoding of Composite methods to allow easier debugging and faster access.
Added PegtopLight compose method as an alternative simpler Softlight alternative. See notes and comparison to SoftLight in... http://www.pegtop.net/delphi/articles/blendmodes/softlight.htm
From the notes on Photoshop blend modes at http://www.simplefilter.de/en/basics/mixmods.html Added extra composition modes: VividLight, PinLight, LinearBurn, LinearDodge NOTE: 'LinearBurn' the same as 'Plus' but with the normal 'Over' blending.
2009-07-10 6.5.4-3 Anthony Thyssen <A.Thyssen@griffith...>
Re-coding of Composite methods HardLight, SoftLight, Overlay, LinearLight, ColorBurn, ColorDodge, Multiply, Screen to make it more readable, easier to debug, and directly comparable to SVG specifications.
Specifications changed for SoftLight, ColorBurn, ColorDodge Though only SoftLight changed to significantly.
However implementation errors were found for ColorBurn, LinearLight
Add compression flag for each channel of a PSD layer.
Implement experimental forward and inverse Fourier transforms (contributed by Sean Burke and Fred Weinhaus). The -fft / -ifft option is not ready for prime time just yet.
Support -cdl (color decision list) option.
Don't process directories as filenames when using wildcard paths (i.e. logo[1]/png).
Off by one error for multi-frame raw grayscale images.
Can't stat() a Zip or Bzip opaque structure.
DPX user bits are no longer truncated.
Return image colorspace for -format [%colorspace] option.
ThumbnailImage(): don't subsample if image is already thumbnail size.
2009-06-23 6.5.4-0 Anthony Thyssen <A.Thyssen@griffith...>
Automatic determination of B from C and C from B for a 'Keys Filter' when using the B,C Cubic Filter Expert options was broken. See https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=14037
2009-06-19 6.5.4-0 Anthony Thyssen <A.Thyssen@griffith...>
Added -compose 'Blur', variable blur mapping to CompositeImages Arguments X_scale x Y_scale + angle of the blurring ellipse.
Added "-blur" special compose option to "composite"
2009-06-14 6.5.3-7 Anthony Thyssen <A.Thyssen@griffith...>
Cleanup of compose 'displace' of old useless code that is not used.
Implement a compose 'distort' mapping method, This is basically exactly like 'displace' but relative to a fixed point which may be user supplied as +X+Y
Default scaling to width/2 and height/2 of overlay (100% scale) with a distortion 'center' to the middle of the overlay image
If a '%' flag given scale displacement relative to image size
If a '!' flag given make scale and center relative to 'background' image instead of the overlay map.
If no 'height' scale given, use the X scale.
2009-06-13 6.5.3-6 Anthony Thyssen <A.Thyssen@griffith...>
Fixed bug for compose methods, Hue, Saturate, Luminize
Added the HALD image Color LUT, and a no-op HALD: image generator. See Introduction at http://www.quelsolaar.com/technology/clut.html
2009-06-07 6.5.3-4 Anthony Thyssen <A.Thyssen@griffith...>
Changed CompositeImageChannel() so that extra compose arguments are now passed in the ImageArtifact "compose:args". This can be assigned to images using -set "option:compose:args" 'args' where args are defined using 'geometry' style or 'comma separated numbers'.
Declared the special flag needed for Composite Tiling as the ImageArtifact "compose:outside-overlay".
Documentation update for CompositeImageChannel() in Core Library to reflect these changes.
Documentation update for DistortImage() in Core Library with the extra ImageArtifact controls it can use.
Bug correction in normalization of GetOptimalKernelWidth2D() of gem.c
2009-06-06 6.5.3-3 Anthony Thyssen <A.Thyssen@griffith...>
Documentation update for CompositeImageChannel() in Core Library. This adds the information on how extra compose arguments needed for specific compose methods are actually passed to the library function. Compose methods such as Blend, Dissolve and Displace.
Progress on "-define png:bit-depth=value" and "-define png:color-type=value" It is now able to write an opaque black-and-white image in any of the 15 valid combinations of PNG color-type and bit-depth.
Fixed a regression with writing sub-8-bit grayscale PNGs.
2009-05-06 6.5.2-2 Chris Madison <madisonblu@gmail...>
Create 8-bit TIFF images if -depth is set to 8 and HDRI-enable ImageMagick.
2009-05-04 6.5.2-1 Chris Madison <madisonblu@gmail...>
Accept file lists on the command line (e.g. echo "rose: rose.png" | convert @- ...).
Duplicate line in tiff.c breaking read of zip compressed tif (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=13688).
Support policies to permit or deny any coder, delegate, filter, or file path (see policy.xml).
2009-05-02 6.5.2-0 Chris Madison <madisonblu@gmail...>
The mogrify -crop option returns multiple images if an x/y offset is not specified (e.g. -crop 100x100).
Generate a proper file path for -path @filelist.txt (reference https://imagemagick.org/discourse-server//viewtopic.html?f=1&t=13671).
Accept "-define png:bit-depth=value" and "-define png:color-type=value" options. This is work-in-progress with the objective of being able to precisely specify the type of PNG file to be written. The previously-used internal attribute "png:bit-depth" that was used to communicate between the PNG writer and the JNG writer is changed to "png:bit-depth-written". This feature needs testing. It is important to note that this feature cannot be used to force the PNG to use a bit-depth or color-type that does not losslessly represent the image. You can, however, cause the writer to use a larger depth or to use the RGB colorspace when grayscale or indexed would have been sufficient.
2009-05-01 6.5.1-10 Anthony Thyssen <A.Thyssen@griffith...>
Fixed the Rmin usage in Depolar and Polar distortions
The 6th argument (Ato) for Polar/Depolar is now optional and defaults to Afrom + 360 degrees (or a fill circle from the given start angle)
Image not properly placed when displaying to the X server root (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=13532).
fmax() is not support on some platforms (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=13533).
2009-04-11 6.5.1-2 Anthony Thyssen <A.Thyssen@griffith...>
Rename existing "Bilinear" distortion as "BilinearReverse"
Added forward mapped bilinear distort as "BilinearForward"
The "Bilinear" distort is temporarily obsoleted but will eventually be added as a "BilinearReverse" and "BilinearForward" combination mapping though a unit square.
Sparse Gradient internally uses "BilinearReverse" for its "Bilinear" gradient function as that method is the direct use of such equations.
Convert returns MagickFalse for the -version option (reference https://imagemagick.org/discourse-server//viewtopic.html?f=2&t=13230).
Don't set pixel opacity unless the image alpha channel is active (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=13189).
2009-02-27 6.4.9-8 Anthony Thyssen <A.Thyssen@griffith...>
Fix old -clut bug for re-coloring gray images using transparent and semi-transparent colors.
2009-02-22 6.4.9-7 Rick Mabry <rick.mabry@anony...>
Changes have been made to scores of the files that generate the documentation. The most noticeable cosmetic changes are to the command-line examples and command-line snippets, which now have a new look: dark blue boxes with white/yellow text to indicate sample input/output. Inclusion of current version and release dates in appropriate places are now automatically generated. Also, many changes have been made to begin to bring the pages into strict W3C compliance with respect to both HTML and CSS.
2009-02-21 6.4.9-7 Chris Madison <madisonblu@gmail...>
The identify program reads the image pixels when the -format option is asking for image statistics.
Much improved ImageMagick validation suite (exercise with 'make check').
2009-02-18 6.4.9-5 Jon <jon@brick...>
Processing the arg list -tile is replaced by -sans0 which is 1 char longer and which overwrites the allocated area.
2009-02-16 6.4.9-5 Chris Madison <madisonblu@gmail...>
Add section to license to alert users to third-party licenses in the NOTICE file.
2009-02-11 6.4.9-3 Anthony <A.Thyssen@griffith...>
Replaced geometry string parsing using ParseGravityGeometry() in "composite" with more direct use of GravityAdjustGeometry();
Calculate the kurtosis and skewness of image channels (reference http://amartyosscrapbook.blogspot.com/2008/12/formulas-used-to-calculate-kurtosis-and.html).
2008-12-28 6.4.8-4 Rick Mabry <rick.mabry@anony...>
Patch magick/display.c and PerlMagick/ContrastStretchImage() to return the same results as the -contrast-stretch option.
ContrastStretchImageChannel() no longer interpreted as Contast() by MogrifyRegion() in PerlMagick.
2008-12-28 6.4.8-3 Rick Mabry <rick.mabry@anony...>
Reverse argument and option in Throw*InvalidArgumentException() macro for proper exception message.
Recognize negative geometries for -shear and -annotate (.e.g. 45x-30).
pthread_t can be aggregate so stop treating it like its atomic.
default the WPG image size to 1 top avoid "no pixels defined in cache" exceptions.
2008-10-17 6.4.4-8 Anthony <A.Thyssen@griffith...>
slight modification of the added "radial-gradient:" image generator so the radius goes to an edge rather than the corner, allowing more user control based on image size.
Don't unregister a module for an image coder signature exception.
Don't assume a monochrome image is colormapped.
2008-09-25 6.4.4-0 Anthony <A.Thyssen@griffith...>
Attempt to fix three image "composite -displace" while also allowing use of separate X, Y grayscale displacement maps, or a merged X=red Y=green (later transparency mask will also be added) as discussed in IM Examples, 'distortion maps', but for -displace.
Fixed an OTB coder bug (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=12119).
2008-09-23 6.4.3-8 Peter Fales <psfales@alcat...>
Add NULL terminator to options list to in MontageImageCommand().
2008-09-23 6.4.3-8 Anthony <A.Thyssen@griffith...>
Added -layers TrimBounds which will adjust the offsets and canvas bounds to fit the current sequence of layered/animated images. The images themselves are not modified only the 'page' meta-data. As a side-effect all offsets will become positive, with a minimal canvas width/height.
Patch -fx to properly recognize maxima and minima.
Add channel specifier to -fx depth, mean, maxima, minima, and standard_deviation (e.g. depth.r).
Properly append .magick to the USERPROFILES path (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=11806).
2008-07-30 6.4.2-6 Anthony <anthony@griffith...>
Added a "-set option:distort:scale" which scales the output 'view' by the amount given. This is directly useful for doing 'super-sampled' distorts, just set this, the scale the result back to a normal size.
2008-07-27 6.4.2-5 Anthony <anthony@griffith...>
Rewrite on coefficient handling for DistortImages so allow for generation by other operators (SparseColor), and addition of verbose output of equivalent -fx functions for DistortImages to report of the internal coefficients that was calculated, and who they are used.
Initial implementation of SparseColor for interpolated gradients from sparsely separated points of color (or possibly other forms of arguments)
New distortion Barrel as defined by Helmut Dersch options A,B,C,D on his web page http://www.all-in-one.ee/~dersch/barrel/barrel.html And as developed by Fred WeinHaus in his PinBarrel script
Fixed cache nexus threading problem to avoid spurious assertions when calling the DistortImage() method.
2008-07-17 6.4.2-4 Anthony <anthony@griffith...>
New distortion Shepards which provide semi-localized distorts of control points within an image, as first developed for IM by Frew Weinhaus in his ShapeMorph script. http://www.fmwconcepts.com/imagemagick/shapemorph/ It's almost like taffy pulling!
2008-07-12 6.4.2-2 Anthony <anthony@griffith...>
Separate coefficient calculation from DistortImages (future development)
Perspective and Bilinear Distortions fallback to Affine when less than 4 point pairs are provided.
Affine Distortion now handles 2 point pairs (SRT of a single line) and a simple translation if only a single point pair is provided.
Added 'verbose' output of some of the distortion equations generated
Initial addition of polynomal distortion (incomplete - not working yet)
Use the source image interpolation method when drawing an affine image.
2008-06-24 6.4.2-1 Anthony <anthony@griffith...>
Added new operator +/-level-colors which will 'level' images based on colors to use for the black and white points. This lets to adjust the image in terms of mapping the given colors from/to black and white respectively.
2008-06-23 6.4.2-0 Christian Lackas <christian@lacka...>
Fix a problem with calling mpeg2encode with parameters (%o/%i) in wrong order.
Add pow as an -evaluate operation, using normalized values
2008-06-18 6.4.1-9 Anthony <anthony@griffith...>
Added a LevelizeImageChannels() which is similar to LevelImageChannels() Function maps black and white values to the given level values. Rather than mapping the given level values to black and white. Basically a 'reverse-level' function, with different input args.
Set +level or a '!' flag in -level or LevelImage() to call the new 'reverse-level' function LevelizeImageChannels().
More work on IsMagickColorSimilar() to fix relationship between transparent-black and opaque-black, which was matched as 'similar'. Also attempts to fix 'K' channel handling for CMYK colorspace. More work on this to come.
Distinguish between pre and post processing of image list options.
Return MagickTrue if InvokeDynamicImageFilter() does not generate an exception (reference https://imagemagick.org/discourse-server//viewtopic.html?f=2&t=11065).
Instead of masking the PNG tRNS values when reducing from 16-bit, set image->matte to MagickFalse and emit a warning. This will produce behavior similar to that of libpng-1.2.27 (and libpng-1.2.19 and earlier).
Use GetImagePixels() rather than SetImagePixels() when making multiple passes and setting image pixels (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=11022).
Revised png.c to avoid saving unknown chunk types that will never be used later. This prevents the vulnerability described in CVE-2008-1382, with respect to all unknown chunks except vpAg. To handle an invalid, zero-length vpAg chunk properly will require libpng-1.2.27 or later.
Upgrade to FPX version libfpx-1.2.0.14 (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=10041).
Modules are searched first in the directories specified by the environment variables, and then -- if the desired module is not found -- in the compiled-in path. (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=10039).
The -equalize option now respects the -channel option.
2007-10-23 6.3.6-4 Anthony <anthony@griffith...>
Additional Filters: Welsh, Parzen, Lagrangian
Addition of Cubic filter B,C controls
'verbose' filter plotting output using -define "filter:verbose"
2007-10-20 6.3.6-3 Anthony <anthony@griffith...>
Further expansion and handling of filters with expert options. -filter selects from a table of standard filter settings, while expert options allow complete selection of filter, windowing, support and blurring options. Includes automatic switch from Sinc to Bessel for operators using 2-dimensional cylindrical filter, rather than two pass 1-dimensional orthogonal filters.
Least Squares coordinate handling added for -distort methods Affine, Perspective, Bilinear. This allows for more than the minimal number of coordinates to be used to 'fit' a distortion function to an image. This addition will allow the use of image registration to generate panorama overviews and better geographical coordinate correction.
Consolidated the similar methods FlattenImage() and MosaicImage() into a new layers function MergeImageLayers() method, adding 'flatten' and 'mosaic' layer methods.
Addition of another similar layers method 'merge' which 'unlocks' the normal flatten/mosaic layer merger from the origin, The resulting image will have a virtual canvas of minimal size with an offset. Also images with negative offsets will not be clipped by the 'merge' form of the command. This was created for better layering of distorted images, such as panorama overlays.
Bug fix in handling transparency for EWA resampling.
Access to Resize Filter Functions from resize.c (for resample.c) with possible future filter sources... Acquire/Destory/Call ResizeFilter()
All resize filters added to resampling, but filter handling is incomplete.
Check the API version and quantum depth before loading a coder module or image filter (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=9780).
Add exception to the image filter signature.
Get the execution path under Mac OS X.
TIFFTAG_STRIPBYTECOUNTS requires a uint32 pointer (magick/compress.c).
Fixed memory leak in CloneString() (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=9763).
Set S_IRUSR | S_IWUSR | S_IRGRP mode when writing a file in CopyDelegateFile().
2007-09-18 6.3.5-9 Anthony <anthony@griffith...>
Bug fix for +distort in Perspective, also effected PerspectiveProjection
Replace all InterpolatePixelColor() calls to use the ResamplePixelColor() method instead.
Map the display program pan icon window for each oversized image.
The ufraw delegate does not like quotes around the output filename.
Adjust the sensitivity of a few PerlMagick tests to pass the validation on a 64-bit FreeBSD system.
The -level option now works properly for colormapped images.
Allow Extrapolated blending of images using -blend http://netpbm.sourceforge.net/doc/extendedopacity.html
2007-09-12 6.3.5-9 Anthony <anthony@griffith...>
Major Addition, Area Resampling Functions, (scaled interpolation) for pixel lookup in Distortion functions. This improves the look in areas of minification enormously, especially in situations of infinite tiling and horizon views. All virtual pixel methods have been handled to minimise computation time involved with area resampling. To use the new function distortions need to be able to determine scaling vectors (distortion function derivatives) for correct working. All -distort methods, except Arc, uses scaled area resampling.
Improvements to perspective distort method, to include the correct differentiation between the 'ground' on which the image lies, and the 'sky', the color of which can be set using the -mattecolor setting (as the distortion invalid pixel color). Background color is retains for surrounding ground areas. The horizon is also correct anti-aliased and transparent colors are also allowed, allowing you to add backdrops of gradients and patterns.
Add -alpha {activate,deactivate,reset} option to activate, deactivate, or reset the alpha channel.
Render proper image labels for VID coder.
Resolved a conflict for the -list option. Use -list font to list ImageMagick fonts and -list type to list image types.
Catch any errors returned by pthread_mutex_init() (problem report from devman@gmx-t...).
TransformHSL() returns a proper hue component.
Added -clut option and the ClutImage() method.
Fix glyph memory leak in AnnotateImage (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=9523).
Rename analyze.c to Analyze.c (reference ttp://imagemagick.org/discourse-server/viewtopic.html?f=3&t=9538).
2007-08-07 6.3.5-6 Anthony <anthony@griffith...>
Enabled use of +distort to auto resize destination image to 'bestfit' the distorted input image. This also enabled the use of virtual canvas offsets in source and destination images for most distortion methods.
Remove extraneous break statement so -type option properly sets the image_info->type member (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=9261).
2007-07-21 6.3.5-4 Anthony <anthony@griffith...>
Allow the use of optional arguments in -distort SRT
2007-06-29 6.3.5-0 Anthony <anthony@griffith...>
Initial addition of three Affine Distortions to -distort with the affine mapping defined by the use of; an Affine Matrix, Coordinates of Triangles, or separate Scale-Rotate-Translate actions.
Many internal algorithms are now threaded to take advantage of speed-ups offered by the new dual and quad-core processor technologies. and quad-core processor technology.
Tiff images in the LAB colorspace are no longer identified as RGB (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=9015).
Update image color_profile and iptc_profile members in the JPEG coder (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=9063);
Writing JPEG YCbCr TIFF images no longer faults (reference https://imagemagick.org/discourse-server//viewtopic.html?f=3&t=8896).
2007-04-30 6.3.4-0 Anthony <anthony@griffith...>
Fixed minor bug for crop missed images and 'background' GIF disposal.
2007-04-28 6.3.4-0 Glenn <glennrp@image...>
Added profile support to the GIF decoder/encoder. They are stored as GIF Application Extensions. Known extensions include existing ICCRGB1 (for ICC profiles) and new MGKIPTC0 and MGK8BIM0 (for IPTC and 8BIM profiles). Unknown extensions found in GIF files are read as gifappNNN.
2007-04-28 6.3.4-0 Anthony <anthony@griffith...>
Invert Opacity change for user defined ordered dither threshold maps, so that 'off' map is transparent, and 'on' is opaque.
2007-04-24 6.3.4-0 Anthony <anthony@griffith...>
Added an initial Coalesce Images, and a final +map local colortable optimization to the -layers Optimize method, for a simple to use GIF optimization operation. (more work to come)
Properly set the virtual canvas of a multi-frame GIF image sequence.
Add AcquireOneVirtualPixel() method.
Set Log colorspace properly when writing DPX images.
Add -tile-offset option.
Add support for the EXR image format.
Improve support for DPX images.
Add --enable-hdri option to the configure script.
Add support for high dynamic-range images (HDRI).
2007-04-20 6.3.3-9 Peter Hull <peterhull90@gmail...>
Improve support for writing multiple image icons.
2007-04-18 6.3.3-9 Anthony <anthony@griffith...>
Separated -layers Optimize from -layers OptimizeFrame to allow the former expansion into a general (multiple method) optimizer of GIF animations
merged -layers OptimizeTransparency into -layers Optimize method
2007-04-12 6.3.3-8 Chris Madison <madisonblu@hotma...>
Fix fault whem comparing a colormapped image with a non-colormapped one.
Fix race condition when spawning delegate programs.
TIFF JPEG now respects the -quality compression setting.
The -fx option now properly groks the logical and operator.
DPX tilestamp property should be timestamp.
2007-04-13 6.3.3-7 Anthony <anthony@griffith...>
Added GravityAdjustGeometry() to "geometry.c" to adjust geometry settings according to given gravity and canvas area it applies to. This is for code simplification throughout MagickCore.
2007-04-09 6.3.3-6 Anthony <anthony@griffith...>
Fixed CoalesceImages() to reset virtual canvas info on second and later frames. Other animation handlers may also need to reset virtual canvas sizes to match the first frame, as well.
2007-04-06 6.3.3-6 Anthony <anthony@griffith...>
Addition of a CompositeImages() "layer.c" function to compose two separate image lists together (with a virtual canvas offset) in three different ways, depending on the size of the lists.
A 'hack' for command line use (the two lists separates by the special "NULL" image, which is junked) has also been added. Specifically... "-layers Composite".
2007-04-04 6.3.3-6 Anthony <anthony@griffith...>
Add -layers RemoveDups method to remove duplicate sequential images in coalesced animations.
Add -layers RemoveZero method to remove images with a zero time delay (with no action and a warning is all images have zero time delay)
Fixed DCM and XWD buffer overflow vulnerabilities (reference http://labs.idefense.com/intelligence/vulnerabilities/display.html?id=496).
2007-03-28 6.3.3-4 Anthony <anthony@griffith...>
Code duplication, simplification, and possible logic faults in "list.c".
Added new Composition method, 'ChangeMask' to return pixels that have changed or will cause a color change in overlays
Used 'ChangeMask' to implement the "-layers" method "OptimizeTransparency" to improve the compressibility of frame optimized GIF animations. See IM Examples... ../Usage/anim_opt/#opt_trans
Fixed two memory leaks in wand/magick-image.c and magick/stream.c and made some minor changes to the GIF coder to make reading and pinging images faster (patch provided by mstemm@cloud...).
Escape indirect labels and comments (e.g. -label @file).
Added -format %C to return the image compression type.
Do not report channel statistics if -ping -format is specified with the identify program.
Add ResetImagePage() to reset the image page canvas and position.
Upgrade to LCMS 1.16
Configure Ghostscript for library or framework (reference https://imagemagick.org/discourse-server//viewtopic.html?f=2&t=8557).
Add -taint option to convert/mogrify to mark image as ineligible for
Fixed various data-driven faults (reference http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=412945). The corrupt JP2 image faults but its failing in the JP2 jas_image_decode() method, not MagickCore. The corrupt XWD image faults but its failing in the X11 XGetPixel() method, not MagickCore.
Fix the -auto-orient to work with an image sequence (reference https://imagemagick.org/discourse-server//viewtopic.html?t=8100).
Add -polaroid option to simulate a Polaroid picture.
Eliminate double-free bug in GradientImage().
Set AppendImage() matte channel only when image has matte attribute set.
The -crop with negative offsets do not modify the virtual canvas.
Caption: Given both the width and height ("-size") of the area to fill, adjust the fonts "-pointsize" until the text just filles the whole space without overflowing.
Generate proper Windows icon image files (patch provided by Robert M. Jansen).