Magick++ ChangeLog
2017-03-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (orientation): Update orientation in EXIF profile, if it exists. (attribute): Added Image attribute method which accepts a 'char *' argument, and will remove the attribute if the value argument is NULL.
2014-11-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Geometry.h (Magick::Geometry): Add and document limitPixels() and fillArea() methods to support '@' and '^' geometry qualifiers. Fill area contributed by Long Ho and limitPixels() by Bob Friesenhahn.
../www/Magick++/Image.rst: Document extent and resize methods.
lib/STL.cpp (extentImage): New function object to invoke image extent method. Original implementation contributed by Long Ho. Subsequently modified by Bob Friesenhahn. (resizeImage): New function object to invoke image resize method. Contributed by Long Ho.
lib/Image.cpp (extent): New method to place image on sized canvas of constant color using gravity. Contributed by Long Ho. (resize): New method to resize image specifying geometry, filter, and blur. Original implementation contributed by Long Ho. Subsequently modified by Bob Friesenhahn.
2014-01-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (thumbnail): New method for fast image resizing, particularly to make thumbnails.
2013-12-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Drawable.cpp (DrawableDashArray): DrawableDashArray now uses C++ memory allocation rather than from GraphicsMagick library. Also, implement direct copy constructor and assignment operator rather than using dasyarray() method.
2012-11-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
COPYING: Change Magick++ usage license to be exactly the MIT license without the additional sentence about retention of copyright (which was already legally implicit).
2012-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (defineValue): Use AddDefinition() rather than AddDefinitions().
2012-03-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Include.h (Magick): Added support for RandomNoise.
2012-03-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/STL.cpp (stripImage): New unary function to to remove all profiles and text attributes from the image.
lib/Image.cpp (strip): New method to remove all profiles and text attributes from the image.
2011-12-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Include.h: Explicitly DLL import/export Magick++ symbols when building under MinGW GCC.
2010-12-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Include.h (Magick): Add LZMACompression
2010-12-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (InitializeMagick): Don't use atexit(). C++ destructures are sufficient.
2010-09-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (backgroundColor, borderColor, matteColor): Opacity part of user-specified color needs to be preserved. Problem was reported by Alexander Zheltov.
2010-04-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/CoderInfo.h: Add default constructor, copy constructor, and assignment operator.
2010-01-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/STL.h (Magick): Fix potential memory leak.
2010-01-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
demo/shapes.cpp (main): Floodfill shape more aggressively and scale fuzz factor so that it provides the same results across quantum depths.
2009-10-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/STL.cpp, lib/Magick++/STL.h (shadeImage): ShadeImage was the result of a botched cut-and-paste. Corrected now. Thanks to Jukka Manner for making me aware of this.
2009-09-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (cdl): New method to apply the ASC CDL. (colorMatrix): New method to apply a color matrix to the image channels. (haldClut): New method to apply a color lookup table (Hald CLUT) to the image.
2009-07-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (attribute): Invoke modifyImage() to assure exclusive access to image when updating attributes.
2009-03-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (quantumOperator): New variant of method which takes a 'double' argument, as it originally should. Previous method taking a Quantum argument is still supported but marked deprecated.
2009-01-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Include.h: If the user defines STATIC_MAGICK in his project, then the Windows DLL decorations are ignored. Without this, Windows DLL-based code can't use a static GraphicsMagick. This is recommended by SourceForge bug 2537627.
lib/Magick++/Drawable.h: Apparently the only STL container which may be DLL-exported is <vector> but we are using <list> so disable DLL-export of list-based template objects.
2008-10-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Color.cpp: Added an _isValid boolean to represent an invalid color. Transparent black is no longer special and can be used in drawing.
lib/Pixels.cpp: Update to use new cache view interfaces provided by GraphicsMagick 1.3.
2008-09-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (addNoiseChannel): New method to add noise to a specified channel. (blurChannel): New method to blur a specified channel. (gaussianBlurChannel): New method to gaussian blur a specified channel. (motionBlur): New method to motion blur the image. (randomThresholdChannel): New method to apply random thresholding or ordered dithering to the image. (randomThresholdChannel): New method to apply random thresholding or ordered dithering to the specified image channels. (sharpenChannel): New method to sharpen a specified image channel. (unsharpmaskChannel): New method to unsharpmask a specified image channel.
2008-06-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (quantize): Error measurement support was being performed incorrectly. SyncImage() is not needed here.
2008-05-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
demo/demo.cpp (main): Fix segmentation parameters so they are more suitable for our image.
2008-04-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (depth): Remove 8/16/32 restriction on depth value.
2008-03-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Geometry.cpp, lib/Image.cpp: Include <strings.h> since it is needed in order to use strcpy().
2007-12-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/{Drawable.cpp, Geometry.cpp, BlobRef.cpp, Blob.cpp, Montage.cpp, Options.cpp, Image.cpp}: Eliminate use of deprecated GraphicsMagick functions.
lib/Magick++/{STL.h, Include.h}: Eliminate use of deprecated GraphicsMagick functions.
2007-07-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp: Include <cstdlib>
2006-10-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (pixelColor): Don't enforce color "validity" when setting the pixel color.
2005-10-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (orientation): New accessor method to support image orientation.
2005-04-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/STL.cpp (levelImage): New function object for leveling the image channels. (levelChannelImage): New function object for leveling a specific image channel.
lib/Image.cpp (level): New method for leveling the image channels. (levelChannel): New method for leveling a specific image channel.
2005-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Include.h (Magick): Import CineonLogRGBColorspace into Magick namespace.
2005-04-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Include.h: Import Rec601LumaColorspace (was called GRAYColorspace) and Rec709LumaColorspace into Magick namespace. Use of GRAYColorspace is mapped via a macro into Rec601LumaColorspace in order to avoid a user-visible API change.
2004-08-17 Volker Lukas <vlukas@gmx.de>
lib/Drawable.cpp: Fixes to ensure that drawable objects remain coherent even if an exception is thrown within the assignment operator.
2004-07-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> <bfriesen@simple.dallas.tx.us>
demo/Makefile.am (AUTOMAKE_OPTIONS): Added nostdinc in order to avoid accidentally using magick/list.h when including <list>.
tests/Makefile.am (AUTOMAKE_OPTIONS): Added nostdinc in order to avoid accidentally using magick/list.h when including <list>.
tests/readWriteBlob.cpp: If MISSING_STD_IOS_BINARY is defined, then ios::binary is not used. Use simple ifstream rather than std::ifstream since we are already using the std namespace.
2004-06-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Include.h: Disable unavoidable warnings under Visual C++ when instantiating STL templates within DLL code. Consensus from postings on the net is that as long as the same C++ compiler is used throughout, these warnings are of no concern.
2004-05-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/STL.h (coderInfoList): Make error reporting a bit more lenient so that if an error occurs while loading a module it is not reported as an exception unless no coders were found at all.
2004-05-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (clipMask): Use GetImageClipMask.
2004-04-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/CoderInfo.cpp (CoderInfo): Sense of isReadable() and isWritable() was inverted.
2004-04-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Include.h: <inttypes.h> is not used. Inclusion removed.
2004-03-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Thread.cpp (lock): Have not been successful with using MsgWaitForMultipleObjects() reliably, so back out usage of it for now.
2004-03-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Thread.cpp (lock): For MsgWaitForMultipleObjects, monitor state change only. Otherwise lock may deadlock.
2004-03-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (statistics): New method to obtain image statistics (minimum, maximum, mean, variance, and standard deviation).
2004-03-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (quantumOperator): New image method to apply an arithmetic or bitwise operator to the pixel quantums in an image. Still needs documentation. (quantumOperator): New image method to apply an arithmetic or bitwise operator to the pixel quantums in an image region.
2004-03-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
Makefile.am (../www/Magick++/ChangeLog.html): Fix execution of txt2html.
lib/STL.cpp (composeImage): Added a function object to set/get the Image composition option.
lib/Image.cpp (compose): Added a method to set/get the Image composition option.
2004-03-06 Vladimir Lukianov <lvm@integrum.ru>
lib/Thread.cpp (lock): Use MsgWaitForMultipleObjects() rather than WaitForSingleObject() in order to avoid possible deadlock when application code directly or indirectly creates windows.
2004-02-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (interlaceType): Retrieve interlace setting from Image rather than ImageInfo.
2004-02-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (Image): Delete the allocated image reference object if a Magick::Error is thrown by the Image constructor. Otherwise the image reference object becomes a memory leak.
2004-01-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/STL.h (WriteImages): Pass Blob::MallocAllocator to updateNoCopy() in order to ensure that correct deallocator is used.
tests/readWriteBlob.cpp (main): Needed to delete character array using array [] reference.
2004-01-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
demo/analyze.cpp (main): Fix a GNU C++ library portability problem noticed under MinGW. The 'left' iostream manipulator seems to be missing.
2004-01-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
tests/Makefile.am: coderInfo test is expected to fail for moby builds when the package is not yet installed since a .la file exists in the coders directory, but there is no associated .so file. Therefore failures of the coderInfo test are now ignored.
2003-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (defineValue): New method to support setting format-specific defines. (defineSet): New method to support setting or testing for format-specific flags.
2003-12-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (iccColorProfile): Implementation now uses the profile method with profile name "ICM". Note that this now invokes the color profile if the image already has one. (iccColorProfile): Reimplement using new GetImageProfile function. (iptcProfile): Reimplement using the new GetImageProfile and SetImageProfile functions. (profile): Reimplement using new GetImageProfile function.
2003-12-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Makefile.am (pkglibdir): Improve header file install location logic.
2003-12-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
demo/analyze.cpp (main): New program to demonstrate using the 'analyze' process module.
demo/Makefile.am: Add rules to build analyze program.
lib/Image.cpp (process): New method to execute process modules.
lib/Image.cpp (attribute): New method to get and set named image attributes.
2003-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Color.cpp: Ensure that all non-default constructors set opacity to opaque.
2003-09-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/STL.h (colorHistogram): If map key is not const, then implicit type conversion occurs. Sun's C++ compiler doesn't seem to handle that. The map key is now defined as const in the insert arguments.
2003-09-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
tests/Makefile.am: Add build support for colorHistogram.cpp.
tests/colorHistogram.cpp: New test program to test retrieving color histograms from the image using colorHistogram().
lib/Magick++/STL.h (colorHistogram): Added new template function to retrieve a color histogram into a user-provided container. Verified to work when using STL <vector> and <map> as the target container types. When <map> is used, a user-specified color may be used to perform lookups in the map to obtain the usage count for that color.
lib/Color.cpp (operator >=): Insufficient resolution was being provided in order to reliably sort color objects in STL containers. The updated algorithm should be fail-safe.
2003-08-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (channelDepth): New method to set or get the modulus depth for a specified channel.
2003-08-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Include.h (Magick): Added support for CopyCyanCompositeOp, CopyMagentaCompositeOp, CopyYellowCompositeOp, and CopyBlackCompositeOp, composition operators.
2003-08-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (depth): Method now only updates the Image/ImageInfo depth member and retrieves the value of the Image depth member. (modulusDepth): New method to inspect the pixels for actual modulus depth, or update/reduce the pixels to a specified modulus depth. The depth method was performing this function so any code which depended on the depth method to compute or set the modulus depth should be updated to use modulusDepth() instead.
2003-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (matte): If a new matte channel is created, initialize it to opaque. Likewise, if the matte channel is eliminated, initialize the unused channel to opaque.
2003-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
demo/demo.cpp (main): Don't crop logo image.
*.h, *.cpp: Include "Magick++/Include.h" before including any compiler or system header in order to ensure that LFS defines are properly applied. Inspired by patch from Albert Chin-A-Young.
2003-06-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Include.h: Needed to import ThrowLoggedException.
lib/Exception.cpp (throwException): Add originating source module, source line, and function name (if available) to exception report. This is useful in order to determine the exact conditions that lead to the exception being thrown.
lib/Magick++/Exception.h: Added ErrorCoder, WarningCoder, ErrorConfigure, WarningConfigure, ErrorDraw, WarningDraw, ErrorImage, WarningImage, ErrorMonitor, WarningMonitor, ErrorRegistry, WarningRegistry, ErrorStream, WarningStream, ErrorType, and WarningType, exception classes to support the full set of exceptions that GraphicsMagick can throw.
2003-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/CoderInfo.cpp (CoderInfo): Applied compilation fix from Mike Chiarappa to compile using Borland C++.
2003-06-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Geometry.cpp (string): Throw an exception if a string is requested from an invalid geometry object.
2003-06-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Geometry.cpp (operator =): If GetGeometry returns NoValue, then assign an invalid geometry object to cause an exception if the geometry is then used.
2003-06-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Exception.h (ErrorModule): Added class to handle module errors.
lib/Magick++/Exception.h (WarningModule) Added class to handle module warnings.
2003-05-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/STL.h (coderInfoList): Use GetMagickInfoArray to access coder list.
2003-05-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/STL.h (affineTransformImage): Add function object contributed by Vladimir Lukianov to apply an affine transform to the image.
lib/Image.cpp (affineTransform): Added method contributed by Vladimir Lukianov to apply an affine transform to the image.
2003-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Include.h: Decided to back out change which used the _VISUALC_ define to trigger inclusion of <sys/types.h>.
2003-05-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Include.h: If _VISUALC_ is defined, include <sys/types.h>. This ensures that this necessary header is included even if HAVE_SYS_TYPES_H is not defined in magick_config.h.
2003-05-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (InitializeMagick): InitializeMagick is now a C++ function rather than a namespace inclusion. An atexit() handler is registered to invoke DestroyMagick when the program exits. Relying on static deconstruction to invoke DestroyMagick proved to be unreliable due to translation unit destruction uncertainty.
2003-04-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (Image::Image (MagickLib::Image* image_)): Incorporated recommended fix from Jukka Manner to avoid a scenario which leaks an Options object.
tests/coalesceImages.cpp: Updated to use modified coalesceImages() interface.
lib/Magick++/STL.h (coalesceImages): Replaced implementation with one from Felix Heimbrecht. The template signature has changed to return a new image sequence. This template API silently ceased to function due to an ImageMagick CoalesceImages API change.
2003-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
tests/readWriteBlob.cpp (main): Added check for stream read failure when reading blob data. (class myBlob): Use get rather than read.
2003-03-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
tests/attributes.cpp : Change in the way that Magick++ retrieves density caused tests to fail. Density now defaults to 72x72 (GraphicsMagick default) rather than invalid.
2003-03-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
demo/Makefile.am (CLEANFILES): Fix clean target to remove *_out.mvg output files as well.
demo/zoom.cpp: Added a command-line parser for dash arguments as well as an image "resample" capability.
lib/Image.cpp (density): Obtain density from Image rather than ImageInfo if the Image is valid.
2003-03-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Makefile.am : Added rules to install GraphicsMagick++.pc.
lib/GraphicsMagick++.pc.in : Added pkgconfig file for -lGraphicsMagick++.
2003-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (colorSpace): Pass image->colorspace to TransformRGBColorspace.
2003-01-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/STL.h (writeImages): Should have been invoking WriteImages rather than WriteImage!
2003-01-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Magick++/Include.h: Add HSL and HWB colorspace transformation support.
2003-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (colorSpace): Support colorspace transforms other than to and from RGB by translating to RGB as an intermediate step.
2002-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Drawable.cpp: Added DrawablePushClipPath, DrawablePopClipPath, and DrawableClipPath. Implementation contributed by Vladimir <lvm@integrum.ru>.
2002-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (colorMapSize): New method to set, or return the colormap size.
2002-11-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
lib/Image.cpp (adaptiveThreshold): New method.