GraphicsMagick 1.1.11 ChangeLog

2008-02-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh: GraphicsMagick 1.1.11 released.
- NEWS: Updated for release.

2008-02-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/xwd.c (ReadXWDImage): Eliminate integer overflow vulnerability (IDefense 09.19.07).
- coders/xcf.c (ReadXCFImage): ditto
- coders/xbm.c (ReadXBMImage): ditto
- coders/dib.c (WriteDIBImage): ditto
- coders/dcm.c (ReadDCMImage): ditto

2008-02-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (WriteTIFFImage): The RFC 2301 specification for Internet FAX recommends LSB2MSB fill order so document that.

2008-02-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (WriteTIFFImage): Use '-define tiff:fill-order={msb2lsb|lsb2msb}' to control TIFF bit fill order. (WriteTIFFImage): Endian option (-endian) now controls TIFF byte endian order rather than bit fill order.

2008-01-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (SetImageInfo): Successfully read existing file names in the form file[123] which were failing to read since they appear to be a valid sub-image specification.

2008-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/utility.c (ExpandFilenames): If a filename appears to contain a wildcard specification, first check to see if there is file matching the unexpanded wildcard prior to engaging in the slow task of wildcard expansion. Without this fix, expanding the command line takes a very long time if there are a huge number of files in the directory, and some file names appear to contain wildcard specifications. Inspired by SourceForge bug reports [ 1878992 ] "literal square brackets in file name cause large delay" and [ 1783209 ] "converting runs slowly when subimage is specified", but this might not be the complete fix for the problem.

2008-01-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c (VersionCommand): Include a "Large Memory" item in the Feature Support list.
- coders/png.c (RegisterPNGImage): Remove reference to dead PNG ftp site.
- VisualMagick/configure/configure.cpp (InitInstance): Remove project dependency on dxguid.lib (Direct-X).

2008-01-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c (DisplayImageCommand): No longer default to reading standard input if stdin fails isatty() test. This behavior was causing failure to launch from Gnome and it is difficult to work around the issue from within a .desktop file. (AnimateImageCommand): No longer default to reading standard input if stdin fails isatty() test.

2007-12-31 Glenn Randers-Pehrson <glennrp@comcast.net>

- coders/png.c (ReadOnePNGImage): Ensure that depth is handled correctly in Q8 build with 16-bit PNG files. Addresses SourceForge bug 1859467 "16 bit per channel pngs broken". This bug was already fixed in CVS head.

2007-12-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Use some improved tests for POSIX standard types available in Autoconf 2.61.

2007-12-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/memory.c (MagickAcquireMemoryArray): New function to safely allocate the memory for an array.

2007-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/t/ttf/read.t: Relax TrueType rendering tests so that they pass with current FreeType built with default settings.

2007-11-07 Andy Armstrong <andy@hexten.net>

- PerlMagick/t/setattribute.t: Fix for typo which breaks Test::Harness 3.00.

2007-11-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c (IdentifyImageCommand): Add support for +ping to force 'identify' to read the image pixels.

2007-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/dib.c (ReadDIBImage): Use appropriate sized cast for DIB width and height values. Validate width and height values.
- coders/bmp.c (ReadBMPImage): Use appropriate sized cast for BMP width and height values.
- coders/sun.c (ReadSUNImage): Properly report SUN image depth.
- magick/image.c (RGBTransformImage): Use a better rounding algorithm when converting to HSL/HWB colorspaces. Add missing break HWB colorspace was used rather than HSL.
- magick/image.c (TransformRGBImage): Add missing break statement. HWB colorspace was used rather than HSL.
- magick/gem.c (TransformHSL): Avoid GCC opimization bug on Opteron which caused wrong results. Ensure that returned values fall within bounds 0.0 to 1.0.
  (TransformHWB): Avoid GCC opimization bug on Opteron which caused wrong results. Ensure that returned values fall within bounds 0.0 to 1.0.
- PerlMagick/t/ttf/read.t: Relax strictness quite a bit for TTF read tests in order to allow somewhat different FreeType output.

2007-09-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh (PACKAGE_VERSION): Released version 1.1.10.
- NEWS: Updated NEWS.

2007-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/shear.c (IntegralRotateImage): Rotation by 270 degrees was wrong. It was flipped from what it should be.

2007-09-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh (PACKAGE_VERSION): Released version 1.1.9.
- NEWS: Updated NEWS.

2007-09-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/pdf.c (WritePDFImage): Fix writing PDF with CCITT compression. Addresses SourceForge bug 1209177 "TIFF to PDF CCITT compression fails".

2007-09-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/preview.c (WritePreviewImage): Use ThumbnailImage() to create thumbnail.
- coders/xpm.c (WritePICONImage): Use ThumbnailImage() to create thumbnail.
- coders/pdf.c (WritePDFImage): Use ThumbnailImage() to create thumbnail.

2007-09-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (WriteTIFFImage): Support writing TIFF to a pipe or other non-seekable destination.

2007-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/png.c (ReadPNGImage): Make sure that PNG read errors are reported to the user.
- magick/shear.c (IntegralRotateImage): Import implementation from CVS HEAD in order to obtain much faster rotation by 90 and 270 degrees.
- coders/png.c (png_flush_data): Don't invoke SyncBlob() since it does far more than force data to the output file.
- coders/jpeg.c (TerminateDestination): Don't invoke SyncBlob() since it does far more than force data to the output file.

2007-09-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c (MogrifyImageCommand): Don't leak memory in the case where the image file contains multiple frames.

2007-09-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/utility.c (GetExecutionPath): Add support for Apple OS-X, Linux, and FreeBSD.

2007-09-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: For Windows MinGW-based build, find Ghostscript fonts installed under C:/Program Files/.
- magick/command.c (MogrifyImageCommand): Avoid use of uninitialized filename. Don't remove file name based on random junk in memory.
- magick/constitute.c (WriteImages): Avoid possible strncpy() of a string onto itself.
- magick/nt_base.c (NTGhostscriptGetString): Support "GPL Ghostscript".

2007-08-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (SetImageType): Import the implementation from HEAD.

2007-08-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (ReadTIFFImage): Don't allow returned TIFF image depth to be anything other than 8/16/32 since it seems that some coders in this release may not deal with other values correctly.

2007-08-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/miff.c: Eliminate crash when image->depth is not the expected 8/16/32/.

2007-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c (BenchmarkImageCommand): Handle text response from 'identify -format'. Benchmark output is now a bit more like Unix time.

2007-08-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c (BenchmarkImageCommand): Added a new 'benchmark' GraphicsMagick command which can be used to perform benchmarking on any other GraphicsMagick command.
- coders/tiff.c (WriteTIFFImage): Output G3 TIFF FAX images as per the TIFF Class F specification.

2007-08-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/cache.c (PersistCache): Fix a terrible memory leak when reading MPC files. Added Cache reference-count logging.

2007-08-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/version.h.in: Improved Copyright statement formatting.
- magick/command.c (VersionCommand): Added a feature support list to -version output.

2007-07-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/delegate.c (InvokePostscriptDelegate): Eliminate doubled-output when running in verbose mode.

2007-07-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh (PACKAGE_VERSION): Released version 1.1.8.
- magick/delegate.c (InvokePostscriptDelegate): MagickSpawnVP requires three arguments.
- magick/image.c (SetImage): Set is_monochrome flag if image is bi-level.

2007-07-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- bzlib: Updated bzip2 to 1.0.4.
- jbig: Updated jbigkit to 1.6
- jp2: Updated JasPer to 1.900.1.
- lcms: Updated lcms to 1.16
- png: Updated libpng to 1.2.18.

2007-07-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/enhance.c (LevelImage): Fix -level command parsing when a percent symbol is supplied within the argument rather than at the end.

2007-07-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/delegate.c (UnixShellTextEscape): Don't escape newline character since it performs the opposite of what is desired.

2007-07-23 Daniel Kobras <kobras@debian.org>

- magick/delegate.c (UnixShellTextEscape): Fix fencepost error when checking whether escaping is safe.

2007-07-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- INSTALL-unix.txt: Updated for release.
- NEWS: Updated for pending 1.1.8 release.
- Makefile.am: Retire VMS and MacOS 9 support from package.

2007-07-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- tests/Makefile.am: Don't test PTIF format since it is not possible to pass the rwblob test and it is really an output driver rather than a format.
- coders/tiff.c (WritePTIFImage): Update from HEAD.

2007-07-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/xwd.c (XWD_OVERFLOW): Eliminate check to see if unsigned type is less than zero.
- coders/pnm.c (ValidateScalingIndex): Eliminate check to see if unsigned type is less than zero.
- magick/log.c (LogMagickEvent): Even though log file name comes from a controlled source (log.mgk), perform safe numeric substitution on it.
- coders/xwd.c (ReadXWDImage): Eliminate conflict between locally defined OVERFLOW macro and similarly named macro under Windows.

2007-07-18 Daniel Kobras <kobras@debian.org>

- coders/xwd.c (ReadXWDImage): Integer overflow fix (CVE-2007-1797). From Debian patch xwd_integer_overflow_fixes_CVE-2007-1797. (ReadXWDImage): Fix for integer under/overflow. From Debian patch xwd_overflow_fix.
- coders/wpg.c (ReadWPGImage): WPG segfault fix. From Debian patch wpg_segfault_fix.
- coders/viff.c (ReadVIFFImage): Verify number of bands prior to using image. From Debian patch viff_heap_corruption_fix.
- coders/tiff.c (TIFFErrors): TIFF error reporting security fix. From Debian patch tiff_va_list_fix.
- coders/sun.c (ReadSUNImage): Sun segfault fix. From Debian patch sun_segfault_fix.
- magick/blob.c (ReadBlobStream): Never try to read data beyond EOF in blob streams. Some (but not all) ReadBlob*() methods already implemented similiar checks. Moving it to the central ReadBlobStream() increases robustness and prevents out-of-bounds reads. From Debian readblob_offset_robustness patch.
- coders/pnm.c (ReadPNMImage): Validate pixel scaling. From Debian pnm_scale_fix patch.
- coders/pict.c (ReadPixmap): PICT segfault fix. From Debian pict_segfault_fix patch.
- coders/pcx.c (ReadPCXImage): PCX heap overflow fix. From Debian pcx_heap_overflow_fix patch.
  (ReadPCXImage): PCX segfault fix. From Debian pcx_segfault_fix.
- magick/montage.c, PerlMagick/t/montage.t: Do not pass bogus negative values to modulate shadow in montage. Instead, drop a constant grey shadow like current ImageMagick. From Debian montage_shadow_fix patch.
- coders/png.c (ReadMNGImage): MNG segfault fix. From Debian mng_segfault_fix patch.
- utilities/miff.4: MIFF man page apropos fix. From Debian miff_apropos_fix patch.
- coders/icon.c (ReadIconImage): Icon segfault fix. From Debian icon_segfault_fix patch.
- tests/drawtest.c: Make sure filename strings do not run out of bounds in drawtest. From Debian drawtest_segfault_fix patch.
- config/delegates.mgk.in: Remove obsolete option -2 when calling dcraw as a delegate. From Debian dcraw_options_fix patch.
- coders/dcm.c (ReadDCMImage): Fix integer overflow in DCM coder. (CVE-2007-1797). From Debian dcm_overflow_fix patch.
- coders/bmp.c (ReadBMPImage): Verify file seek success. From Debian bmp_overflow_fix patch.

2007-07-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/utility.h (MagickReallocMemory): It seems that realloc() frees the provided memory pointer if the requested size is zero. This was causing MagickReallocMemory() to perform a double-free under error conditions. Inspired by Debian realloc_double_free_fix patch by Daniel Kobras.

2007-07-18 Daniel Kobras <kobras@debian.org>

- magick/quantize.c (GrayscalePseudoClassImage): Fix computation of memory required for colormap index (colormap_heap_overflow_fix).

2007-07-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/cache.c (ClonePixelCache): Eliminate bug when size_t is an unsigned type.

2007-07-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (SetImageInfo): Address security issue noted by CVE-2006-0082
  http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-0082 in which output filenames matching arbitrary printf specifications may cause GraphicsMagick to crash.
- magick/utility.c (TranslateTextEx): New version of TranslateText which allows copying each attribute via a user-provided callback function.
- magick/delegate.c (InvokeDelegate): Implement secure delegate execution in POSIX environments in order to avoid injection of arbitrary shell commands via carefully crafted filenames. Fixes Debian Bug 345238 "[CVE-2005-4601] Shell command injection in delegate code (via file names)" http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=345238

2007-07-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/pnm.c (ReadPNMImage): Fix pixel scaling problem caused by floating point rounding error.

2007-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/studio.h: Provide pread() and pwrite() prototypes if they are missing.
- configure.ac: Check for missing pread() and pwrite() prototypes.
- m4/ac_func_fseeko.m4: Use fixed version of AC_FUNC_FSEEKO.
- magick/utility.c (SystemCommand): Avoid use of snprintf().

2007-07-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/blob.c: Only replace getc_unlocked() and putc__unlocked() for a thread-safe build.
- magick/studio.h: Always use fseeko() and ftello() if they are available.

2007-07-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/cineon.c: The Kodak Cineon coder was such a disaster that this module is back-ported from the 1.2 development version. Some features are lost in the process. Resolves SourceForge issue 1486657 "Can't extract single channel from Cineon format".

2007-07-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- tiff: Update to libtiff version 3.8.2.
- magick/error.h (ThrowReaderException): Don't overwrite an exception which was already thrown.
- magick/utility.c (MagickStrlCat): Replacement function for strlcat(). (MagickStrlCpy): Replacement function for strlcpy();

2007-07-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/psd.c (ReadPSDImage): Eliminate memory leak when reading PSD files. Fixes Sourceforge issue 1625477 "Memory leak reading layered PSD Image".

2007-06-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c: Fixed -affine command argument validation. Fixes SourceForge issue 1743141 "Affine matrix option parsing".

2007-06-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/miff.c (ReadMIFFImage): Handle case where compression keyword is present but has value of 'None'.

2007-06-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/resource.c (AcquireMagickResource): Map resource limit was not being properly checked due to a typo. The memory limit was being tested instead.

2007-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/xwindow.c (XGetWindowImage): Set image->depth appropriately.

2007-05-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/jpeg.c (ReadJPEGImage): Fix reading 12-bit grayscale JPEG.

2007-04-30 Fojtik Jaroslav <JaFojtik@seznam.cz>

- coders/art.c, coders.cut.c, coders/mat.c, coders/wpg.c: Add support for PingImage() so that image identification is fast by default. Also eliminates error message produced by mat.c due to rotating an image which has no pixel cache.

2007-04-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/blob.c (SyncBlob): Probable fix for SourceForge bug id 1222780 "glibc detected double free or corruption". Avoid unnecessary copy of blob object onto itself. Fix was already present in 1.2.
- magick/pixel_cache.c (ModifyCache): Ensure that the cache nexus is open. Fix for SourceForge bug id 1173713 "segfault in ModifyCache"
- m4/acx_pthread.m4 (ACX_PTHREAD): Apply fixes necessary to support C++ compiler properly.

2007-04-09 Fojtik Jaroslav <JaFojtik@seznam.cz>

- coders/wpg.c (ReadWPGImage): Fix for SourceForge bug id 1431805 "clip art wpg files cause access violation in graphics magick".

2007-04-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/GraphicsMagick.pc.in: Fix for SourceForge bug id 1576616 "Fix includedir variable in pkg-config files".
- magick/cache.c (GetOnePixel): Fix for SourceForge bug id 1572357 "GetOnePixel definition appears incorrect". It is true that this function is intended for read-only purposes and that the PixelPacket value is returned directly.
- coders/pdf.c (WritePDFImage): Fix for SourceForge bug id 1510075 "Failed to write PDF with JPEG compression".
- magick/command.c (MogrifyImageCommand): Properly bubble up errors and terminate further mogrify processing immediately. This in response to SourceForge bug id 1391421 "problem doing resize on 273x1 JPEG".
- magick/magick.c (InitializeMagickClientPathAndName): Fix for SourceForge bug id 1315109 "segfault in InitializeMagick(NULL)".
- wand/magick_wand.c (MagickGetQuantumDepth): Fix for SourceForge bug id 1353744 "MagickGetQuantumDepth doesn't work".

2007-04-07 Fojtik Jaroslav <JaFojtik@seznam.cz>

- coders/mat.c: Read Matlab files in both big and little endian format.

2007-04-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- m4/acx_pthread.m4: Update version of ACX_PTHREAD macro used.

2007-04-01 Fojtik Jaroslav <fojtik@humusoft.cz>

- coders/wpg.c: Support CTM translation in WPG reader.

2007-02-10 Daniel Kobras <kobras@debian.org>

- coders/palm.c: (ReadPALMImage) Do not implicitly call ReadBlobByte() twice in Min() macro. Patch thanks to Vladimir Nadvornik. This was a regression introduced in patch for CVE-2006-5456. (CVE-2007-0770)

2006-11-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- www/Magick++/Image.html: Fix documentation regarding retrieving EXIF attribute.
- magick/command.c: Fix typo in usage messages.

2006-11-02 Daniel Kobras <kobras@debian.org>

- coders/dcm.c: (ReadDCMImage) Prevent buffer overflow of 'photometric' array in DCM coder. Original patch thanks to M Joonas Pihlaja. (CVE-2006-5456)
- coders/palm.c: (ReadPALMImage) Fix heap overflows of 'one_row' array in PALM coder. Original patch thanks to M Joonas Pihlaja. (CVE-2006-5456)

2006-09-12 Daniel Kobras <kobras@debian.org>

- coders/sgi.c (ReadSGIImage): Use strncpy() instead of strlcpy() in 1.1 branch.
- coders/xcf.c (ReadBlobStringWithLongSize): Add new parameter 'max' to prevent overflowing the 'string' array. (CVE-2006-3743) (ReadOneLayer): Adjust callers of ReadBlobStringWithLongSize(), and guard against infinite loops on premature end-of-file. (ReadXCFImage): Adjust callers of ReadBlobStringWithLongSize(), and guard against infinite loops on premature end-of-file.

2006-09-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/sgi.c (ReadSGIImage): Mostly applied Debian patch for CVE-2006-4144 security issue related to RLE decoding. Also added complete verification of file header.

2006-08-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/png.c (ReadOnePNGImage): Fix compilation problem. Patch submitted by Aron Stansvik.

2006-07-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/jpeg.c (WriteJPEGImage): Clear the JPEG library structures in order to ensure a completely clean slate.

2006-06-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c (ConvertImageCommand): Fix memory leaks which occured when an image was not returned.
- magick/command.c (IdentifyImageCommand): Ditto.
- magick/command.c (MogrifyImageCommand): Ditto.

2006-06-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c: Add mention of -resample to convert and mogrify usage messages.

2006-05-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>

- configure.ac: Fix arguments to AC_CHECK_HEADER.

2006-05-11 JH <jh@ops.everybox.com>

- GraphicsMagick.spec.in (files devel): Include %{_libdir}/lib%{name}Wand.so.

2006-05-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/nt_base.c (NTGhostscriptEnumerateVersions): Recent GNU Ghostscript identifies itself as "GPL Ghostscript".

2006-03-02 Fojtik Jaroslav <JaFojtik@seznam.cz>

- coders/mat.c: Fixes for observed crash. Byte and word formats are working.

2006-03-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/sgi.c (ReadSGIImage): Properly compute image depth for 16-bit SGI image files.

2006-02-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- doc/environment.imdoc: MAGICK_FONT_PATH has not been supported since 1.1. Remove mention of it!

2006-01-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/log.c (SetLogEventMask): Avoid deadlock if invoked before log.mgk has been loaded.
- magick/attribute.c (GenerateEXIFAttribute): Fix memory leak on error which was reported by Micha³ Kowalczuk.

2006-01-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/constitute.c (ReadImage): Avoid crash if delegate fails to return image.

2006-01-03 Daniel Kobras <kobras@debian.org>

- magick/attribute.c (GenerateEXIFAttribute): Fix EXIF IFD stack overflow vulnerability.
- configure.ac: Fix typo in HTMLDecodeDelegate.

2005-10-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh (PACKAGE_VERSION): Released version 1.1.7.

2005-10-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/svg.c (ReadSVGImage): Eliminate memory leak.

2005-09-18 Michal Kowalczuk <sammael@brzydal.eu.org>

- coders/gif.c: Free global_colormap before returning with error.

2005-09-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/constitute.h: DispatchImage and PopImagePixels were not properly DLL imported by the headers.

2005-07-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- png: Updated libpng to version 1.2.8.
- coders/ept.c (WriteEPTImage): MSVC does not support a 'long long' type.

2005-07-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/jp2.c: Change how Jasper is intialized. Hopefully eliminate memory leak when reading ICC color profile.
- magick/utility.c (SystemCommand): Always report command error information if a command fails.
- Fix some compilation warnings produced by a 64-bit build.

2005-07-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- zlib: Updated to version 1.2.3.

2005-07-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (DisplayImages): Don't invoke XrmDestroyDatabase() to destroy the resource database associated with the display since it seems that XCloseDisplay() does this for us and the X.org server doesn't properly keep track of the resource allocation.
- magick/command.c (DisplayImageCommand): Ditto for XrmDestroyDatabase().

2005-05-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/nt_base.c (readdir): Fix write beyond buffer length reported in SourceForge issue #1182003. Only impacts Windows.

2005-05-16 Tavis Ormandy <taviso@gentoo.org>

- coders/xwd.c (ReadXWDImage): Fix for infinite loop in the xwd decoder when calculating the shift r/g/b values and the mask is set to zero.

2005-05-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh (PACKAGE_VERSION): Release version 1.1.6.
- wand/pixel_wand.c (PixelSetYellowQuantum): Wrong PixelPacket member was being set. Thanks to Cristy for the heads-up.
- magick/image.c (SetImageType): Revert change from 2005-03-12. Some coders require that when the image is set to Bilevel type, that it be PseudoClass.

2005-04-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c (MogrifyImage): Apply the convolve fixes that Glenn committed to CVS head.
- utilities/Makefile.am (check): Add a convolution parameter so that the convolve demo actually does something.

2004-04-24 Glenn Randers-Pehrson <glennrp@glennrp.com>

- coders/pnm.c: Defend against malevolent pnm "P7" files that try to set the colormap length < 256. Bugfix from Cristy.

2005-04-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- NEWS: Added latest news.

2005-04-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/xwindow.c (XDelay): Prefer use of select() over poll() since it is more portable. MacOS-X has a poll() but it doesn't work right.

2005-04-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/cache.c (OpenCache): Fix a memory resource leak noticed by Stefan v. Wachter <svwa-dev@mnet-online.de>. This error with keeping track of resources may eventually cause GraphicsMagick to run slower and slower due to using disk-based images rather than memory-based images.

2005-04-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/utility.c (AllocateString): Performance enhancement. (CloneString): Performance enhancement. (ConcatenateString): Performance enhancement.

2005-03-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/pdf.c (WritePDFImage): Eliminate cause of annoying warning when PDFs are read by Ghostscript 8.5.
- magick/module.c: Working DIR * should not be const.
- magick/nt_base.c (closedir): Fix function definition so it matches POSIX standard.
  (opendir): Fix function definition so it matches POSIX standard.

2005-03-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (SetImageType): Bilevel image is not required to be PseudoClass type.
- coders/mpc.c (WriteMPCImage): Persist is_monochrome and is_grayscale flags.
  (ReadMPCImage): Restore is_monochrome and is_grayscale flags.

2005-03-09 Arne Rusek <zonk@matfyz.cz>

- magick/attribute.c (GenerateEXIFAttribute): Offset type correction to fix loop termination if size_t type is not 'long'.

2005-03-09 Alexander Yaworsky <yaworsky@users.sourceforge.net>

- coders/jbig.c (WriteJBIGImage): JBIG was writing an empty output file. Apparently libjbig parameters have changed. Setting l0 parameter of jbg_enc_options to zero instead of -1 (like in jbigkit's pbmtools) solved the problem.

2005-02-26 Albert Chin-A-Young <china@thewrittenword.com>

- acinclude.m4 (AC_CXX_IOS_BINARY): Added macro to detect if the C++ compiler lacks support for ios::binary.
- configure.ac: Use AC_CXX_IOS_BINARY.

2005-02-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/jpeg.c (WriteJPEGImage): Don't use jpeglib private BITS_IN_JSAMPLE definition to select JPEG bit depth.

2005-01-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/render.c (TraceBezier): Avoid probable bug under Visual C++ 7.0 or later due to the argument to pow not being promoted to double.

2005-01-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/color.c (IsPaletteImage): Fix memory leak reported by Stefan v. Wachter <svwa-dev@mnet-online.de>.

2005-01-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh: Released 1.1.5.
- NEWS: Updated with latest news.

2005-01-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tga.c (WriteTGAImage): Incorported patch from Stefan v. Wachter to enable writing grayscale images as well as adding more image type option smarts.
- coders/psd.c (ReadPSDImage): Fix stack overflow vulnerability reported by Andrei Nigmatulin. See http://lwn.net/Articles/119713/ for details.

2005-01-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- win2k/IMDisplay/IMDisplayDoc.cpp (DoReadImage): Ensure that image is in RGB color space after being read since this is what Windows expects.

2005-01-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- NEWS: Updated with latest news.
- lcms: Updated to LCMS 1.14.

2005-01-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/jp2.c (ReadJP2Image): Handle images in YCBCR colorspace. Retrieve and store an ICC ICM color profile if present.
- PerlMagick/t/tiff/read.t: Added test for reading truecolor planar TIFF image.
- coders/tiff.c (ReadTIFFImage): Fixed stripped TIFF reader.

2005-01-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (WriteTIFFImage): Only set TIFFTAG_PREDICTOR to 2 for bits-per-sample values that libtiff supports.

2004-12-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (ReadTIFFImage): Fix overflow while computing colormap size.
- magick/image.h (MaxRGBGivenBits): New macro to obtain maximum value represented in a given number of bits.

2004-12-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (WriteTIFFImage): TrueColor 16-bits/sample RGB images were being written incorrectly on little-endian CPUs. Added byte swapping to fix this problem.

2004-12-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/bmp.c (WriteBMPImage): Handle the case where the image has an over-sized colormap. Was writing on unallocated heap memory.
- coders/dib.c (WriteDIBImage): Handle the case where the image has an over-sized colormap. Was writing on unallocated heap memory.

2004-12-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/gem.c (Modulate): Hue argument now represents a rotation from -180 degrees to +180 degrees expressed as an argument of 0 to 2.0 (1.0 for no change). Note that this change also effects the -modulate argument and the Magick++ modulate method(). This change is made because the previous hue adjustment strategy only succeeded in corrupting the image.

2004-12-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/nt_base.c (opendir): Ensure that data may not overwrite the stack.
  (readdir): Ensure that data may not overwrite the stack.

2004-11-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Pick up font search code from CVS head so that Ghostscript fonts are automatically discovered under Cygwin.

2004-11-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/gif.c: Fix two error-path memory leaks which were noticed by Glenn Randers-Pehrson.

2004-11-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh: Released 1.1.4.
- NEWS: Updated with improvements since 1.1.3 release.

2004-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/png.c (UnregisterPNGImage): Eliminate Warning: module registration for "JNG" from module "PNG" still present!.

2004-11-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/constitute.c (DispatchImage): Fix documentation error regarding return status.

2004-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (WriteTIFFImage): Ensure that words in the scanline are converted to little-endian format on little-endian CPUs.

2004-10-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/gif.c (DecodeImage): Improve handling of corrupt GIF files. Resolves SourceForge bug #1042904. Also, eliminate a potential memory leak.

2004-09-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (WriteTIFFImage): Implement error handling so defective TIFF files are not written if libtiff reports an error.

2004-09-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/mat.c,coders/topol.c (ReadBlobWordLSB,ReadBlobDoublesLSB): Use better variable name than `I' for image.

2004-09-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/miff.c (WriteMIFFImage): Ensure that MIFF files are never written with bogus compression values.

2004-08-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (TIFFErrors): Prevent possible stack overflow on error.
  (TIFFWarnings): Prevent possible stack overflow on error.

2004-08-24 Glenn Randers-Pehrson <glennrp@glennrp.com>

- coders/png.c: fixed call to png_set_keep_unknown_chunks() and deleted tEXt and zTXt from list of unused chunks.
- coders/avi.c, bmp.c, and dib.c: applied security patch from Cristy.

2004-08-07 David R. Linn <drl@vuse.vanderbilt.edu>

- www/formats.html: Titles for JNG and MNG were reversed.

2004-08-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/widget.c (XCommandWidget): Replace ImageMagick logo in display command menu with GraphicsMagick logo.

2004-08-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh: Released 1.1.3.

2004-08-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- NEWS: Updated with more changes since the 1.1.2 release.
- coders/tiff.c (ReadTIFFImage): Support reading RGB/CMYK scanline oriented TIFF images with arbitrary depth.

2004-08-05 Glenn Randers-Pehrson <glennrp@glennrp.com>

- coders/png.c: Fixes for CERT security alert TA04-217A described at "http://www.us-cert.gov/cas/techalerts/TA04-217A.html".

2004-07-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Makefile.am: Update to Automake 1.9.

2004-07-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- NEWS: Updated with changes since the 1.1.2 release.

2004-07-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- tiff/libtiff/tif_lzw.c: Incorporated TIFF LZW compression support.
- lcms: Merged in lcms 1.13 from CVS HEAD.

2004-07-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh (CVS_BRANCH_TAG): Record the CVS branch tag that source package is obtained from.
- configure.ac: Pass essential flags on down to subordinate configures when performing 'make distcheck'. Support DESTDIR installs for PERL 5.8.1 and later, which support DESTDIR internally.

2004-07-09 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/bmp.c (ReadBMPImage): Removed if-test on reading red_mask, green_mask, and blue_mask. These are only *valid* under certain conditions, but they are always present in the file.

2004-07-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Enable LZW compression by default.

2004-07-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- wand/magick_wand.c (MagickSetPassphrase): String was being copied to a null pointer. Now memory is allocated as required prior to a copy.
  Ensure that all unimplemented functions return a proper error report.

2004-06-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c (MogrifyImage): For -units, don't reset resolution if units are undefined. Report an error if the -units argument is not supported.

2004-06-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c (MogrifyImage): When re-sampling an image, report an error if the image does not contain a valid resolution.
- coders/pcx.c (WritePCXImage): Support writing large PCX files. (WritePCXImage): Ensure that UndefinedResolution is handled properly. Avoid round-off error for centimeter based resolution.
- magick/command.c (MogrifyImage): When setting image units, also adjust existing image x_resolution and y_resolution so that existing image resolution is not trashed.
- configure.ac: Look for mozilla by default rather than netscape.

2004-06-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Released 1.1.2.

2004-06-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh: Bumped version identifier to 1.1.2 and updated shared library versioning.
- NEWS: Updated NEWS file.
- magick/constitute.c (DispatchImage): Support 8-bit output to common formats BGR, BGRO, BGRP, RGB, RGBO, and I as special cases in order to improve performance. (ConstituteImage): Support 8-bit input from common formats BGR, BGRO, BGRP, RGB, RGBO, and I as special cases in order to improve performance.
- utilities/Makefile.am (check): Add convert -list tests.
- magick/module.c: (InitializeModuleSearchPath): Evaluate and cache module search path.
  (FindMagickModule): Use cached module search path. (OpenModules): Load all modules rather than just the modules in the directory where the LOGO module is found. Besides allowing user-provided modules in non-GraphicsMagick directories to be loaded, this allows the "moby" shared build to load additional modules via OpenModules.
- GraphicsMagick.spec.in: Install *-config scripts with mode 755 rather than default 644.
- magick/type.c (ReadTypeConfigureFile): Determine location of Ghostscript fonts only once in order to improve performance.
- magick/nt_base.c (NTGhostscriptFonts): Properly determine Ghostscript font location for Ghostscript 8.0 and later.

2004-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Magick++ needs to be built as a static library under Cygwin and MinGW since C++ exceptions don't work otherwise. Be more assertive about that.
- magick/nt_base.h: Avoid conflict with ssize_t definition under MinGW.

2004-05-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- ltmain.sh: Fix to allow exe wrapper to work under MinGW.
- wand/magick_compat.c (QueryMagickColor): Fixed wrong DLL export.
- wand/magick_wand.c: Fixed some wrong DLL exports.

2004-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c (ConvertUsage): Usage missed -operator. (MogrifyUsage): Usage missed -operator.

2004-05-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/enhance.c (NegateImage): If image has a clip mask, then force image to DirectClass so clip mask takes effect.

2004-05-15 Vladimir Lukianov <lvm@integrum.ru>

- magick/image.c (SetImageOpacity): Ensure that image is DirectClass. If specified opacity is TransparentOpacity, then replace existing opacity with TransparentOpacity.

2004-05-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/utility.c: Released 1.1.1.

2004-04-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- utilities/Makefile.am (check): Change geometry arguments which were expressed as 0.0xVAL to avoid the problematic Linux scanf feature back to 0xVAL.

2004-04-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/utility.c (GetMagickDimension): New function to replace occurances of scanf(geometry,"%lfx%lf",&w,&h) since Linux scanf() and strtod() misbehave for strings that start with "0x". The Linux versions always treat 0x as the start of a value expressed in hex and can't be forced to read the leading value as a double. This function has been applied globally to replace the problem scanf's.

2004-04-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/version.h.in: Make it clear in the -version output that a mutitude of copyrights and licenses apply to this software.
- magick/utility.c (GetPathComponent): Avoid strncpy() of overlapping regions.
- magick/command.c (DisplayImageCommand): Eliminate double-free of resource_info->image_geometry. (DisplayImageCommand): 'display' was improperly requiring at least one argument (bug was added yesterday).

2004-04-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- utilities/gm.c (main): Default usage message wasn't right for aliased utility.
- configure.ac: Added the --enable-magick-compat option to install compatibility links to emulate ImageMagick commands.
- magick/command.c: Ensure that each sub-command responds to -help and -version appropriately.
- utilities/gm.c (main): Invoke appropriate sub-command if gm is executed under a traditional alternate name such as "convert". The user may create hard or symbolic links from 'gm' to a traditional ImageMagick utility name (or just copy 'gm' to the desired sub-command name) in order to be 100% command-line compatible with ImageMagick 5.5.2. This is necessary in order to work with existing software designed to execute ImageMagick utilities.

2004-04-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/compress.c (Ascii85Tuple): Fix an encoding bug noticed on DEC Alpha.

2004-04-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/pdf.c (ReadPDFImage): Double-check that Ghostscript produced an output file since sometimes it reports success after it has spewed an error message and has produced no output.

2004-04-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/compress.c (HuffmanEncode2Image): Avoid out of bounds array access.

2004-04-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Fix minor shell syntax error (used ==).

2004-04-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh (PACKAGE_VERSION): Release version 1.1. Bumped revision to 1.1.1.
- magick/studio.h: Disabled use of Windows message lookups entirely since this doesn't seem to work for programs. It probably only works for DLLs like ImageMagickObject.
- magick/delegate.c (ListDelegateInfo): Don't get stuck in a loop if fprintf() returns zero.

2004-04-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- VisualMagick/*/*.bat: Add .exe to exe file names in order to ensure that the executable is executed rather than something else (such as a batch script).
- magick/locale.c: Only use Windows resource message lookup for the DLL build since it doesn't seem to work for static executables.
- magick/utility.c (SetClientPath): Ensure that client path is null terminated.
  (SetClientFilename): Initialize default client filename to "" rather than "gm.exe" and ensure that filename is null terminated. (SetClientName): Ensure that client path is null terminated.
- magick/blob.c (GetConfigureBlob): Enable logging the load of log.mgk
- magick/log.c: Re-designed logging initialization in order to avoid the "chicken and the egg" snafu. This allows logging the initialization of the logging subsystem.

2004-04-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- VisualMagick/bin/log.mgk: Add comments to help document usage.
- config/log.mgk: Add comments to help document usage.
- magick/utility.c (IsAccessible): Use access() rather than stat(). (IsAccessibleNoLogging): Use access() rather than stat(). (IsDirectory): Implemented return status according to existing API documentation.
  (GetExecutionPathUsingName): Complete re-write in order to minimize path computation logic and fix failure with partial paths.

2004-03-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- doc/options.imdoc: Add "Color" to the arguments available for -list.

2004-03-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh (PACKAGE_CHANGE_DATE): Updated version to 1.1Beta3
- magick/nt_base.c (NTSystemComman): Have not been successful with using MsgWaitForMultipleObjects() reliably, so back out usage of it for now.
- magick/fx.c (ConvolveImage): Support convolution in CMYK colorspace.

2004-03-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh (PACKAGE_CHANGE_DATE): Update release to 1.1Beta2.
- magick/constitute.c (ReadImage): Ignore errors of type ConfigureError when loading modules so that error report can still report the familiar "No delegate for this image format" message while still being able to report problems with loading a module if it was found. This is a compromise which reports useless messages when the modules are not found at all, but I can't think of a way around it.
- magick/nt_base.c (NTSystemComman): Adjust MsgWaitForMultipleObjects() arguments to wait for object to be signaled only (FALSE) rather wait for object to be signaled as well as an input event received(TRUE). It seems that process status changes do not result in an input event, so the call was deadlocking.
- magick/constitute.c (ReadImage): If module loading reported an error, ReadImage immediately returned an error rather than trying to use a delegate defined by delegates.mgk.

2004-03-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh: Updated version to 1.1Beta1

2004-03-24 Mike Chiarappa <mikechiarappa@libero.it>

- BCBMagick/magick/libMagick.bpr: updated to latest source modifications.
- BCBMagick/magick/GM_Magick.bpr: updated to latest source modifications.

2004-03-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/plasma.c (ReadPlasmaImage): srand() is already invoked by InitializeMagick() so don't call it here.
- configure.ac: Check for rand_r().
- magick/tempfile.c (ComposeTemporaryFileName): The full range of safe characters was not being used, thereby limiting the number of unique temporary file names available.

2004-03-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (GetImageStatistics): New function to obtain image statistics (minimum, maximum, mean, variance, and standard deviation).
  (DescribeImage): Include image channel statistics in verbose output.

2004-03-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/constitute.c (DispatchImage): Removed some unreachable code that was accidentially left in the switch statement.
- magick/pixel_iterator.c (PixelIterateDualRead): Extended so that the region in each image may use a different origin. (PixelIterateDualModify): Extended so that the region in each image may use a different origin.
- magick/composite.c (CompositeImage): Fix XorCompositeOp overflow condition which occured on non-Intel architectures.

2004-03-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- NEWS: Updated with changes up to today's date.
- tests/constitute.c (main): Float type seems to require allowing a bit of error for Q:32.
- magick/constitute.c (DispatchImage): Be more careful when rounding pixel intensity.
  (ConstituteImage): Be more careful when converting float and double to Quantum.
- magick/composite.c (CompositeImage): Fix Multiply composite operator for Q:32 build (was all black image). (CompositeImage): Tidied up the documented composite operators so the implementation is easier to understand.
- PerlMagick/t/ttf/read.t: Set a desired label size so output image should be the same size as the reference image even if the FreeType type hinter is disabled.
- magick/annotate.c (RenderFreetype): Improve outline bounding box computation accuracy.

2004-03-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/t/x/write.t: Don't test X11 if DISPLAY is not set.
- PerlMagick/t/x/read.t: Don't test X11 if DISPLAY is not set.

2004-03-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/Makefile.am: Removed some apparently unnecessary library dependencies.
- Makefile.am (windows-src): Added a way to generate a Windows source zip file.

2004-03-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c: The -operator command now supports floating-point and percent of range arguments.

2004-03-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c: Added support for -operator command with syntax "-operator channel operator rvalue" which applies a arithmetic or bitwise operator to a specified image channel or all channels.

2004-03-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/t/filter.t: Fix Solarize test case.
- PerlMagick/t/wmf/read.t: Added another WMF test case.
- coders/wmf.c: Resolve WMF rendering bug with black color.
- magick/utility.c (StringToArgv): Free argv data prior to error return.

2004-03-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/jpeg.c (WriteJPEGImage): If image_info->colorspace is set to GRAYColorspace then make sure that image is in a gray colorspace.
- magick/image.c (TransformRGBImage): If colorspace is already an RGB type (RGBColorspace, GRAYColorspace, or TransparentColorspace), then simply return. Do *not* set image->colorspace to RGBColorspace since this potentially loses a valuable setting.

2004-03-10 Peter Boos <pedib@colorfullife.com>

- magick/annotate.c (RenderFreetype): If DrawAnnotation is called with a string containing only one character and this character is not recognized by the TrueType engine, a crash occured due to the failure of FT_Load_Glyph. The failure caused an uninitialized glyph.image pointer to be used by FT_Done_Glyph() later in the code. The solution is to initialize the glyph.image pointer to null.

2004-03-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (QuantumOperatorRegionImage): Properly handle over and underflow of arithmetic operators.
- magick/draw.c (DrawGetFillOpacity): Use fill opacity, and invert opacity range so it is 0.0 to 1.0 (was acting like transparency). (DrawSetStrokeOpacity): Validate range of stroke_opacity. (DrawSetFillOpacity): Save value to context->fill.opacity and validate the range of fill_opacity.
- magick/image.c (QuantumOperatorImage): New function to apply an arithmetic or bitwise operator to the pixel quantums in an image. (QuantumOperatorRegionImage): New function to apply an arithmetic or bitwise operator to the pixel quantums in an image region.
- magick/image.c (IsImagesEqual): Re-implemented using the new pixel iteration functions as a proof of concept.
- magick/pixel_iterator.h: Added some pixel iteration functions in order to make it easier to implement algorithms which only need to iteratively access pixels in a region. These functions are not part of the API yet so their interface should be considered unstable.
- doc/GNUmakefile: Rename Makefile to GNUmakefile since it relies on GNU make extensions.

2004-03-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/constitute.c (ConstituteImage): Add support for 'T' (transparency) and 'O' (opacity) map types. Simplify implementation.
  (DispatchImage): Add support for 'T' (transparency) and 'O' (opacity) map types. Simplify implementation.
- config/delegates.mgk.in: Quote delegate command names so that they can contain embedded spaces.
- VisualMagick/bin/delegates.mgk: Quote delegate command names so that they can contain embedded spaces.
- coders/tiff.c (WriteTIFFImage): Use the libtiff default endian mode when writing TIFF rather than forcing MSB2LSB bit order. (ReadTIFFImage): Enable reading in MSB2LSB bit order (better for our byte-level parsing), enable memory mapping, and enable strip chopping. Memory mapping and strip chopping are probably enabled by default.
- magick/nt_base.c (NTSystemComman): Use MsgWaitForMultipleObjects() rather than WaitForSingleObject() in order to avoid possible deadlock when application code directly or indirectly creates windows.

2004-02-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/animate.c (XMagickCommand): URL should point to http://graphicsmagick.org/.
- magick/display.c (XMagickCommand): URL should point to http://graphicsmagick.org/.
- magick/image.c (DisplayImages): Changes to fix memory leaks in X11 commands had bugs which seriously broke DisplayImages. Now DisplayImages works properly again.
- magick/xwindow.c (XDestroyResourceInfo): New function to destroy XResourceInfo.
- coders/x.c (WriteXImage): Implement based on DisplayImages(). (RegisterXImage): Always register X coder, but with read/write support disabled if X11 not available.

2004-02-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c (ImportImageCommand): Eliminate memory leaks.
- magick/memory.c (LiberateMemory): Use MagickFreeMemory macro for implementation.
  (ReacquireMemory): Use MagickReallocMemory macro for implementation.
  (AcquireMemory): Use MagickAllocateMemory for implementation.

2004-02-26 Vladimir <lvm@integrum.ru>

- magick/memory.c (CloneMemory): Fixes to compile under Microsoft Visual C++ 6.0.

2004-02-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/animate.c (XAnimateImages): Memory leak reduction and better integration with gm command.
- magick/display.c (XDisplayImage): Display was leaking memory like a sieve. Now it doesn't.
- magick/memory.c (CloneMemory): Computation for when it is safe to use memcpy() was incorrect. Use memmove() rather than backwards-copy loop.
- Makefile.am ($(DIST_ARCHIVE_SRPM)): Added rules to build a source RPM.
- configure.ac: Search for 'buildrpm' or 'rpm' programs in order to support creating RPM packages on a system which has RPM installed.
- version.sh (PACKAGE_VERSION): Changed snapshot release naming so that there is only one dash in the name and the snapshot date is prefixed with '0' to assure proper directory sorting. This allows snapshot naming to be acceptable to RPM. The snapshot package name is now similar to GraphicsMagick-1.1.020040218.tar.bz2

2004-02-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/xwd.c (RegisterXWDImage): Always register XWD, but only register read/write methods if it is supported.
- wand/magick_wand.c: Synchronized with latest ImageMagick API changes.

2004-02-16 Lars Ruben Skyum <lars.skyum@stibo.com>

- magick/resize.c (HorizontalFilter): Fixed: do process K channel for CMYK images.
  (VerticalFilter): do process K channel for CMYK images.

2004-02-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tga.c (ReadTGAImage): Fix matte channel handling. For 16-bit packets, use integer rather than floating point. Return gray images as PseudoClass and set is_grayscale flag. Add logging.
- magick/fx.c (WaveImage): Ensure that image is DirectClass. Ensure that matte channel is initialized if necessary. Include background color in is_grayscale evaluation.
- magick/gem.c (GenerateNoise): Scale noise to range of quantum.

2004-02-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/jp2.c (WriteJP2Image): Support passing all documented Jasper options using -define.

2004-02-13 Peter Boos <pedib@colorfullife.com>

- coders/wmf.c (util_draw_arc): Fixes to improve handling for pie, arc, and chord. These fixes produce correct output for wmf/examples/fjftest.wmf, but it is not known if they are correct for all cases.

2004-02-12 Tim Hunter <cyclists@nc.rr.com>

- magick/profile.c (SetImageProfile): Bug fixes.

2004-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/xpm.c (UnregisterXPMImage): Unregister PICON registration.

2004-02-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/Makefile.am (label_la_LDFLAGS): Add a dependency on the math library since floor() is used.
- wand/magick_wand.c (MagickRemoveImageProfile): Use C comments in C files.
- magick/constitute.c (MapQuantumType): Fix spurious comma in enum definition.
- magick/blob.c (GetBlobStreamHandler): Apparently return type can not be const.

2004-02-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Check for Windows fonts under /usr/X11R6/lib/X11/fonts/truetype (XFree86 standard location?).
- coders/jp2.c (WriteJP2Image): Support providing a compression rate value (range 0.0 to 1.0) using command line syntax similar to '-define jp2:rate=0.5'. In Magick++ this option may be accessed similar to image.defineValue("jp2","rate","0.5");
- magick/command.c (DisplayImageCommand): Exit status was inverted so 'gm display' was returning 1 for successful commands, and 0 for failures.
  (AnimateImageCommand): Exit status was inverted so 'gm animate' was returning 1 for successful commands, and 0 for failures.

2004-02-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/utility.h (MagickReallocMemory): Solaris compiler complains about cast so remove it.
- coders/xwd.c (WriteXWDImage): Right-size the pixels buffer and tune writer loops a bit.
- magick/color.h (VerifyColormapIndex): Improve diagnostics.
- coders/pict.c (WritePICTImage): Eliminate use of uninitialized data when writing RGB PICT. Fix OpenBlob assertion when writing JPEG PICT.
  (ReadPICTImage): Validate 'tile_image' colormap indexes rather than 'image' colormap indexes. Preserve compression attribute from tile image.
- magick/constitute.c (DispatchImage): Don't access image opacity channel unless image->matte is True.

2004-02-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/png.c (UnregisterPNGImage): Destroy PNG semaphore.
- magick/image.c (SetImageInfo): Since we don't know what the "IMPLICIT" specifier is supposed to do, support for it is removed. Perhaps by removing support for it, we will be reminded why it exists.
- magick/magick.c (DestroyMagickInfo): Invoke UnregisterStaticModules().
  (GetMagickInfo): Remove registration for "IMPLICIT" format since its purpose is presumed bogus.
- magick/static.c (UnregisterStaticModules): New function so we can unregister static modules.
- coders/plasma.c (UnregisterPLASMAImage): Unregister FRACTAL.
- coders/icon.c (UnregisterICONImage): Unregister CUR.
- coders/bmp.c (UnregisterBMPImage): Unregister BMP2 and BMP3.
- coders/meta.c (UnregisterMETAImage): Unregister APP1JPEG, IPTC, IPTCTEXT, IPTCWTEXT, and PICON.
- coders/miff.c: Check for run-length termination before testing memory and only check opacity channel if matte is valid.
- magick/compress.c: Check for run-length termination before testing memory (bad read error).

2004-02-07 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/bmp.c: Fix off-by-one error while initializing padding bytes.
- coders/dib.c: Fix off-by-one error while initializing padding bytes.
- magick/enhance.c: MaxMap vs MaxRGB error fixed. Reported by Cristy.

2004-02-04 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- magick/compress.c: avoid a reference to uninitialized data.

2004-02-04 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/dib.c: initialize padding bytes.

2004-02-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/montage.c (MontageImages): Fix leak of texture image (big leak).

2004-02-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (WriteTIFFImage): Fix detection of when to use a temporary file when writing TIFF. Writing to TIFF BLOBs was broken by the recent changes to make BlobInfo a private type.
- magick/render.c (DestroyEdge): Use memmove for overlapping copy.

2004-02-03 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/bmp.c: initialize padding bytes.

2004-02-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/constitute.c (ConstituteImage): Added map support for 'P', in order to skip over a pad quantum. (DispatchImage): Added map support for 'P', in order to write a pad quantum.
- magick/resize.c (HorizontalFilter): Don't process opacity channel unless matte is enabled. (VerticalFilter): Don't process opacity channel unless matte is enabled.
- magick/compress.c (Ascii85Initialize): Don't overwrite an existing ascii85 allocation.
- magick/utility.c (Strip): Use 'memmove' rather than 'memcpy' to copy overlapping data.
- tests/rwfile.c (main): Fix memory leak in test. Only apply size if format requires it.
- tests/rwblob.c (main): Fix memory leak in test. Only apply size if format requires it.
- coders/mono.c (RegisterMONOImage): Mono is a raw format.
- magick/magic.c (GetMagicInfo): Ensure that magic tests are within the range of header data which was read.

2004-02-02 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/bmp.c: fix potential use of uninitialized data.
- coders/png.c: fix potential use of uninitialized data.

2004-01-31 Mike Chiarappa <mikechiarappa@libero.it>

- magick/studio.h: Fixed problem related to DLL version of BCBMagick. Sometimes was incorrectly checked the presence of VC++ DLL. Thanks very much to Oliver Bertini for bringing this problem to our attention.
- BCBMagick: added libpng delegate library in both static and DLL modes.
- BCBMagick: removed all unuseful files from CVS.

2004-01-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/render.c (CloneDrawInfo): Fixed nasty memory leak which becomes painfully evident when using Magick++.
- magick/type.c (ReadTypeConfigureFile): Fix problem with parsing <include> directive.
- configure.ac: The type.mgk generated had a syntax error.
- magick/effect.c (SpreadImage): Eliminate read from uninitialized memory.
- magick/quantize.c (NodeInfo): Store nodes in a list similar to ImageMagick.
  (DestroyCubeInfo): Eliminate a small memory leak.

2004-01-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/montage.c (MontageImages): Free thumbnails once they are no longer needed (big leak).
- magick/blob.c (OpenBlob): Ensure that magick array is fully initialized, even if the fread() is short.
- magick/list.c (ImageListToArray): Add a null pointer to the end of the image list to serve as a handy list terminator.
- magick/tempfile.c (DestroyTemporaryFiles): Fix memory leak of semaphore.
- magick/map.c (MagickMapDeallocateMap): Fix memory leak of semaphore.
- coders/png.c (WriteOneJNGImage): Use DestroyBlob.
- magick/list.c (SyncNextImageInList): Use DestroyBlob.
- magick/image.c (AllocateNextImage): Use DestroyBlob. (DestroyImage): DestroyBlob.
- coders/wpg.c (ExtractPostscript): Use DestroyBlob.
- magick/blob.c (DestroyBlob): New function. Similar to DestroyBlobInfo except that it requires an Image * argument and zeros the blob pointer. This one is preferred for use over DestroyBlobInfo.

2004-01-27 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/png.c: Add DestroyBlobInfo() calls to stop memory leak when processing JNG datastreams.

2004-01-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/utility.h (MagickReallocMemory): Added a cast required to make C++ Happy.
- coders/tiff.c: Adjust for bitstream API function renaming.
- magick/bit_stream.h: Rename BitStreamRead() to BitStreamMSBRead() to indicate that it reads most significant bytes first ("big endian" order). Rename BitStreamWrite() to BitStreamMSBWrite() to indicate that it writes most significant bytes first ("big endian" order).
- wand/magick_wand.c: Updated to lastest ImageMagick API.

2004-01-26 Mike Chiarappa <mikechiarappa@libero.it>

- magick/stream.c: (SetPixelStream) removed "const" from definition of local variable [StreamHandler stream]. Borland C++Builder compiler signal error "Cannot modify a const object".

2004-01-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (TIFFMapBlob): Allow libtiff to access memory mapped file (or BLOB in memory) directly. This provides a small performance increase.
- magick/constitute.c (ReadImage): If a .mpc file is a temporary file, then be sure to remove the associated .cache file when removing the .mpc file.
- magick/log.h (LogEventType): ExceptionEventMask now maps to WarningEventMask|ErrorEventMask|FatalErrorEventMask so that '-debug exception' works again.
- magick/blob.c (CloseBlob): Allow CloseBlob to be invoked on a blob which is not open (in UndefinedStream state). (BlobInfo): The definition of BlobInfo is now private to blob.c. (StreamType): The StreamType enumeration is now private to blob.c. (GetBlobFileHandle): New function to access the blob file handle. (GetBlobStreamHandler): New function to access the blob stream handler.
  (GetBlobStreamType): This function is removed entirely. (BlobIsSeekable): New function to test if SeekBlob will work properly for this blob type.
  (GetBlobClosable): New function to test if the blob is allowed to be closed by the library (may be an externally provided file descriptor).
  (GetBlobTemporary): New function to test if input file is a temporary file which is to be removed. (SetBlobClosable): New function to support setting the flag which keeps the input file from being closed. (SetBlobTemporary): New function to support setting the flag which indicates that the input file is a temporary file.
- coders/jpeg.c (ReadJPEGImage): Invoke CloseBlob even if blob is in UndefinedStream state.
- magick/error.h (ThrowReaderException): Ditto. (ThrowWriterException): Ditto.
  (ThrowWriterException2): Ditto. (ThrowWriterException3): Ditto.
- magick/tempfile.h (ThrowReaderTemporaryFileException): Ditto. (ThrowWriterTemporaryFileException): Ditto.
- coders/dps.c,coders/jpeg.c, coders/meta.c, coders/mvg.c, coders/png.c, coders/tiff.c, magick/constitute.c, magick/stream.c: Use new blob accessor functions.
- magick/cache.c (OpenCache): For Windows, set the sequential access flag in all cases. Maybe it will make a difference.

2004-01-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/blob.c (GetConfigureBlob): Don't check Windows registry if MagickLibConfigPath or MagickShareConfigPath is defined.
- magick/locale.c: Use a Unix-style message database for MinGW.
- rungm.sh.in: Translate environment paths to Windows format when running under MinGW.
- magick/nt_base.c (mmap): Re-wrote mmap emulation to support 64-bit file offsets and to support anonymous mapping. (msync): A crude emulation of Unix msync().
- acinclude.m4 (GM_FUNC_MMAP_FILEIO): Change result define from HAVE_MMAP to HAVE_MMAP_FILEIO so that it doesn't conflict with Autoconf standard definition.

2004-01-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/cache.c (OpenCache): While allocating the pixel cache from the heap, reserve enough memory to contain a full PseudoClass image in order to reduce the chance that there will be a memory allocation failure while processing the image. This also avoids the possibility that the image pixels will be block-copied to a new location due to heap memory fragmentation. If there is insufficient heap memory (malloc() fails), then a disk-based pixel cache will be used.
- coders/wpg.c: Backed out Jaroslav Fojtik's patch from 2004-01-13 because WPG was failing PerlMagick's existing WPG read test.

2004-01-16 Mike Chiarappa <mikechiarappa@libero.it>

- BCBMagick: updated to recent Windows delegate libraries.
- BCBMagick: modified build procedure. Removed all unused directories and include files.
- lcms/include/lcms.h: Modified to achieve BCBMagick compilation.
- tiff/libtiff/tiffio.h: Modified to achieve BCBMagick compilation
- ttf/include/freetype/config/ftoption.h: Modified to achieve BCBMagick compilation
- Magick++/lib/Magick++/Include.h: Modified to achieve BCBMagick compilation.

2004-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/wpg.c: Applied patch from Jaroslav Fojtik to support reading the CTM (current transform matrix). The CTM is not applied yet (expect later patch).

2004-01-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/sfw.c (ReadSFWImage): Added size_t cast.
- coders/msl.c (MSLStartElement): Added size_t cast.
- coders/meta.c (convertHTMLcodes): Added size_t cast.
- coders/locale.c: Add size_t casts and update to use memory allocation macros.
- coders/html.c (WriteHTMLImage): Added size_t cast.
- magick/utility.h (MagickAllocateMemory): Added size_t cast. (MagickReallocMemory): Added size_t cast.
- coders/bmp.c (WriteBMPImage): Added size_t cast.
- coders/art.c (ReadARTImage): Use memory allocation macros.
- VisualMagick/configure/configure.cpp: Update to support library .def exports files with Visual C++ 7.0.
- Updated Windows delegate libraries: LCMS 1.12, FreeType 2.1.5, BIG-KIT 1.5, libpng 1.2.5, libwmf 0.2.8.2, and zlib 1.2.1.
- Verified Windows static and DLL compilation with Visual C++ 6.0.
- Makefile.am: Update to automake 1.8.2.
- coders/gif.c (WriteGIFImage): Use ColorMatch rather than FuzzyColorMatch when comparing colormap entries.

2004-01-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/profile.c: Needed to include "magick/profile.h" in order to obtain prototypes.

2004-01-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- wand/wandtest.c: Change MagickCloneWand to MagickGetImage since the API name changed.
- wand/pixel_wand.c: Synchronized with latest daily ImageMagick updates.
- wand/magick_wand.c (MagickRemoveImageProfile): Synchronized with latest daily ImageMagick updates.
- magick/profile.c (DeleteImageProfile): New method to make it easier to destroy an image profile.
- magick/profile.h: New source file to contain functions for dealing with embedded image profiles.
- magick/profile.c: New source file to contain functions for dealing with embedded image profiles.
- Makefile.am (DISTDIRS): Distribute TclMagick subdirectory.

2004-01-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- wand/magick_wand.c: Ported over the latest ImageMagick Wand API updates. Note that a comment now says that the Wand API will not be finished until around 4th quarter of 2004. This represents a 1-1/2 year slip from the original estimate!

2004-01-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (IsImagesEqual): Simplified implementation.
- magick/magick.c: Removed some unused code.
- contrib/win32/ATL7/ImageMagickObject/ImageMagickObject.cpp (IDispatch): Comment out InitializeSemaphore() so code compiles.
- libtool.m4: Updated to 2004-01-03 version of CVS libtool. This should fix configure problems under AIX and IRIX.

2004-01-03 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/sgi.c: opacity channel was lost when writing grayscale SGI images. See bug report in magick-users list.

2003-12-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/annotate.c (RenderFreetype): Ensure that image storage class is set to DirectClass. Text rendering was not working properly on top of PseudoClass images.
- magick/map.c (MagickMapRemoveEntry): Logic didn't properly handle removing entry in list.
- configure.ac: Added --enable-efence option to enable memory debugging using Electric Fence.

2003-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- tests/maptest.c (main): Extended test to add an entry to the list after an entry has already been removed.
- magick/image.c (ColorspaceTypeToString): Add support for LAB colorspace.
- magick/map.c: Added signature members to all structures and added assertions to ensure that the signature == MagickSignature prior to use. MagickMapAllocateObject now initializes the object reference count to one, and MagickMapDestroyObject decrements it in order to be more correct even though the object reference count is not actually used yet.
  (MagickMapCopyString): Preserve a null argument, and use AcquireString since it doesn't enlarge the string storage. (MagickMapCopyBlob): Preserve null blobs.
- configure.ac: Search for the shmctl() function. Under current Cygwin, this is hiding in -lcygipc.

2003-12-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/composite.c: Fixed the composite operator list in the CompositeImage documentation.
- www/api/types.html: Corrected list of composition operators. Sometime prior to the creation of GraphicsMagick, the "Replace" composite operators were renamed to be "Copy" composite operators. Thanks to David Relson for bringing this problem to our attention.
- PerlMagick/Magick.xs: Added "LAB" to colorspace types.
- magick/image.h (enum ColorSpace): Add LABColorspace enumeration.
- wand/magick_wand.h : Add some compatibility definitions to translate from ImageMagick enumerations to existing GraphicsMagick enumerations.

2003-12-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/annotate.c: Use header synonyms defined by FreeType's ftheader.h (included via <ft2build.h>) to include FreeType headers. This will presumably be more portable in the future.
- configure.ac: <ft2build.h> is an optional prerequisite for <freetype/freetype.h> and <libwmf/ipa.h> so include it when testing for these headers.
- magick/annotate.c: Include <ft2build.h> if it is available.

2003-12-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- wand/wandtest.c: Ported from latest ImageMagick version.
- wand/drawing_wand.c: Adapted to be compatible with latest ImageMagick version.
- wand/pixel_wand.c: Adapted to be compatible with latest ImageMagick version.
- wand/magick_wand.c: Ported from latest ImageMagick version.
- magick/image.h (Image): Members color_profile, iptc_profile, generic_profile, and generic_profiles are now deprecated and private although they continue to work as before. Please migrate existing code to use the GetImageProfile and SetImageProfile functions since these members will eventually be removed.
- magick/image.c (GetImageProfile): New function to retrieve an image profile. Return value differs from similarly named ImageMagick method since the ImageMagick approach assumes a particular storage method.
  (SetImageProfile): New function to add (or remove) an image profile. Does not execute CMS color profiles.
- magick/cache.c (SetImageVirtualPixelMethod): Return unsigned int to make the Wand implementation happy.
- magick/image.c (TransformColorspace): Return unsigned int to make the Wand implementation happy. (SetImageType): Return unsigned int to make the Wand implementation happy.
- magick/draw.h, magick/draw.c: Substitute 'unsigned long' in place of 'size_t' in interfaces so that the draw API is not sensitive to the definition of _LP64.
- locale/C.mgk: Added new messages required by Wand library.
- magick/error.c (ExceptionSeverityToTag): Add tag translations for the WandWarning, WandError, & WandFatalError enumerations
- magick/error.h (enum ExceptionType): Add WandWarning, WandError, & WandFatalError enumerations to ExceptionType for ImageMagick API compatibility.
- magick/image.h (enum ChannelType): Add an 'AllChannels' enumeration to the ChannelType enumeration for ImageMagick API compatibility.

2003-12-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick, tests: Adjusted allowed error values for tests based on new error computation arithmatic. Some tests were left failing since the operation they test provides results which are unreasonably inaccurate, or obviously broken.

2003-12-17 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/jpeg.c: Changed "JPEG:preserve-settings from a key/value pair to a simple flag. Save and restore attributes when "-define JPEG:preserve-settings" appears on the commandline. Use "+define JPEG:preserve-settings" to unset the flag.

2003-12-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/wmf.c: Include <ft2build.h> if it is available since some libwmf installs don't work unless it is included before the libwmf API headers.
- configure.ac: Check for <ft2build.h>.

2003-12-16 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/jpeg.c: Changed stored jpeg quality attribute from [jpeg-quality] to JPEG-Quality. Added attributes JPEG-Colorspace and JPEG-Sampling-factors. Added code to save and restore these attributes when "-define JPEG:preserve-settings=yes" is present in the comandline. Quality is restored if the input was a JPEG and the quality was preserved. Sampling factors are restored if the input was a JPEG, sampling factors were preserved, and the colorspace for the output file is the same as that of the input file.

2003-12-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- TclMagick/source/configure.ac: Add an initial TclMagick configure-based build environment based on a template and macros from the Tcl project. I recall that while the extension does build, it is possible that it is not properly registered as a module to Tcl.

2003-12-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (IsImagesEqual): Properly compute error distance vectors. Math was missing the necessary sqrt call. Also, pre-normalize the error differences to 1.0 in order to reduce the storage size required to store the summation of error values.
- PerlMagick/t/composite.t: Update Minus and Xor reference images.
- magick/composite.c (CompositeImage): Incorporated fixes from ImageMagick for XorCompositeOp, PlusCompositeOp, and MinusCompositeOp. Thanks to John Cristy for bringing the need for these fixes to our attention.
- magick/image.h (RoundToQuantum): Added missing parenthesis.

2003-12-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- doc/environment.imdoc: Document MAGICK_CODER_MODULE_PATH and MAGICK_FILTER_MODULE_PATH.
- rungm.sh.in: Pass MAGICK_CODER_MODULE_PATH and MAGICK_FILTER_MODULE_PATH in the environment so modules build may be tested without first being installed.
- magick/module.c (FindMagickModule): Use the MAGICK_CODER_MODULE_PATH environment variable to specify a search path for coder modules. Use MAGICK_FILTER_MODULE_PATH to specify a search path for filter modules.
- Makefile.am: Updated to Automake 1.8. (install-exec-perl): Fixes which achieve a successful 'make distcheck' for the first time in *Magick history.
- configure.ac: Set scripts to executable.

2003-12-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Makefile.am (uninstall-data-html): Pathnames were computed incorrectly so documentation directories were being left behind.
- configure.ac: --without-frozenpaths is now the default. This helps 'make distcheck' work and makes the package more portable. Path to gm was being incorrectly frozen when --without-frozenpaths was specified.
- magick/delegate.c (ReadConfigureFile): Validate delegate paths prior to substitution.
- rungm.sh.in (top_builddir): Use a more reliable scheme for computing location of source and build directories.
- magick/Makefile.am: Improve include directory computation logic.
- configure.ac: Don't override includedir. Pass user-supplied LIBS to the linker.

2003-12-08 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/jpeg.c: store JPEG quality as "[jpeg_quality]" attribute.

2003-12-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- rungm.sh.in: New script to support executing uninstalled executables.
- magick/blob.c (GetConfigureBlob): New MAGICK_CONFIGURE_PATH environment variable allows the user to specify the search path for configuration (.mgk) files.

2003-12-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- index.html: Added a table showing current stable release and development version.

2003-12-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- doc/options.imdoc (use): Describe the syntax of the -process argument.
- acinclude.m4 (AC_CHECK_CC_OPT): Add quoting in AC_CHECK_CC_OPT definition. Change suggested by Patrick Welche

2003-12-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/magick.c (GetMagickInfo): Fix preprocessing logic error which caused moby shared library build to not register static modules.

2003-12-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/module.c (ExecuteModuleProcess): Add some logging.
- magick/static.c (ExecuteStaticModuleProcess): Add some logging.

2003-11-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- VisualMagick/installer: Add optional build support for LZW.
- wand/Makefile.am: Add AUTOMAKE_OPTIONS.
- configure.ac: Update to Autoconf 2.59.

2003-11-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- VisualMagick/installer/inc/tasks-install-perlmagick.isx: Update to reflect that the next release will use ActivePerl 5.8.1 Build 807.
- VisualMagick/installer/inc/files-configs.isx: Updated the source locations for the .mgk files. Install modules.mgk into the config directory rather than the modules directory.
- configure.ac: Fixes to work with latest CVS libtool.
- libtool.m4: Update to latest CVS libtool.
- magick/modules.c, magick/static.c (ExecuteStaticModuleProcess): Fix conditional compilation logic so that "moby" shared library build works again.
- magick/compress.c, magick/mac.c: Use existing SaveImageText and LoadImageText global constants rather than separate defines.

2003-11-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Update to Autoconf 2.58.
- Makefile.am: Update to Automake 1.7.9.

2003-11-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/draw.c (DrawComposite): Base64-encoded image was not being deallocated. Bad memory leak.

2003-11-03 Mike Chiarappa <mikechiarappa@libero.it>

- BCBMagick: Updated installation procedure. Please read BCBMagick/readme.txt for details.

2003-11-03 Mike Chiarappa <mikechiarappa@libero.it>

- BCBMagick: Released DLL Version. Please read BCBMagick/readme.txt for details about installation and/or use.

2003-11-03 Lars Ruben Skyum <lars.skyum@stibo.com>

- magick/utility.c (GetPathComponent): Added x, X, and + characters to list of legal characters in subimage specifications. Required by raw RGB image reader which accepts the syntax "image.rgb[100x100+50+50]". Thanks to John Cristy for catching that one.

2003-11-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/locale.c (GetLocaleMessageFromID): Fix ID range checking logic.

2003-10-30 Lars Ruben Skyum <lars.skyum@stibo.com>

- coders/jpeg.c: changed to not write gray CMYK images as grayscales. That would not be a valid optimization.
- magick/color.c (IsGrayImage, IsMonochromeImage): Changed to never return true for CMYK images. Separated images get wrong colors when optimized to grayscales based on what these two functions return. Gray and CMYK are two different color spaces.
- magick/nt_feature.c (NTIsMagickConflict): changed to accept colon as part of the magick string, consistent with the way the function is used.
- magick/utility.c, magick/utility.h (ExpandFilenames, GetPathComponent): Fixed filename glob expansion. Added handling of filename prefix-magick and sub-image specification to GetPathComponent. Sub-image specification takes precedence over any filename patterns.

2003-10-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/static.c (ExecuteModuleProcess): Renamed from ExecuteStaticModuleProcess. Only compiled if SupportMagickModules is not defined.
- magick/type.c (GetTypeBlob): Eliminated function. (ReadTypeConfigureFile): Use GetConfigureBlob() rather than GetTypeBlob().
- magick/module.c (GetModuleBlob): Eliminate this function since modules.mgk is now installed under ${prefix}/share/GraphicsMagick-version/config so GetConfigureBlob() may be used. (lt_dlexit, etc.) Eliminate fake libltdl function wrappers used for the static build.
  (DestroyMagickModules): Added a new destroy function (simply invokes DestroyModuleInfo()).
  (GetModuleList): Learn where modules live by using FindMagickModule() to locate the LOGO module rather than by using the location of modules.mgk. This is necessary since now modules.mgk may be seperate from the modules. (GetModuleBlob): Eliminated function. (InitializeMagickModules): New function to safely initialize the module loader.
  (OpenModule): Added logging messages. (OpenModules): Added logging messages. (ReadModuleConfigureFile): Use GetConfigureBlob() rather than GetModuleBlob().
  Totally eliminated the rat's-nest of conditional code dependent on SupportMagickModules. Now all the code in module.c is dependent on #if defined(SupportMagickModules).
- magick/magick.c (DestroyMagick): Invoke DestroyMagickModules(). (GetMagickInfo): #ifdef chunks of code which exist to support the modules-build rather than forcing the module loader to pretend that modules are being used when they are not. Pass module loading exceptions back to the user rather than discarding them. (GetMagickInfoArray): Don't inspect the exception status since may short-circuits the operation. Use best-effort instead. (ListMagickInfo): Don't inspect the current exception status so that all the modules which did load successfully will be represented.
  (InitializeMagick): Invoke InitializeMagickModules().
- magick/log.c: (GetLogBlob): Eliminated function. GetConfigureBlob() is safe to use now when configuring logging. (LogToBlob): Simplified function. Only exists since FileToBlob() may throw exceptions (which are logged, causing deadlock). (ReadLogConfigureFile): Use GetConfigureBlob().
- magick/blob.c (GetConfigureBlob): Re-written to use the MagickMap interface and to support the new 'lib' and 'share' config directories. The directory ${prefix}/lib/GraphicsMagick-version/config is scanned before ${prefix}/share/GraphicsMagick-version/config. (FileToBlob): Simplified implementation.
- config/Makefile.am: New makefile to install .mgk files.
- magick/magick_config.h.in: Added MagickLibConfigPath and MagickShareConfigPath defines.
- configure.ac: Install configuration files (.mgk files) in ${prefix}/lib/GraphicsMagick-version/config and ${prefix}/share/GraphicsMagick-version/config. Architecture independent files to under "share" while architecture dependnet files go under "lib".
- Makefile.am: Added 'config' subdirectory to distribution. All .mgk files are moved from 'coders' & 'magick' into this single directory.

2003-10-21 Mike Chiarappa <mikechiarappa@libero.it>

- magick/studio.h: small modifications to achieve DLL compilation of library with Borland C++ Builder.
- coders/ps3.c (ZLIBEncode2Image): Fixed bug. Compilation fail when HasZLIB is undefined because parameters 5 and 6, are undefined.

2003-10-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- libtool.m4: Updated libtool again to CVS latest version. Libtool required some fixes for building DLLs under MinGW.
- magick/resource.c (InitializeMagickResources): Some code is conditional based on HAVE_POPEN.
- magick/utility.c (SystemCommand): Improved conditional compilation logic.
- magick/blob.c (OpenBlob): Code depending on popen() is conditionally compiled based on HAVE_POPEN. Code depending on pclose() is conditionally compiled based on HAVE_PCLOSE.
- configure.ac: Add test for _pclose(), pclose(), _popen(), and popen().
- magick/locale.c (GetLocaleMessage): Add missing MagickExport. (GetLocaleMessageFromID): Add missing MagickExport.
- VisualMagick/installer/inc/files-development.isx (Source): Include all of the headers from the magick directory in the development package. Including them individually is too error prone.

2003-10-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- VisualMagick/magick/magick_config.h.in: Added PREFIX_MAGICK_SYMBOLS as a configuration option.
- magick/module.c (_CoderInfo): Added register_function and unregister_function members to record the module's register and unregister function addresses.
  (OpenModule): Locate the module's register and unregister functions and save their address to the module's CoderInfo record. (UnloadModule): Invoke the module unregister function using the address recorded by OpenModule(). (TagToFunctionName): If PREFIX_MAGICK_SYMBOLS is defined, then add a "Gm" prefix to the register and unregister function names.
- libtool: Updated libtool files to the latest CVS version.
- configure.ac: Changed define name from MAGICK_SYMBOL_PREFIX to PREFIX_MAGICK_SYMBOLS since support is not available for specifying an arbitrary prefix.

2003-10-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Added --enable-symbol-prefix configure option which prepends "Gm" to all GraphicsMagick library symbols using the C pre-processor. In the future, this may change to support specifying an arbitrary prefix, depending on experience.
- magick/studio.h: Include magick/symbols.h.
- magick/api.h: Include magick/symbols.h.
- magick/symbols.h: New header to support optionally remapping library symbols. If MAGICK_SYMBOL_PREFIX is defined, then library symbols are remapped.

2003-10-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/api.h: Removed inclusion of <magick/semaphore.h> since it is an implementation header.

2003-10-13 Lars Skyum <lrs@stibo.dk>

- www/GraphicsMagick.html, www/animate.html, www/composite.html, www/conjure.html, www/convert.html, www/display.html, www/gm.html, www/identify.html, www/import.html, www/mogrify.html, www/montage.html: added documentation for "-define" command line option.
- doc/brief_options.imdoc, doc/options.imdoc: Added documentation for "-define" command line option.
- doc/gmdocselect, doc/imdocselect: Changed "skipform" label in sed scripts to just "skipf". Solaris sed had problems with the long(?) "skipform" label.

2003-10-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- doc/composite.imdoc, doc/options.imdoc, doc/GraphicsMagick.imdoc: Attempted to clarify the meaning of the compose arguments and how composition works, as well as eliminating use of hard-coded values like 255.
- www/links.html: Added a link to Michael Still's article "Graphics from the command line".

2003-10-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/*.c: Updated module descriptions so that they accurately describe the module rather than saying "Read/Write GraphicsMagick Image Format".
- coders/cineon.c: Fix source module description. Contrary to opinion, ImageMagick did not invent the Cineon X image format so description is now "Read/Write Cineon X Image Format."
- magick/magic.mgk: Added a CINEON entry for the Cineon X image format.
- magick/static.c (RegisterStaticModules): Invoke RegisterCINEONImage().
- coders/modules.mgk: Map "CIN" magick to CINEON module.

2003-10-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- locale/C.mgk: Added message for "UnrecognizedCommand".
- magick/command.c (MagickCommand): No error was reported when a subcommand failed to be matched so 'gm foo' would silently return. Now an error message is properly reported.

2003-10-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Makefile.am: Updated to Automake 1.7.8.
- various: Edits to eliminate minor issues detected by SGI C compiler.
- coders/ps3.c (WritePS3Image): Variable 'value was set but never used so it is removed.
- magick/image.c (RGBTransformPacket): Removed inline request since this function is too big to inline.
- magick/animate.c (XAnimateBackgroundImage): Fixed a GCC 3.X "type pinning" warning.
- magick/display.c (XDisplayBackgroundImage): Fixed a GCC 3.X "type pinning" warning.
- magick/render.c (GetPixelOpacity): Removed inline directive. No one in their right mind could ever imagine this function inlining successfully.
- magick/cache.c (IsNexusInCore): Adjusted so function inlines as requested.
- coders/tiff.c (ReadTIFFImage): Improved logging information. (WriteTIFFImage): Changed the way the bilevel/grayscale logic works. Now bilevel images are treated similar to any other grayscale image unless CCITT FAX3 or FAX4 compression is requested (which selects the MINISWHITE photometric). The default is now to write uncompressed bilevel images with MINISBLACK photometric.
- PerlMagick/t/composite.t: Use some reasonable error values.
- magick/image.c (GetImageDepth): Added special cases for colormapped images and monochrome images in order to improve performance.

2003-10-09 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- NEWS: added info about color scaling, sampling-factor, and changed a reference to "-coder-options" to "-define".

2003-10-09 Lars Ruben Skyum <lars.skyum@stibo.com>

- VisualMagick/bin/modules.mgk: added EPS3 mapping to PS3 module.
- coders/ps3.c, coders/tiff.c, magick/command.c, magick/image.c, magick/image.h, magick/utility.c: Changed -coder-options option to -define. Also renamed functions {Add,Remove,Access}CoderOption(s) to {Add,Remove,Access}Definition(s). Changed ps coder-specific option ps:image=imagemask to just ps:imagemask.

2003-10-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/cineon.c: Imported and adapted Cineon image format coder written by Kelly Bergougnoux <three3@users.sourceforge.net> with assistance from John Cristy.

2003-10-08 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/jpeg.c: Extended -sampling-factor option to allow user to supply full set of sampling factors. If the full set is not supplied, omitted ones are 1x1 by default, similar to the behavior of "cjpeg -sample".
- magick/command.c: Accept multiple pairs of sampling factors.

2003-10-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (WriteTIFFImage): Re-arranged logging for improved output. Cleaned up evaluation of SAMPLESPERPIXEL and BITSPERSAMPLE. Provided support for the TIFF coder options tiff:samples-per-pixel and tiff:bits-per-sample for power users. (ReadTIFFImage): Colormap generation for PHOTOMETRIC_MINISBLACK and PHOTOMETRIC_MINISWHITE was inaccurate. Seems to be accurate now.
- PerlMagick/t/reference/read/input.miff: Updated due to Glenn's change to scale macros.
- PerlMagick/t/tiff/input_gray_12bit.tiff: Replaced 12 bit image with a different one which is written by GraphicsMagick.
- coders/ps3.c (WritePS3Image): Use AccessCoderOption().
- magick/image.c (AccessCoderOption): Added a function to use for accessing coder-specific options.

2003-10-08 Lars Ruben Skyum <lars.skyum@stibo.com>

- magick/attribute.c (TraceSVGClippingPath): optimized for speed and precision in clipping mask generation by using lines to connect Bezier curve anchor points where applicable.

2003-10-07 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Revised ScaleColor5to8 and ScaleColor6to8 macros again, to fill the low bits correctly.

2003-10-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/t/tiff/read.t: Added 16-color and 256 color colormapped tests with a matte channel.
- PerlMagick/t/tiff/write.t: Added 16-color and 256 color colormapped tests with a matte channel.
- coders/tiff.c (WriteTIFFImage): When using LZW compression, apply the horizontal differencing predictor to RGB truecolor and deep gray images since the TIFF spec says that LZW compression is usually improved by using horizontal differencing with continuous tone images.
  Re-implemented grayscale and colormapped scanline preparation to use the new bit-stream interface. This is a bit slower, but very flexible, and the implementation is very compact. Writing of a matte (transparency) channel is now believed to be correct for all depths.
- magick/command.c (MogrifyImage): Only transform the colorspace if it has been set (i.e. is not UndefinedColorspace).

2003-10-06 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/png.c (ReadOnePNGImage): PNG decoder would exit too early when reading image.png[0].

2003-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/t/tiff/write.t: Added TIFF write tests for 4 bits-per-sample TIFF images, both with and without a transparency channel.
- magick/image.c (DescribeImage): Added -verbose support for displaying individual channel depths.

2003-10-06 Lars Ruben Skyum <lars.skyum@stibo.com>

- magick/image.c (SetImageInfo): cleaned up parsing of subimage specification (image.psd[0]). It would fail sometimes due to incorrect reuse of variables. It's a bit strange the code accepts more range syntax-variations than can be stored in ImageInfo.

2003-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (ChannelImage): The OpacityChannel, MatteChannel, and BlackChannel operations set the matte channel to opaque, so set image->matte to False for those operations. (RGBTransformImage): Add an assertion to prevent passing the colorspace argument 'UndefinedColorspace'. (TransformRGBImage): Add an assertion to prevent passing an image with colorspace set to 'UndefinedColorspace'.

2003-10-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/log.c (LogToBlob): Since MagickSeek(file,0,SEEK_END) is used to obtain the Blob size, MagickSeek(file,0,SEEK_SET) must be used to restore the seek position. Thanks to John Cristy for bringing this to our attention.

2003-10-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/bit_stream.h: Added a bit-stream writer function.
- PerlMagick/t/reference/read/input_tim.miff: Reference image was defective.

2003-10-03 Lars Ruben Skyum <lars.skyum@stibo.com>

- magick/image.c, magick/image.h: Updated AddCoderOptions to accept "flag" keys that have no values. They are placed in the coder options map with an empty, zero length string value. Option argument syntax is now: "key1[=[value1]],key2[=[value2]],..."

2003-10-03 Lars Ruben Skyum <lars.skyum@stibo.com>

- magick/command.c: Updated +coder-options option to not clear the entire map of coder options, but accept a list of names to remove from the map. Use option argument "*" to clear the entire map of coder options.
- magick/image.c, magick/image.h: Added function RemoveCoderOptions. Added cast of signed char to unsigned char and int in calls to isspace and isprint.
- magick/utility.c: Added cast of signed char to unsigned char and int in calls to isspace and isprint. Added special handling of +coder-options option in ExpandFilenames function.

2003-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/t/reference/read/input_tim.miff: The TIM read results changed somewhat due to Glenn's ScaleColor5to8 fix.

2003-10-01 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Revised ScaleColor5to8 and ScaleColor6to8 macros to fill in the low bytes.
- coders/bmp.c (ReadBMPImage): scaling of 8-8-8-8-bit images was also slightly incorrect.

2003-09-30 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/bmp.c (ReadBMPImage): scaling of 5-5-5-bit and 5-6-5-bit images was slightly incorrect.

2003-09-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (ReadTIFFImage): When using the generic bit-stream marshaller to read colormapped/gray images, the slight performance improvement from creating a special case for matte images did not justify almost doubling the amount of code. Therefore, the two loops are combined back into one.

2003-09-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (ReadTIFFImage): Fixed reading grayscale TIFFs that have a transparency channel. Now uses a generic bit-stream marshaller to allow reading any grayscale or colormapped TIFF with any bits per sample in the range of 1 to 16.
- magick/bit_stream.h: Added a generic implementation for marshalling from a bit-stream into a quantum. Still needs re-writing for best performance.
- PerlMagick/t/tiff/read.t: Added a test case for reading 8-bit grayscale TIFF with matte. Corrected grayscale 12-bit read signatures. Added 16 color PseudoClass read test. Added 4-bit grayscale read test.

2003-09-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (WriteTIFFImage): Add support for writing DirectClass grayscale images at 4 bits per sample, including those with an opacity channel. This allows writing smaller files (half the size) when the image has 16 (or less) levels of gray. Use "gm convert inimage.tiff -depth 4 outimage.tiff" to quickly create grayscale TIFF file with 16 (or less) levels of gray.

2003-09-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- NEWS: Updated NEWS file with changes since last update.
- index.html: Added a link to the www/AUTHORS.html file, as well as text stating that GraphicsMagick is originally derived from ImageMagick 5.5.2, with a link to the ImageMagick site.
- Makefile.am: Add rules to generate www/AUTHORS.html.
- www/AUTHORS.html: New HTML file based on the AUTHORS file in the source package. GraphicsMagick has many authors.

2003-09-25 William Radcliffe <billr@corbis.com>

- magick/image.c: Updated DescribeImage to cleanup EXIF data display based on work by Cristy in ImageMagick.

2003-09-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (WriteTIFFImage): Add support for writing colormapped TIFF images with 1, 2, & 4 bits per colormap index. This allows writing smaller files.

2003-09-24 Lars Ruben Skyum <lars.skyum@stibo.com>

- coders/ps3.c: Now creates a correct %%BoundingBox for images with resolution stored as pixels per centimeter. Renamed serialize functions. Added comment headers where they were missing. Reformatted code to be in alignment with GraphicsMagick standard formatting.
- magick/map.c: Fixed semaphore double locking problem in MagickMapCloneMap.

2003-09-23 Mike Chiarappa <mikechiarappa@libero.it>

- BCBMagick/readme.txt : Updated compilation instructions.
- BCBMagick/magick/libMagick.bpr : Updated project, now include map.c.
- BCBMagick/lcms/Projects/BCB6/lcms.bpr : Updated project, now include cmscam02.c and cmsvirt.c.
  Much thanks to Alex Dvoretsky for bringing this problem to my attention.

2003-09-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.h (Image): Moved private members to bottom of structure.
  (_ImageInfo): Moved private members to bottom of structure.
- magick/Makefile.am (pkginclude_HEADERS): Don't install semaphore.h.
  (noinst_HEADERS): Distribute map.h and semaphore.h.
- magick/image.h (ImageInfo): Change coder_options member from type 'MagickMap' to type 'void *'.
- coders/png.c: include magick/semaphore.h.
- magick/blob.c: include magick/semaphore.h.
- magick/color.c: include magick/semaphore.h.
- magick/constitute.c: include magick/semaphore.h.
- magick/delegate.c: include magick/semaphore.h.
- magick/log.c: include magick/semaphore.h.
- magick/magic.c: include magick/semaphore.h.
- magick/magick.c: include magick/semaphore.h.
- magick/module.c: include magick/semaphore.h.
- magick/semaphore.c: include magick/semaphore.h.
- magick/stream.c: include magick/semaphore.h.
- magick/tempfile.c: include magick/semaphore.h.
- magick/type.c: include magick/semaphore.h.
- magick/blob.h (_BlobInfo): Changed 'Semaphore *' to 'void *'.
- magick/cache.h (_CacheInfo): Changed 'Semaphore *' to 'void *'.
- magick/image.h (_Image): Changed 'Semaphore *' to 'void *'.
- magick/command.c: Updated each invokation of MagickMapAddEntry() to add an exception argument.
- tests/maptest.c: Updated to pass an exception argument to MagickMapAddEntry.
- magick/image.c (AddCoderOptions): Added exception argument and some more error handling.
- magick/map.c: Added formal documentation for methods. (MagickMapCloneMap): Added exception argument. (MagickMapAddEntry): Added exception argument and status.

2003-09-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/emf.c: Changed NotAnEMFFile to ImproperImageHeader.
- magick/map.h: Changed all size parmeters from type 'unsigned long' to 'size_t'.
- magick/map.c (MagickMapCopyBlob): Add new function to support copying a Blob in a MagickMap.
  (MagickMapDeallocateBlob): Add new function to support deallocating a Blob in MagickMap.

2003-09-23 Lars Ruben Skyum <lars.skyum@stibo.com>

- coders/ps3.c: Fixed handling the case when no -coder-options are provided to the PS3 coder.

2003-09-22 Lars Ruben Skyum <lars.skyum@stibo.com>

- coders/ps3.c: Changed %%Creator version to use MagickLibVersionText, increased precision in HiResBoundingBox, added a coder specific option for rendering bilevel images with the PS imagemask operator indstead of the image operator.
- magick/command.c: Added "-coder-options" command line argument to all relevant command line utilities. Option argument to -coder-options is a list of comma separated key-value pairs that are saved in a MagickMap in ImageInfo for (de-)coders to use. See PS3 coder for an example that checks for: -coder-options "ps:image=imagemask"
- magick/image.c, magick/image.h: Added function AddCoderOptions().
- magick/map.c, magick/map.h: removed MS-DOS line terminators.

2003-09-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- tests/maptest.c (main): Test/demo program for key,value map API.
- magick/map.c, magick/map.h: Implementation of a key,value map API for internal use.

2003-09-19 William Radcliffe <billr@corbis.com>

- lcms/include/icc34.h lcms.h: Added back the icc34.h header and changes to make lcms compile on Win32" icc34.h lcms.h.

2003-09-19 Lars Ruben Skyum <lars.skyum@stibo.com>

- coders/ps3.c: Fixed warnings from Solaris compiler.

2003-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- locale/C.mgk: Eliminated the many "NotA" messages since they may all be considered forms of "ImproperImageHeader". It is useful to provide the origin of such messages in case the wrong coder has been invoked, however, this is expensive to do via the message database since it explodes the number of messages. The exception logging can help here. Once the exception reports include the reporting entity, it will be more clear when the software misbehaves.
- magick/error.h (ThrowReaderException2): Remove since no longer used.
  (ThrowReaderException): Simplified implementation so that ThrowException is not expanded twice.
- magick/error.h (ThrowReaderException3): Remove since never used.
- coders/xtrn.c (ReadXTRNImage): Use ThrowReaderException rather than ThrowReaderException2.
- locale/C.mgk (MissingArgument) Updated to include %s so that the description field appears earlier in the message.
- magick/error.c (DefaultErrorHandler): Added a hack to allow the 'reason' member to include a %s so that it may specify the formating of the message. Care should be taken to not over-use this hack.

2003-09-18 Lars Ruben Skyum <lars.skyum@stibo.com>

- coders/ps3.c: Major update of the PS3 coder. Now ascii85 encodes all binary data. Many printer spoolers don't like the binary data. The coder now creates much smaller files for bilevel, gray, and colormapped images. Compression and image type is now separated so they may be combined independently. Any alpha channel is separated into a separate mask so it's possible to mask bilevel, gray, colormapped, rgb, and CKYK images. You may also mask a JPEG compressed PS file for instance. Clipping masks created from a photoshop clipping path with -clip option is converted to a corresponding postscript clipping path. New functions need comment headers.
- magick/attribute.c: Added TracePSClippingPath for creating a postscript clipping path from a photoshop clipping path.
- magick/compress.c, magick/compress.h: Added write-hook based interface to compression functions. Required for ascii encoding compressed, binary data. The interface between blob write functions, compression functions, and encoding functions could benefit from more of this work.
- magick/image.c: ClipPathImage now stores the name of the clipping path in the mask image filename so that it is remembered and may be used for creating a postscript clipping path for postscript output.
- coders/modules.mgk: Added EPS3 mapping to module PS3.

2003-09-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c: Coalesced various "Missing" error reports into one "MissingArgument" error report in order to reduce the number of messages to be maintained.
- locale/C.mgk: Removed almost all "Missing" messages.
- magick/gm_messages.mc: Added Microsoft message compiler source file to CVS until which time it may be generated automatically during the build.

2003-09-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- locale/Makefile: Added ability to generate gm_messages.mc (for Windows message compiler) as well as adding 'clean' and 'install' targets.
- magick/delegate.h: Visual Studio .NET 2003 doesn't like the chaining of GhostscriptVector members which share a common return type. Splitting the definitions solves this problem.

2003-09-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/deprecate.h (MagickSignedType): Compatibility definition to handle ImageMagick API change. (MagickUnsignedType): Compatibility definition to handle ImageMagick API change. The new names are just as useless as the old names, but at least they are shorter.
- magick/command.c: Linux's sscanf has the terrible bug that it improperly handles pulling out the first floating value from the string "0x1". Instead of retrieving the value 0 and returning 1, it returns 0, probably because it rejects the string as a hex constant. As a result, all options which used sscanf to validate this input are now converted to use IsGeometry().

2003-09-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- ltdl/ltdl.c: Update to libltdl current as of today.
- ltmain.sh: Update to libtool current as of today.
- configure.ac: For HPUX C++ compiler, add -AA to CXXFLAGS rather than CXX.

2003-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Decided that the standards conformance defines create more problems than they solve so they are removed.
  Move the large-file tests to before the libtool configuration since the libtool configuration was causing stdlib.h to be included prior to the large file defines, and this causes header failure with C++ under AIX.
- www/api/types.html: Update description of MonitorHandler.

2003-09-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Set CXX to PTHREAD_CXX if necessary (and warn).
- acinclude.m4 (ACX_PTHREAD): Add check to see if xlC_r should be used for AIX.

2003-09-10 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- magick/render.c: Fixed handling of arc primitive (see IM-5.5.8).

2003-09-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/log.h: It seems that test programs are using GetMagickModule so make it visible by default.
- configure.ac: Use GM_FUNC_MMAP_FILEIO macro to test mmap.
- acinclude.m4 (GM_FUNC_MMAP_FILEIO): New macro to test mmap's capability to do coherent file I/O. The AC_FUNC_MMAP macro was not testing the mmap features that GraphicsMagick uses, and was failing on a number of systems.
- magick/blob.c (BlobMapModeToString): Only include this static function if HAVE_MMAP is defined.
- coders/locale.c (WriteLOCALEImage): Fix FormatString argument type inconsistencies.
- wand/magick_compat.h: Change MagickExport to WandExport.
- coders/jpeg.c, coders/locale.c, coders/meta.c, coders/miff.c, coders/palm.c, coders/pict.c, coders/svg.c, coders/tiff.c, coders/topol.c, magick/cache.c, magick/display.c, magick/image.c, magick/widget.c: Removed unused values, changed storage types, or added explicit casts, in order to reduce the number of "REMARK"s when using the SGI IRIX compiler.
- magick/render.c (DrawClipPath): Fix memory leak of clone_info->clip_path. Problem reported by Vladimir <lvm@integrum.ru>.
  (DestroyDrawInfo): Remove unnecessary checks for non-null prior to invoking MagickFreeMemory. MagickFreeMemory already checks for non-null.
- magick/log.h (GetCurrentFunction): Apparently Visual C++ 6.0 does not support __FUNCTION__. Problem reported by Vladimir <lvm@integrum.ru>.
- wand/magick_compat.c: All functions in magick_compat.c must use WandExport rather than MagickExport. Fix recommended by Vladimir <lvm@integrum.ru>.
- magick/constitute.c (PushImagePixels): number_pixels was always cast to a long during use, so change to store value in a long instead.
  (PopImagePixels): number_pixels was always cast to a long during use, so change to store value in a long instead.

2003-09-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/psd.c: Eliminated warning regarding unused initialized variable.
- magick/log.c: Eliminate type warnings regarding enum assignment.
- coders/locale.c (WriteLOCALEImage): Use UndefinedException rather than 0 in severity_list terminating entry in order to avoid a type conversion warning.
- magick/image.c (SetImageChannelDepth): Depth parameter was being returned rather than status. Oops!
- magick/effect.c (BlurScanline): Due to automatic casting conventions, computation was being done (at least with SGI compiler) as type 'unsigned long' rather than 'long' as it should have been.
- coders/jpeg.c, coders/meta.c, coders/miff.c, coders/msl.c, coders/palm.c, coders/pcd.c, coders/psd.c, coders/svg.c, coders/tiff.c, coders/xcf.c, magick/render.c, : Quench many SGI compiler warnings regarding variables which are initialized but never used.
- magick/xwindow.h: Undef gravity defines so that enumerated type is used instead.

2003-09-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/log.c (LogMagickEvent): Windows system logging functionality is not currently ported to work with Cygwin so disable when compiling under Cygwin.
- magick/log.c (Win32EventlogOutput): Remove spurious comma in enum.
- wand/drawing_wand.h: Remove junk comment marker that I forgot to remove.
- magick/studio.h: Provide prototypes for strlcpy and vsnprintf if the system doesn't provide them in the requested compilation environment.
- configure.ac: Add necessary standards compilance definitions to magick_config.h.
  Check for strlcpy and vsnprintf prototypes.
- Makefile.am (DOCDIRS): www/api/types does not exist anymore.

2003-09-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Move multithread tests prior to libtool configuration in case value of CC is changed. Otherwise libtool gets confused and refuses to run.
- acinclude.m4 (ACX_PTHREAD): If using AIX CC 'xlc' use 'xlc_r' for multithread compiler.
- coders/jpeg.c: Undef HAVE_STDLIB_H before including the jpeg headers or else we get an already defined error/warning.

2003-09-04 Mike Chiarappa <mikechiarappa@libero.it>

- BCBMagick : Updated whole directory tree to achieve correct compilation with Borland C++ Buider 6.0.

2003-09-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (ClipPathImage): Remove MS-DOS line terminations (actually, extra carriage returns) which somehow crept into ClipPathImage.
- locale/C.mgk: Added message for "PNG library is too old".

2003-09-04 Lars Ruben Skyum <lars.skyum@stibo.com>

- magick/transform.c (ProfileImage): Bugfix: conditional compilation based on LCMS being present or not now works as expected. An exception is thrown if LCMS is not present and profile conversion is used.

2003-09-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/txt.c (ReadTXTImage): Fix strlen() pointer type warning.
- magick/image.c (TextureImage): Fixed return with no value warning.
- magick/color.c (GetColorInfoArray): Decided that the const return value was a bad idea. Therefore, the return type has been made non-const.
- magick/magick.c (GetMagickInfoArray): Decided that the const return value was a bad idea. Therefore, the return type has been made non-const.
- tests/constitute.c, tests/rwblob.c, tests/rwfile.c : Define MAGICK_IMPLEMENTATION since these test programs using some internal extensions.
- configure.ac: Test C++ compiler for __func__ support.
- magick/log.h: Added GetCurrentFunction() macro to handle __func__ support determination. Re-wrote GetMagickModule() macro to use GetCurrentFunction(). Changes should allow compilation of Magick++ when the C compiler supports __func__ but the C++ compiler does not.
- configure.ac: Changed from using HAS___func__ define to HAS_C__func__ since this feature may be language sensitive.
- locale/C.mgk: Added missing JNGCompressionNotSupported message.

2003-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/attribute.c (Generate8BIMAttribute): Fix sscanf argument type mis-match.
- coders/ps3.c (ZLIBEncodeImage): Fix mis-classified ZipLibraryIsNotAvailable error report.
- coders/url.c (RegisterURLImage): Only register URL format support if libxml2 is available.
- coders/msl.c (RegisterMSLImage): Only register MSL format support if libxml2 is available.

2003-09-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/histogram.c (WriteHISTOGRAMImage): Remove a useless loop.
- coders/wpg.c: Applied patch from Fojtik Jaroslav to support reading WPGs which use the EXT token.

2003-08-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/color.c (HistogramToFile): Renamed static method 'Histogram' to 'HistogramToFile' to make it more clear what this function does.
  (GetColorHistogram): Added new function to support retrieving a color histogram of the image. A color histogram contains a count of how many times each color occurs in the image.
- magick/image.c (GetImageChannelDepth): Return an 'unsigned int' rather than 'long'.

2003-08-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/Magick.xs: Add support for CopyCyan, CopyMagenta, CopyYellow, and CopyBlack, composition operators.
- magick/composite.c (CompositeImage): Added support for CopyCyanCompositeOp, CopyMagentaCompositeOp, CopyYellowCompositeOp, and CopyBlackCompositeOp, composition operators.

2003-08-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- wand/*: Updated to current ImageMagick Wand API (minus a few unimplemented functions).
- magick/image.c (TextureImage): Add status return because Wand API wants it. Inherit is_grayscale status from texture image.
- magick/fx.c (SolarizeImage): Add status return because Wand API wants it.
- magick/resource.c (SetMagickResourceLimit): Add status return because Wand API wants it.
- magick/draw.c (DrawPeekGraphicContext): Now returns a copy of the current DrawInfo context rather than returning a pointer into the context stack. The user must destroy this copy using DestroyDrawInfo() once it is no longer needed.

2003-08-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- VisualMagick/filters/LIBRARY.txt: This file is necessary to incorporate analyze.c into the static build. Without it the build fails.

2003-08-23 Lars Ruben Skyum <lars.skyum@stibo.com>

- magick/transform.c: ProfileImage updated to handle alpha channels and grayscale images. Also optimized color profiling of color mapped images and fixed a few bugs in profiling of CMYK images.
- magic/locale_c.h: added MagickExport to prototype declaration of GetLocaleMessageFromID in WriteLOCALEImage again. Please update your locale coder.

2003-08-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/wpg.c: Applied patch from Fojtik Jaroslav to use the GetMagicInfo() function to obtain the format of embedded images, and to provide a default WPG palette if the WPG file does not supply a palette.

2003-08-22 William Radcliffe <billr@corbis.com>

- magick\gm_messages.bin locale_c.h transform.c: Fixed missing message problem and added support for new lcms error handler.

2003-08-21 Lars Ruben Skyum <lars.skyum@stibo.com>

- magick/attribute.c, magick/image.c, magick/command.c: Added "clippath" option for clipping named Photoshop clipping paths, increased precision in clipping path knots, added comments, and fixed a few bugs resulting from moving TraceClippingPath function from ImageMagick to GraphicsMagick. Still need to update some of the documentation.
- magick/locale_c.h, magick/studio.h: added MagickExport to declaration of GetLocaleMessageFromID and moved include of magick/locale_c.h after declaration of MagickExport. This fixes a link error in dynamic, DLL version.
- coders/locale.h: added MagickExport to prototype declaration of GetLocaleMessageFromID in WriteLOCALEImage.

2003-08-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/t/subroutines.pl (testRead): Ignore useless TIFF warning so that 12-bit TIFF test passes.
- magick/constitute.c (ReadImage): Ensure that the reported image magic string is that of the user-specified input file rather than a temporary file prepared by an external delegate program.
- magick/command.c (ImportImageCommand): Since DestroyExceptionInfo() now sets the destroyed exception signature to an invalid value, GetExceptionInfo(exception) must be invoked when the intention is to simply purge the exception. This fix resolves an abort when executing 'gm import'.

2003-08-18 William Radcliffe <billr@corbis.com>

- magick\gm_messages.bin locale_c.h transform.c: Updates that add latest enhancments by Lars to color management code in ProfileImage.

2003-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/wpg.c: Incorporated patch from Fojtik Jaroslav to support rendering embedded WMFs.

2003-08-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (SetImageChannelDepth): New function to transform the specified channel so it fits the specified modulus depth.
- magick/blob.c (BlobToImage): Skip calling SetImageInfo() if magick is already set.

2003-08-18 William Radcliffe <billr@corbis.com>

- PerlMagick/Magick.xs: Some fixes to get PerlMagick compiling again due to new ID based error macros.

2003-08-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/error.h (enum): Remove spurious comma.

2003-08-17 William Radcliffe <billr@corbis.com>

- coders\png.c: Had to modify a few exception calls to work with newest macros.

2003-08-17 William Radcliffe <billr@corbis.com>

- coders\locale.c magick/error.h locale.c locale_c.h studio.h: The LOCALEH header file generator now adds an MGK_ prefiix to all the ID defines as part of a fix to support the new error and exception macros cross platform.

2003-08-16 William Radcliffe <billr@corbis.com>

- wand\magick_wand.c pixel_wand.c: The wand api code was totally left out of the large macro conversion below as an oversight.

2003-08-15 William Radcliffe <billr@corbis.com>

- .\coders art.c avi.c avs.c bmp.c caption.c clipboard.c cmyk.c cut.c dcm.c dib.c dps.c dpx.c emf.c ept.c fax.c fits.c fpx.c gif.c gradient.c gray.c hdf.c histogram.c html.c icon.c jbig.c jp2.c jpeg.c label.c locale.c logo.c map.c mat.c matte.c meta.c miff.c mono.c mpc.c mpeg.c msl.c mtv.c mvg.c null.c otb.c palm.c pcd.c pcl.c pcx.c pdb.c pdf.c pict.c pix.c png.c pnm.c preview.c ps.c ps2.c ps3.c psd.c pwp.c rgb.c rla.c rle.c sct.c sfw.c sgi.c stegano.c sun.c svg.c tga.c tiff.c tile.c tim.c topol.c ttf.c txt.c uil.c url.c uyvy.c vicar.c vid.c viff.c wbmp.c wmf.c wpg.c x.c xbm.c xc.c xcf.c xpm.c xtrn.c xwd.c yuv.c .\magick\animate.c annotate.c blob.c cache.c cache_view.c color.c color.h command.c compress.c constitute.c decorate.c delegate.c display.c draw.c effect.c enhance.c error.c error.h fx.c gm_messages.bin image.c list.c locale.c locale_c.h log.c mac.c magic.c magick.c module.c montage.c nt_feature.c paint.c quantize.c registry.c render.c resize.c segment.c semaphore.c shear.c signature.c static.c static.h stream.c studio.h tempfile.h transform.c type.c utility.c widget.c xwindow.c : Changes to support ID based message access and checking all message usages. The main thing that was done was to remove all the quotes around the "tags" used to lookup messages defined in the locale\C.XML file. Macros were added to error.h to allow the code to be compiled for either string based access or binary ID based access. Using binary ID's will cause the code to fail to compile if a message does not exist in C.XML, since no ID will be created for a missing message. This change then allowed us to easily track down all the messages that were "missing" or not being accessed properly. The problems were massive and took many days to resolve. I have left the code compiling in ID mode to keep things in sync going forward and also because it makes message lookup instantaneous. An ID is just an index into and array of char *'s. There is still a lot of cleanup work remaining, but this is a very good start.

2003-08-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/error.c (GetLocaleExceptionMessage): Add check to avoid duplicating severity prefix.
- magick/log.c (LogMagickEvent): Incorporated fix from Bill Radcliffe to enable logging control flags to work properly again.
- NEWS: Updated news.
- magick/blob.c (OpenBlob): Rewind file descriptor so that first read is at zero offset. This fixes reading GIFs via a user-provided file handle.

2003-08-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (GetImageDepth): Extend so that the actual minimum depth required to represent the image is returned. Previously only the values 8, 16, and 32 were returned. This means that a value of one is returned for a monochrome image. Also fixed a bug in that the pixels were incremented while the depth was incremented, resulting in the first image pixels not being properly evaluated for depth. (SetImageDepth): Extend to support converting the image to arbitrary modulus depths.
  (GetImageChannelDepth): New function to obtain the modulus depth for a specified image channel.

2003-08-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/draw.c (MvgAutoWrapPrintf): StreamError reported when DrawError was intended.
- coders/logo.c (ReadLOGOImage): Report FileOpenError rather than BlobError if requested image does not exist.

2003-08-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/cache.c (PersistCache): If HAVE_SYSCONF and _SC_PAGE_SIZE are defined, then assume that sysconf works and don't use legacy getpagesize() function.
- magick/studio.h (_XOPEN_SOURCE): Should be defined as 600 in order to match _POSIX_C_SOURCE=200112L according to the Single UNIX Specification v3. This is necessary for the vsnprintf prototype to be visible.
- magick/attribute.c (ReadByte): Fix compilation warnings due to casting 'unsigned char *' to 'char *' by changing function definition to accept 'unsigned char *' instead.
- magick/error.h (UndefinedException): UndefinedException should be ExceptionType, not ExceptionBaseType.
- magick/magick.c (IsValidFilesystemPath): Eliminate warning about unused function when UseInstalledMagick is defined.
- magick/error.c (ThrowLoggedException): Fix improper parameters passed to LogMagickEvent() when reason is not available.

003-08-07 William Radcliffe <billr@corbis.com>

- magick/log.c, log.h: Added ability to log by either severity or by category of event. Made the defualt on windows to log all fatal errors, errors, and warnings to the event log. This will include anything generated by exceptions currently, but not any normal "informational" logging.

2003-08-07 William Radcliffe <billr@corbis.com>

- magick/log.c, log.h: Translation of event codes to mask vals was not working. Code was left out of last update. It is now in.

2003-08-07 William Radcliffe <billr@corbis.com>

- magick/error.c: Protect against NULL string passed into the message lookup function.

2003-08-07 William Radcliffe <billr@corbis.com>

- magick/locale.c: Switched use of IsAccessible to nonloggging version to prevent recursive problems.

2003-08-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/Makefile.am (noinst_HEADERS): Distribute locale_c.h.
- locale/Makefile: Output locale_c.h.
- utilities/gm.c (main): Fix typo in Unix InitializeMagick invocation.
- configure.ac: Use ACX_PTHREAD pthreads test macro.
- magick/(semaphore.c,spinlock.h,studio.h): Change HasPTHREADS conditional define to HAVE_PTHREAD.
- magick/Makefile.am (noinst_HEADERS): Include spinlock.h in distribution.

2003-08-06 William Radcliffe <billr@corbis.com>

- contrib\win32\ATL7\ImageMagickObject/ImageMagickObject.cpp, ImageMagickObject_.h, ImageMagickObject.def, ImageMagickObject.rc gm.rc: Changes to get things compiling again since all windows specific logging support has been eliminated. The special build script BuildImageMagickObject.cmd now compiles the message file for resource based messages. The result is in gm_messages.bin. The script also generates a special version of gm.exe that uses the COM dll as a regular DLL and links to it. This is the long desired Moby DLL build idea.
- magick/error.c, magick/error.h, magick/log.c, magick/log.h: Upgrade of logging system to take over previous special logging code for windows in nt_base.c. The new logic provides logging of events to the debug api and the windows event log and also provides a generic text file logging method.
- magick/gm_messages.bin, magick/ImageMagick.rc: New compiled message file based on data in locale\C.mgk. RC file modified to include this as a resource.
- magick/locale.c, magick/locale_c.h: locale_c.h is generated by the LOCALEH format of the locale coder. The logic in locale.c uses the tables in the header lookup messages. On windows, all the messages are stored as resources, while on UNIX they remain in a string table.
- locale/C.mgk: Removed duplicate messages and added some new default messages that help to create a complete set of severity strings.
- magick/command.c, magick/magick.c: Get rid compiler warnings.

2003-08-05 William Radcliffe <billr@corbis.com>

- magick/command.c, magick/gm.c: Application level changes to implement the client name - filename changes. The client name can now be anything that the application wants and has nothing to do with the saved filename of the application.
- magick/nt_base.c, magick/nt_base.h, magick/magick.c: Ripped out old nt specific debugging and logging logic. Moving to the standard logging. New and major revisions to InitializeMagick to make the code more maintainable, reliable, and reaable. It should be functionally identical, but implements the new split client name and filename methododology.
- magick/utility.c, magick/utility.h: Added a couple of new routines to support splitting the overloaded use of the client name and client filename.
- coders/xtrn.c: Minor code cleanup

2003-08-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Copyright.txt: Added missing copyright notice which is required due to copying the rlecomp manual page into ImageMagick.
- doc/config_files.imdoc: Started documentation for configuration files.
- magick/xwindow.c (XSignalHandler): Ensure that segment_info is non-null before attempting to use it. Much thanks to John Cristy for bringing this problem to our attention.

2003-08-05 William Radcliffe <billr@corbis.com>

- coders/locale.c: Added several new formats to this coder to generate windows message resource format messages and also to generates a new header file format that will support a table based version of the other magick/locale.c.
- coders/xtrn.c: Minor code cleanup

2003-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Only configure C and C++ libtool tags.
- PerlMagick/t/reference/composite/*.miff: Added some composition test reference images. These reference images will serve as placeholders until better composition tests can be figured out. It is not clear from the documentation what some of the composition operators are supposed to do.

2003-08-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- README.txt: Add documentation regarding using TRIO.
- configure.ac: Test for TRIO library if vsnprintf is not available.
- magick/studio.h: Remap vsnprintf to trio_vsnprintf if TRIO is available.
- coders/topol.c, coders/wmf.c, magick/magick.c, magick/nt_base.c, magick/resource.c: Use traditional C comment form in C source files.

2003-07-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/log.h (LogEventType::AllEvents): Increase the value of AllEvents so that it spans the complete positive range of a signed integer.
- magick/xwindow.c, magick/xwindow.h: Incorporate patch from John Cristy's ImageMagick to eliminate conditional dependence of magick/xwindow.h on <X11/extensions/XShm.h>.
- magick/magick_config_api.h.in: HasSharedMemory define no longer needed.

2003-07-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- www/programming.html: Update Rmagick URL.
- GraphicsMagick.spec.in : Update according to instructions from Troy Edwards.

2003-07-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- GraphicsMagick.spec.in: Replaced GraphicsMagick.spec with GraphicsMagick.spec.in, which is configured to produce GraphicsMagick.spec.
- configure.ac: Configure GraphicsMagick.spec.

2003-07-29 Troy Edwards <vallimar@sexorcisto.net>

- GraphicsMagick.spec: Updated to CVS build. Added the GraphicsMagickWand files to the spec. Only try to remove the unneeded perl package files if we are using PerlMagick.

2003-07-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- GraphicsMagick.spec: Added RPM spec file authored by Troy Edwards <vallimar@sexorcisto.net>.
- NEWS: Add note regarding EXIF fix.
- magick/attribute.c (GenerateEXIFAttribute): Look for the profile name "EXIF" rather than "APP1".

2003-07-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/magick_config_api.h.in: XWindowInfo structure in xwindow.h needs HasSharedMemory define.
- magick/xwindow.c, magick/xwindow.h: Move inclusion of <X11/extensions/shape.h> to xwindow.c.
- coders/dps.c, magick/xwindow.h: Move DPS includes to coders/dps.c
- coders/Makefile.am: Substituted values are also set as make variables, so use variables rather than substitutions.
- magick/log.c (GetLogBlob): MAGICK_HOME needs to take precedence over the client path for the uninstalled build.
- magick/type.c (GetTypeBlob): MAGICK_HOME needs to take precedence over the client path for the uninstalled build.
- magick/blob.c (GetConfigureBlob): MAGICK_HOME needs to take precedence over the client path for the uninstalled build.
- magick/module.c (FindMagickModule): MAGICK_HOME needs to take precedence over the client path for the uninstalled build.

2003-07-24 Lars Ruben Skyum <lars.skyum@stibo.com>

- magick/attribute.c (TraceClippingPath): Improvements to clipping path parsing.

2003-07-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/cache.c: Disable the Windows open() extensions when compiling using Borland C++.
- magick/log.c (LogMagickEvent): Unlock semaphore before returning.
- ltdl/ltdl.h: Updated to latest CVS version.
- ltdl/ltdl.c: Updated to latest CVS version.
- Libtool: Updated to use latest CVS libtool.

2003-07-17 Mike Chiarappa <mikechiarappa@libero.it>

- BCBMagick: Contributed initial Borland C++ Builder 6.0 build environment.

2003-07-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/color.c (GetColorInfoArray): Added a function to access the color definition list as an array. (GetColorList): Added access locks to ensure that list is not re-ordered while it is being traversed.
- www/Magick++/Image.html: Add some more information regarding raw pixel access.

2003-07-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- wand/GraphicsMagickWand.pc.in (Cflags): Remove LFS_CPPFLAGS.
- wand/GraphicsMagickWand-config.in: Remove LFS_CPPFLAGS.
- magick/GraphicsMagick.pc.in (Cflags): Remove LFS_CPPFLAGS.
- magick/GraphicsMagick-config.in: Remove LFS_CPPFLAGS.
- configure.ac: Logic for setting LFS_CPPFLAGS was incomplete.
- coders/topol.c: Updated topol coder contributed by Jaroslav Fojtik. Topol is coming to life!

2003-07-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/nt_base.h: Add a typedef for ssize_t
- magick/deprecate.h: ExtendedSignedIntegralType and ExtendedUnsignedIntegralType are now deprecated types so they are moved to deprecate.h. Existing code which uses these types should continue to work.
- magick/blob.c (MapBlob): Change 'offset' parameter from type off_t to magick_off_t so that it is not LFS dependent.
- magick/cache.c (GetPixelCacheArea): Return magick_off_t. (PersistCache): Change 'offset' parameter to type magick_off_t.
- magick/cache.h (NexusInfo): Change 'length' type from ExtendedSignedIntegralType to magick_off_t. (CacheInfo): Change 'offset' and 'length' types from ExtendedSignedIntegralType to magick_off_t.
- magick/blob.c (BlobToFile): Use ssize_t rather than ExtendedSignedIntegralType for count. (TellBlob): Return magick_off_t rather than ExtendedSignedIntegralType.
- configure.ac: Check for a ssize_t type.
- magick/blob.h (_BlobInfo): Change 'offset' and'size' members from ExtendedSignedIntegralType to magick_off_t.
- magick/blob.c (GetBlobSize): Return magick_off_t rather than ExtendedSignedIntegralType.
  (SeekBlob): Accept and return magick_off_t rather than ExtendedSignedIntegralType.

2003-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/monitor.c (MagickMonitor): Change 'quantum' argument from type ExtendedSignedIntegralType to magick_int64_t. Change 'span' argument from ExtendedUnsignedIntegralType to magick_uint64_t.
- magick/xwindow.c (XMagickMonitor): Change 'quantum' argument from type ExtendedSignedIntegralType to magick_int64_t. Change 'span' argument from ExtendedUnsignedIntegralType to magick_uint64_t.
- magick/widget.c (XMonitorWidget): Change 'quantum' argument from type ExtendedSignedIntegralType to magick_int64_t. Change 'span' argument from ExtendedUnsignedIntegralType to magick_uint64_t.
- magick/studio.h (QuantumTick): Change typecast from ExtendedSignedIntegralType to magick_int64_t.
- magick/resource.c (AcquireMagickResource): Change 'size' argument type from ExtendedSignedIntegralType to magick_int64_t. (LiberateMagickResource): Change 'size' argument type from ExtendedSignedIntegralType to magick_int64_t.
- magick/utility.c (FormatSize): Change 'size' argument type from ExtendedSignedIntegralType to magick_int64_t.
- magick/nt_base.c: Change MagickOffset to magick_off_t.
- magick/studio.h (magick_off_t): Change MagickOffset to magick_off_t.
- coders/topol.c: Insert dummy member into palettRAS structure since Visual C++ doesn't seem to handle empty structures.
- wand/GraphicsMagickWand.pc.in (prefix): Pass LFS CPPFLAGS.
- wand/GraphicsMagickWand-config.in: Pass LFS CPPFLAGS.
- wand/Makefile.am: Fix include path.
- magick/GraphicsMagick.pc.in (prefix): Pass LFS CPPFLAGS.
- magick/magick_config_api.h.in: Pass LFS configuration options until the API is fixed so that it is not LFS sensitive anymore.
- magick/GraphicsMagick-config.in: Pass LFS CPPFLAGS.
- PerlMagick/Makefile.PL.in: Pass LFS CPPFLAGS.
- magick/Makefile.am: Install magick_types.h.
- magick/api.h: Include magick_types.h.
- magick/studio.h: Include magick_types.h rather than integral_types.h.
- VisualMagick/magick/magick_types.h.in: New header file (replacing integral_types.h) to contain CPU and system-dependent primitive typedefs.
- magick/magick_types.h.in: New header file (replacing integral_types.h) to contain CPU and system-dependent primitive typedefs.
- configure.ac: Use AC_SYS_LARGEFILE to test for large file options. Update to determine integral typedefs for current CPU and compiler options. Configure magick_types.h.
- magick/attribute.c (TraceClippingPath): Apply patch from Lars Ruben Skyum which fixes clipping path parsing for paths generated by Adobe software which pre-dates the Photoshop file format specification.

2003-07-08 William Radcliffe <billr@corbis.com>

- magick/semaphore.c: Modified the way the system handles the initialization of Win32 critical sections to use a spin lock on WIn32 to bootstrap the initialization of all other crtical sections. This is not an issue on UNIX since static init is used.
- magick/magic.c module.c magick.c log.c resource.c constitute.c color.c cache.c delegate.c registry.c type.c: Small modifications were made to eliminate the side effect of unlocking semaphores as part of the releasing procedure. This also eliminated the apparent bug of the system double locking certain semaphores. The locked flag should now not be needed, but remains in place for the time being as an added safegaurd.

2003-07-04 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- png.c: added missing #ifdef JNG_SUPPORTED/#endif directives.

2003-07-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- NEWS: Updated news to include fixes and enhancements since the 1.0 release.

2003-07-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/semaphore.c (UnlockSemaphoreInfo): Bugfix, modify the 'locked' flag while still under protection of the lock. This fix is necessary for thread-safety.

2003-07-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/jpeg.c (ReadJPEGImage): Conditionally copy exception.
- wand/Makefile.am (noinst_HEADERS): Need to distribute magick_compat.h.
  (EXTRA_DIST): Need to distribute GraphicsMagickWand-config.1.
- coders/wmf.c (ipa_bmp_draw): Use CopyException. (ipa_device_begin): Use CopyException. (lite_font_map): Use CopyException.
- coders/jpeg.c (ReadJPEGImage): Use CopyException.
- magick/image.c (GetImageException): Use CopyException.
- magick/constitute.c (WriteImages): Use CopyException.
- Makefile.am (DIST_SUBDIRS): wand needs to be included in distribution.

2003-06-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/static.c (RegisterStaticModules): Invoke RegisterTOPOLImage.
- magick/magick.h (MagickInfo): Add member usage comments.
- magick/error.c (CatchException): Restore saved errno from exception->error_number.
  (CopyException): Copy error_number. (DestroyExceptionInfo): Reset error_number to zero. (GetExceptionInfo): Initialize error_number to zero. (ThrowException): Save errno to exception-> error_number. (ThrowLoggedException): Save errno to exception-> error_number.
- magick/error.h (ExceptionInfo): Borrow John Cristy's idea and add a error_number member to ExceptionInfo to save the current errno value. Otherwise CatchException may use some random errno.
- coders/Makefile.am: Build topol.c.
- coders/topol.c: Added initial TOPOL X image coder which is under development by Jaroslav Fojtik. Not working yet.

2003-06-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/pwp.c (ReadPWPImage): Ensure that image is initialized before invoking ThrowReaderException.
- magick/image.c (CloneImage): Use CopyException.
- magick/error.c (CopyException): Add function to support copying ExceptionInfo structures.
- magick/error.h (ExceptionInfo): Replaced recently-added 'whence' member with module, function, and line members in order to keep the information seperate, and match the parameters used by the logging system.
  (ThrowException): Log thrown exceptions.
- magick/error.c (ThrowLoggedException): New function used to throw an exception, while recording and logging the location where the exception is thrown.
- doc/options.imdoc (operation): Document TemporaryFile and Exception events.
- magick/log.c (LogMagickEvent): Support logging ExceptionEvent.
- PerlMagick/Magick.xs: Added "Exception" event type.
- magick/log.h (LogEventType): Added ExceptionEvent.

2003-06-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/error.c (ThrowException): Handle 'whence' member. MagickFreeMemory already checks for null pointer so don't check again.
  (DestroyExceptionInfo): Handle 'whence' member. MagickFreeMemory already checks for null pointer so don't check again.
- magick/error.h (ExceptionInfo): Add a 'whence' member to support the ability to record where the exception is was thrown.
- VisualMagick/installer: Install Wand files.

2003-06-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/blob.c (GetConfigureBlob): GetConfigureBlob should always return a value.
- magick/type.c (GetTypeBlob): GetTypeBlob should always return a value.
- magick/log.c (GetLogBlob): GetLogBlob should always return a value.
- magick/magick.c (GetMagickInfoArray): Fixed array memory allocation and clearing bug. Eliminate warnings.

2003-06-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- VisualMagick/installer/inc/files-configs.isx: For a static build, install the configuration files directly into the application directory.
- VisualMagick/installer/inc/uninstallrun-unregister-com.isx (Filename): Change ImageMagickObject.dll path.
- VisualMagick/installer/inc/run-register-com.isx (Filename): Change ImageMagickObject.dll path.
- VisualMagick/installer/inc/files-com.isx (Source): Install ImageMagickObject.dll and MagickCMD.exe in the application directory alongside gm.exe and the CORE DLLs.
- INSTALL-unix.txt: Add additional information regarding LZW.
- VisualMagick/magick/magick_config.h.in: Add additional notes regarding UNISYS LZW patent.
- PerlMagick/Magick.xs: Applied Dissolve composite operator fix obtained from from John Cristy's ImageMagick which ensures that an unused matte channel is set to Opaque, and uses this knowledge to simplify the math.
- VisualMagick/configure/configure.cpp: The 'wand' library has a linkage dependency on the 'magick' library. Also don't include the magick subdirectory so that headers must be included like <magick/api.h> for safety.
- coders/xtrn.c: Fix magick header inclusion.
- lcms\src\cmserr.c: Fix magick header inclusion.

2003-06-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- doc/options.imdoc: Fix to formatting. Fix spelling of origin.
- PerlMagick/t/bzlib/read.t: Add test for reading BZipped file.
- PerlMagick/t/subroutines.pl (testRead): Skip testing reads of compressed BLOBs because reading compressed BLOBs is not supported yet.
- coders/bmp.c (ReadBMPImage): Only validate the file size value for compressed BMPs.
- VisualMagick/wand, wand: First stab at building the Wand API under Visual C++. Still does not build as a DLL.

2003-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/static.h: Add prototypes for RegisterXTRNImage and UnregisterXTRNImage.
- Makefile.am (DISTDIRS): Don't distribute the 'guide' subdirectory. It is available for checkout from CVS.
- www: Utilities documentation is updated from <imdoc> masters. Formatting could be improved, but the content seems ok.
- doc/environment.imdoc: New file to describe environment variables.
- coders/cut.c (ReadCUTImage): Use MagickAllocateMemory and MagickFreeMemory rather than malloc and free.
- doc/gmdoc2html: Add GraphicsMagick styling to utility web pages.
- doc/Makefile: Additional documentation Makefile enhancements.
- AUTHORS: New file to acknowledge significant contributors to the software. If an author is not listed here, please let us know.
- configure.ac: test -a is not POSIX compliant.

2003-06-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- doc: Source documentation for 'gm' is now available via a 'doc' CVS module. A Makefile is provided which formats the documentation and installs it into the 'www' and 'utilities' subdirectories.

2003-06-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- wand: Added Magick Wand library available via -lGraphicsMagickWand and <wand/wand_api.h>. Use GraphicsMagickWand-config or GraphicsMagickWand.pc to obtain the compilation options required to use the library. Magick Wand is authored by John Cristy. Magick Wand is provided as a separate library from -lGraphicsMagick in order to assure the stability of the core GraphicsMagick library while allowing Magick Wand to to evolve.
- images: Replace existing logo images with cleaner ones.
- www: Update links to point to updated logo images.
- logos: New CVS directory to contain master logos.
- scripts/txt2html: Updated inline logo image link.
- scripts/format_c_api_docs: Updated inline logo image link.
- version.sh: Support versioning all libraries independently.
- coders/meta.c: Prefix include paths for safety.
- magick/image.h: (TransmitType) Removed unused enumeration. (ProfileType) Removed unused enumeration. (QuantumType) Moved enumeration to constitute.h (StorageType) Moved enumeration to constitute.h
- magick/draw.c (DrawPeekGraphicContext): Added function to peek at head of drawing context stack (function added for ImageMagick compatability).
- magick/image.c (CycleColormapImage): Change return type from 'void' to 'unsigned int' so that error status is returned to user. (DescribeImage): Change return type from 'void' to 'unsigned int' so that error status is returned to user.
- magick/list.c (ReplaceImageInList): Incorporated function from John Cristy's ImageMagick to replace current image in the list.
- coders/sgi.c (ReadSGIImage): Applied patch from John Cristy's ImageMagick to save the compression type for SGI images.

2003-06-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/txt.c (WriteTXTImage): Apply patch from John Cristy's ImageMagick to observe image depth while writing pixel colors. This patch is not applied to the 1.0 branch because it represents an output format change which could break a dependent application. (IsTXT): Recognize files written by the TXT coder. (ReadTXTImage): Reject files written by the TXT coder until support for reading these files is implemented. (IsTXT): Ensure that sscanf doesn't read outside of provided data by using a fixed size buffer.

2003-06-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Don't add -lfpx to LIBS while configuring because the C compiler may fail to link with it in later tests.

2003-06-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/Magick.xs: RotateImage is documented to take 'degrees' argument, not 'degree'. SwirlImage is documented to take 'degrees' argument, not 'degree'. SolarizeImage is documented to take a 'threshold' argument, not 'factor'. Wave is documented to take 'amplitude' and 'wavelength' arguments. Don't transform colorspace to RGB when retrieving 'pixel' color value. Release memory acquired to store 'length' pointer. Picked up memory leak fix related to 'SV **reference_vector' variable from John Cristy's ImageMagick.
- configure: Incorporate patch to handle inline better.
- magick/utility.c (GetToken): Adjust code to avoid "end-of-loop code not reached" warning.
- magick/log.c (GetLogBlob): Eliminate warning regarding unreached code.
- magick/command.c (AnimateImageCommand): Eliminate warning regarding unreached code.
  (ConvertImageCommand): Eliminate warning regarding unreached code.
  (ImportImageCommand): Eliminate warning regarding unreached code.
- magick/type.c (GetTypeBlob): Eliminate warning regarding unreached code.
- magick/blob.c (GetConfigureBlob): Eliminate warning regarding unreached code.
- coders/meta.c (super_fgets): Eliminated warnings regarding comparison and return of incompatible pointer types. (super_fgets_w): Eliminated warnings regarding comparison and return of incompatible pointer types.
- magick/command.c (ConvertImageCommand): Eliminate warnings noticed when using Sun's compiler.

2003-06-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- acinclude.m4: Add '#undef inline' in front of C++ tests.
- coders/x.c (RegisterXImage): Only register the X coder if HasX11 is defined.

2003-06-07 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- magick/image.c (GetImageGeometry) Y was a function of width instead of height when processing EastGravity or WestGravity (bug report from Cristy).

2003-06-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/utility.c (LocaleNCompare): Documented that comparison is case-insensitive.
  (LocaleCompare): Documented that comparison is case-insensitive.
- magick/log.c (ParseEvents): LocaleNCompare already does case-insensitive compare so lower-casing is not necessary.
- Magick++: Updates to cause exceptions to be thrown if a bad geometry specification is supplied.

2003-06-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/log.c (ReadConfigureFile): Move event parsing to ParseEvents funtion.
  (SetLogEventMask): Move event parsing to ParseEvents funtion.
- magick/utility.c (GetGeometry): Validate that the geometry string only contains valid characters.
- PerlMagick/t/subroutines.pl (testMontage): It seems that passing an empty set of options to the SetImage method corrupts the image options (surely a PerlMagick bug), so don't invoke SetImage unless there are options to set.

2003-06-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c (VersionCommand): Add build information to version output.
- configure.ac: Save configure/build parameters for later use in version output.

2003-06-04 William Radcliffe <billr@corbis.com>

- coders/meta.c: Added some casts to make things compile better.

2003-06-03 William Radcliffe <billr@corbis.com>

- coders/meta.c: Was broken due to editing mistakes as well as inherent incompatability with MagickReallocMemory macro.

2003-06-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/xpm.c (RegisterXPMImage): Module registration for PICON should have been XPM. Thanks to John Cristy for noticing this bug.
- coders/psd.c (ReadPSDImage): Applied John Cristy's patch to fix a index calculation bug which is evident when QuantumDepth>8.

2003-06-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/meta.c: Eliminated some compiler warnings.
- magick/transform.c (ProfileImage): Eliminated some compiler warnings.
- magick/static.c (RegisterStaticModules): Invoke RegisterXTRNImage if _VISUALC_ is defined.

2003-06-02 William Radcliffe <billr@corbis.com>

- utilities/gm.c: made -format work again but had to add off flag to MagickCommand to maintain backward compatability with previous versions of GM.
- magick/command.c: Added flag to tell MagickCommand whether GM is expected to process metadata requests. The COM object *always* does.
- magick/transform.c: Added error handling, memory leak avoidance and performanc enhancment.

2003-06-01 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- NEWS: Added Bug Fixes item with info about the JNG encoder fix.

2003-06-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- NEWS: Listed significant changes (thus far) in version 1.1.
- version.sh: Updated LIBRARY_CURRENT and LIBRARY_REVISION since some command.c interfaces have changed, and a new interface has been added. The only user of these interfaces should be 'gm' but it always pays to be careful.
- utilities/gm.c (main): Use MagickCommand.
- magick/command.c (MagickCommand): New function to provide API-level command access to the command functions provided by the GM utility with an interface similar to ConvertImageCommand. (AnimateImageCommand): Changed function arguments to match ConvertImageCommand.
  (ConjureImageCommand): Changed function arguments to match ConvertImageCommand.
  (DisplayImageCommand): Changed function arguments to match ConvertImageCommand.
  (ImportImageCommand): Changed function arguments to match ConvertImageCommand.
- libxml/libxml2.def: Remove LIBRARY line since Visual C++ 6.0 doesn't like that the build library doesn't match the name specified by LIBRARY.

2003-05-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/magick.c (GetMagickInfoArray): Resolve thread-safety issue by accessing magick_list directly under the protection of a lock rather than using the pointer returned by GetMagickInfo. Added error handling for insufficient memory.
- coders/tile.c (RegisterTILEImage): Added a usage note in formats listing.
- coders/viff.c (RegisterVIFFImage): Module definition for "XV" was missing.
- coders/ps2.c (RegisterPS2Image): Module definition for "PS2" was missing.
- coders/wmf.c (RegisterWMFImage): Added usage note in formats listing.
- coders/xpm.c (RegisterXPMImage): Hide PM alias for XPM in the formats listing.
- coders/logo.c (RegisterLOGOImage): Hide registrations for GRANITE, LOGO, and NETSCAPE in the formats listing.
- coders/jpeg.c (RegisterJPEGImage): Module definition for "JPEG" was missing.
- coders/html.c (RegisterHTMLImage): Module definition for "HTML" was missing.
- coders/bmp.c (RegisterBMPImage): Module names for "BMP2" and "BMP3" should be "BMP".

2003-05-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/magick.c (GetMagickInfoArray): New function to return MagickInfo array.
  (ListMagickInfo): Updated to use GetMagickInfoArray. (ListModuleMap): New function to list module map to a file.
- utilities/gm.c: Centered the file header and made note of this stupendously significant accomplishment.
- magick/command.c: Added a '-list modulemap' option. Added plural forms of other list options for people who are are not limited to the singular. Also '-list font' and '-list fonts' now work for people who think in terms of fonts rather than type.

2003-05-30 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- MNG encoder failed to set the JNG bit in the simplicity profile.
- MNG encoder failed to write FRAM chunks when all images were JNG.
- JNG encoder wrote the wrong alpha_sample_depth for opaque images.

2003-05-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/magic.c (ReadConfigureFile): Removed bogus embedded magic data and ensured that errors with loading magic.mgk propogate to the top.
- magick/constitute.c (ReadImage): When building delegate error report, handle the case where the filename is empty (such as for "LOGO:").
- coders/png.c (WritePNGImage): Ensure that most severe exception is reported via exception argument. (ReadMNGImage): Ensure that most severe exception is reported via exception argument.
- magick/command.c (ConvertImageCommand): Ensure that most severe exception is reported via exception argument. (CompositeImageList): Ensure that most severe exception is reported via exception argument. (CompositeImageCommand): Ensure that most severe exception is reported via exception argument.
- magick/constitute.c (WriteImages): Ensure that most severe exception is reported via exception argument.
- utilities/gm.c: Centered file header because I didn't like it.
- locale/C.mgk: Removed some defunct messages.
- magick/blob.c (PingBlob): Report useful error message. (BlobToImage): Report sensible error message for null blob.
- magick/utility.c (AcquireString): Change UnableToAquireString to UnableToAllocateString.
- coders/xwd.c (ReadXWDImage): Report CorruptImage rather than CorruptXWDImage.
- coders/xpm.c (ReadXPMImage): Report CorruptImage rather than CorruptXPMImage.
- coders/xcf.c (load_level): Report CorruptImage rather than CorruptXCFImage.
- coders/wbmp.c (ReadWBMPImage): Report CorruptImage rather than CorruptWBMPImage.
- coders/pcd.c: Report CorruptImage rather than CorruptPCDImage.
- coders/otb.c (ReadOTBImage): Report CorruptImage rather than CorruptOTBImage.
- magick/constitute.c (ReadInlineImage): Report CorruptImage rather than CorruptInlineImage.
- coders/pdb.c (ReadPDBImage): Incorporated undocumented fix from ImageMagick which obtains the image depth from the image depth attribute, and increases the packet memory allocation. Report CorruptImage rather than CorruptPDBImageFile.

2003-05-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- VisualMagick/bin/modules.mgk: Add mapping from SVGZ to SVG.
- coders/modules.mgk: Add mapping from SVGZ to SVG.
- coders/svg.c (RegisterSVGImage): Add registration for SVGZ format.
- PerlMagick/t/zlib/read.t: Added test to check reading a file with .gz extension. The blob portion of the test currently fails.
- coders/wpg.c (ReadWPGImage): Fix reading WPGs with embedded Postscript. Ensure that scene numbers are sane. Bugs remain.
- magick/blob.c (OpenBlob): Recognize the .svgz extension as a gzipped format. Not required in order to read .svgz files since the blob file magic detects gzip files.
- magick/command.c (MontageImageCommand): Wrong exception macro was being invoked. Steps have been taken to ensure that this doesn't happen again.
  (ImportUsage): Fix spelling of 'type'.
- magick/magick.c (DestroyMagick): Decided that initialization state should be tracked via an enum so that DestroyMagick will take effect even if InitializeMagick has never been called.

2003-05-27 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/png.c: png.c would dump core when writing a grayscale image in png24 or png32 format.

2003-05-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/ept.c (WriteEPTImage): Fixed writing EPT preview image and added logging.
- magick/enhance.c (NegateImage): If image is in CMYK colorspace, then negate the `K' channel as well.
- PerlMagick/Magick.xs: Fix spelling of 'elevation' argument to Shade method.
- magick/image.h (ImageInfo): Added more documenting comments.
- magick/image.c (CloneImage): Don't clone huffman ascii85 encoding support structure since it is not useful outside of the current image context. Cloning a structure via pointer assignment causes a memory leak.

2003-05-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/shear.c: Incorporate math tweaks obtained from ImageMagick which are purported to improve accuracy when rotating and shearing using small angles. Also avoid unneccessarily transforming CMYK images into RGB images.
- magick/paint.c (ColorFloodfillImage): Fix hang while floodfilling using a pattern image with color similar to the border color.
- coders/modules.mgk: Add missing mappings for PNG8, PNG24, and PNG32.
- VisualMagick/bin/modules.mgk: Add missing mappings for PNG8, PNG24, and PNG32.

2003-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/log.c (GetLogBlob): Return an error if log.mgk can not be accessed.
- locale/C.mgk: Added UnableToAccessLogFile.
- magick/blob.c (GetConfigureBlob): Only return result of NTResourceToBlob if it is non-NULL.
- magick/type.c (GetTypeBlob): Search $MAGICK_HOME for type.mgk. Only return result of NTResourceToBlob if it is non-NULL.
- magick/magick.c (GetMagickInfo): Return an error if GetModuleInfo reports an error.
- magick/module.c (GetModuleInfo): Return an error if modules.txt fails to load.
- utility.c (SubstituteString): Fixed a bug which was introduced while updating the code to use the memory allocation macros.

2003-05-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/GraphicsMagick-config.in (usage): Added example usage to the help output.
- magick/magick.c (InitializeMagick): Added a static flag to ensure that the Magick library is initialized only one time. (DestroyMagick): Ensure that Magick library resources are only destroyed if it has previously been initialized.
- magick/nt_base.c (DllMain): Fix contributed by Achim Domma. For a DLL build, update PATH during Magick DLL initialization to include the directory where the Magick core DLL resides. This allows the loadable modules to find the core DLLs, even if the core DLLs are not already in the PATH.
- magick/image.c (TextureImage): Incorporate new implementation authored by John Cristy of ImageMagick Studio. This implementation is a full 7X (run-time) or 14X (user-time) faster than the original ImageMagick implementation, and is about 2X faster than the speeded-up version I commited on the 19th.

2003-05-20 William Radcliffe <billr@corbis.com>

- VisualMagick\configure : Fixed bug with add on (plug-ins) not building automatically in DLL mode.

2003-05-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (TextureImage): Creation of tiled image textures is speeded up by 3.7X.
- coders/tile.c (ReadTILEImage): Use TextureImage.
- VisualMagick/bin/modules.mgk: Map "PATTERN" to "LOGO".
- coders/modules.mgk: Map "PATTERN" to "LOGO".
- coders/logo.c (ReadLOGOImage): Add "PATTERN" tiling support in order to be compatible with ImageMagick.
- magick/image.c (SetImageInfo): Map "MAGICK" magick to "IMAGE" in order to be compatible with ImageMagick.

2003-05-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- www/Copyright.html: Try to fix formatting of XFig entry.
- www/windows.html: Update file names for 1.0.1 release.
- index.html: Mention 1.0.1 release as latest release.
- magick/magick_config_api.h.in: Add define for HasX11 so that it is possible to use functions in the installed xwindow.h
- */*.c: Updated to use MagickAllocateMemory macro.

2003-05-17 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/png.c: stifled compiler warnings about uninitialized chunk and blob variables.

2003-05-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/utility.h (MagickAllocateMemory): New macro to allocate memory.
  (MagickFreeMemory): New macro to free memory. (MagickReallocMemory): New macro to reallocate memory.
- */*.c,*/*.h: Updated to use MagickFreeMemory and MagickReallocMemory. Eliminated warnings when compiling with GCC 3.3 using -Wall.
- images: The logo image was determined to have a copyright problem so replace with blank image until a replacement is available.

2003-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- VisualMagick/magick/magick_config.h.in (HAVE_SYS_TYPES_H): Moved this define back from nt_base.h since removing it was causing some problems for Magick++.

2003-05-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c: (SetMagickInfo): Don't mask failure to read magic.mgk.
- magick/constitute.c (ReadImage): Don't overwrite specific exception info.
- magick/nt_base.c (NTResourceToBlob): Add logging similar to that used in IsAccessible() in order to make operation more clear.
- magick/module.c (FindMagickModule): Removed extraneous "Searching for module file" log event. (GetModuleBlob): Under Windows, don't clear or overwrite an existing exception.
- magick/nt_base.h: Imported some obscure defines from magick\magick_config.h.
- VisualMagick/magick/magick_config.h.in: Improved description text and formatting. Moved some obscure defines to magick/nt_base.h.
- locale/C.mgk: Added a "RegistryKeyLookupFailed" error message.
- magick/type.c (GetTypeBlob): Report registry key lookup failures. Also ensure correct return value when an error is reported.
- magick/log.c (GetLogBlob): Report registry key lookup failures.
- magick/delegate.c (ReadConfigureFile): Report registry key lookup failures.
- magick/blob.c (GetConfigureBlob): Report registry key lookup failures. Also ensure correct return value when an error is reported.
- magick/module.c (FindMagickModule): Report registry key lookup failures. Also ensure correct return value when an error is reported.
- magick/nt_base.c (NTRegistryKeyLookup): Simplify base key lookup code, and improve coding style.
- coders/logo.c, Copyright.txt, www/Copyright.html: Acknowledge and respect the XFig copyright.
- VisualMagick/installer/inc/files-documentation.isx: QuickStart.txt is no longer distributed so it is removed.

2003-05-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.h (RoundToQuantum): New macro to round positive double to Quantum.
- magick/xwindow.c, magick/xwindow.h, magick/studio.h: Use FreeBSD portability fixes from FreeBSD ports collection.
- configure.ac: Test for <machine/param.h> as used by some *BSD systems.
- QuickStart.txt, www/QuickStart.html: Don't distribute QuickStart.txt or www/QuickStart.html since the content doesn't currently apply to GraphicsMagick.

2003-05-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- README.txt: Added text regarding where to obtain dcraw, a simple but useful decoder for the proprietary raw file formats produced by digital cameras (58 supported cameras!).
- configure.ac: Added support for finding dcraw.
- VisualMagick/bin/delegates.mgk: Added support for dcraw.
- coders/delegates.mgk.in: Added support for dcraw.
- version.sh (PACKAGE_RELEASE_DATE): Extract the most recent update date from the ChangeLog file using awk.

2003-05-12 William Radcliffe <billr@corbis.com>

- modules.mgk, magic.mgk : Sync up both of these for UNIX as well as VisualMagick builds. Includes changes for the meta.c code.

2003-05-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- www/formats.html: Documented embedded gray intensity images.
- coders/logo.c: Added the embedded dithered gray intensity images gray0, gray5, ..., through gray100 to support bilevel filling and painting with an intensity resolution of 5%.
- www/formats.html: Added description of images available via "IMAGE:" format tag, as well as providing a tiled preview.
- coders/logo.c: Renamed "transparent" image to "checkerboard" since it is a better description. Added a set of tiny bilevel images (accessed via IMAGE:) for use when tiling, filling, or for use as a texture image. The complete set of image names available via the IMAGE: coder are now BRICKS, CIRCLES, CROSSHATCH, CROSSHATCH30, CROSSHATCH45, FISHSCALES, GRANITE, HEXAGONS, HORIZONTAL, HORIZONTALSAW, HS_BDIAGONAL, HS_CROSS, HS_DIAGCROSS, HS_FDIAGONAL, HS_HORIZONTAL, HS_VERTICAL, LEFT30, LEFT45, LEFTSHINGLE, LOGO, NETSCAPE, OCTAGONS, RIGHT30, RIGHT45, RIGHTSHINGLE, ROSE, SMALLFISHSCALES, CHECKERBOARD, VERTICAL, VERTICALBRICKS, VERTICALLEFTSHINGLE, VERTICALRIGHTSHINGLE, & VERTICALSAW. The HS_* variants are similar to the standard pattern images provided with the Windows GDI.
- coders/msl.c (MSLStartElement): Don't reset gravity if the user provides an x,y coordinate. Passing coodinates was loosing the gravity setting.

2003-05-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/modules.mgk: Support the IMAGE: format via the LOGO module.
- win2k/IMDisplay/IMDisplayView.cpp (DoDisplayImage): Transparent tile is created by reading "tile:image:transparent".
- coders/logo.c (ReadLOGOImage): Add IMAGE: format to front for embedded images so that adding new images doesn't proliferate coder registrations. Legacy logo magick names (GRANITE, LOGO, NETSCAPE, and ROSE) are still supported, but they are also available in the IMAGE file space (e.g. IMAGE:ROSE).

2003-05-09 William Radcliffe <billr@corbis.com>

- VisualMagick\configure : Further refinements that support both the new "big" library and the normal dynamic DLL buidling styles.

2003-05-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/logo.c (ReadLOGOImage): Added a "TRANSPARENT" pattern image which can be tiled to form the background of transparent images.
- win32/IMDisplay/IMDisplayView.cpp: When displaying images which include an opacity channel, use a checker-board pattern as the image background so non-opaque pixels become evident.

2003-05-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/meta.c : Add or fix commenting of DebugString so that module does not require Windows.
- lcms: Updated to release 1.10.

2003-05-07 William Radcliffe <billr@corbis.com>

- VisualMagick\bin : Brought the MGK files back into sync with the rest of the package and added types for meta.c.
- VisualMagick\bin\win32\ATL : removed config files in order to prevent very old ATL project from being picked up in the config

2003-05-06 William Radcliffe <billr@corbis.com>

- VisualMagick\lcms\LIBRARY.txt : a define to prevent popup message box behaviour.
- VisualMagick\configure\ : New feature - -t consolidates all the coders into on library for the static build in order to make the build process tolerable.
- coders\xtrn.c : new support for BSTR - wdie character data
- coders\svg.c : put back logic that allows the -size parameter to control the pixel dimensions of the output image.
- coders\meta.c : added support for wide character parsing of iptc and 8BIM formats.

2003-05-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh : Update to reflect development status.

2003-05-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- GraphicsMagick 1.0 Released.
- version.sh (LIBRARY_REVISION): Updated for the 1.0 release.
- magick/studio.h: Add fix to avoid problems caused by zlib under AIX.
- magick/cache.h: Parameterized prototypes to make them easier to follow.
- filters/analyze.c: Replace C++ comments with C comments.
- magick/command.c: For the composite, convert, identify, mogrify, and montage commands, make sure a usage error is returned if a usage message is printed. This is useful for ImageMagickObject users who won't see the usage message if stdio is not supported.
- locale/C.mgk: Added "UsageError" error. Added missing closure to <Corrupt> tag which caused most/many message lookups to fail.
- magick/nt_base.h: Fixed a compile problem caused by masking internals in delegate.h
- magick/ImageMagick.rc: Added missing .mgk files.

2003-05-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/nt_base.c (lt_dlerror): Defining lt_dlerror to be NTGetLastError was not a correct implementation since the interface is defined to return a const pointer to a string, but NTGetLastError returns an allocated string, causing a memory leak if NTGetLastError is used in the place of lt_dlerror. A new lt_dlerror function is added to fix this. (lt_dlsetsearchpath): lt_dlsetsearchpath should return an int and accept a const char *.
  (lt_dlsym): lt_dlsym is supposed to take a const char *.
- magick/nt_base.h: lt_dlclose should return an 'int'.
- magick/nt_base.c (lt_dlclose): Return status from lt_dlclose.
- magick/module.c (lt_dlclose): lt_dlclose is supposed to return an 'int', not 'void'. A return value of zero indicates success.
- VisualMagick/tests/run_constitute.bat: Add batch script to run constitute tests.
- magick/module.c: Added a ltdl_initialized static flag to track if libltdl has been initialized by lt_dlinit(). (TagToFunctionName): Use a stack buffer for the string rather than allocating heap data.
  (UnregisterModule): Report errors via exception info as the interface suggests.
  (UnloadModule): Report errors via exception info as the interface suggests.
  (DestroyModuleInfo): Only invoke lt_dlexit() if lt_dlinit() has previously been invoked.
- locale/C.mgk: Added FailedToCloseModule module error.
- magick/module.c (UnloadModule): Report exception via exception parameter rather than simply printing out an error message and exiting.
- magick/Makefile.am (noinst_HEADERS): integral_types.h had to be listed *somewhere* in order to make it into the distribution.
- Magick++/lib/Magick++/Image.h: InitializeMagick must be DLL exported.

2003-05-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Makefile.am (magick-version): Perform version.isx substitutions via Makefile.am rather than configure.
- magick/magick_config_api.h.in: Added template header for the installed magick_config.h.
- magick/magick.c (InitializeMagick): Improved the signal handling and registration method. Signal handlers are only registered for a signal if the current signal handling disposition for that signal is set to the default (SIG_DFL). When a signal is caught, DestroyMagick is invoked, the handling for the signal is set back to SIG_DFL, and then the signal is re-raised to trigger the default handler for that signal. This causes the process to behave as closely to the default as possible (e.g. generating a core file) while ensuring that DestroyMagick is executed. This also ensures that signal handlers registered by API users are not overridden by invoking InitializeMagick.
- configure.ac: Added tests for sigemptyset and sigaction.
  Add a check for the return type of signal handlers. Test for the 'raise' function.
- www/formats.html: Add an entry for CUR, Microsoft Cursor Icon format.

2003-05-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/semaphore.c (struct SemaphoreInfo): Added `locked' and `thread_id' members. These are used to record if the semaphore is locked, and to validate the thread ID of the unlocker.
- www/links.html: Added link to Nathan Day's MagickDocs "ImageMagick and GraphicsMagick documentation project" site.
  Added a link to an on-line article regarding the PHP front-end to ImageMagick.
- coders/icon.c (ReadIconImage): Add support for Windows .CUR format based on advice from Jean Piquemal.
- magick/image.c (SetImageInfo): Added missing CloseBlob in error path for failure to allocate temporary file.
- coders/pcx.c (ReadPCXImage): Added support for reading uncompressed PCX images based on code from Jean Piquemal.

2003-05-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/effect.c (AddNoiseImage): For gray images, wrong pointer was being used to evaluate intensity, leading to a black image with noise.
- magick/image.c (ChannelImage): Return the channel image in RGBColorspace. Also properly support extracting the opacity channel for images which are not CMYK.

2003-04-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/Makefile.am (install-data-local): Install magick_config_api.h rather than magick_config.h.
- magick/api.h: Removed inclusion of integral_types.h from magick/api.h. It is included by magick/studio.h.
- magick/delegate.h: Mapped out a block of private implementation code.
- configure.ac: Perform substitutions on magick_config_api.h.
- magick/magick_config_api.h.in: New header file template to use for installed magick_config.h.
- magick/studio.h (MAGICK_IMPLEMENTATION): Added the define MAGICK_IMPLEMENTATION used to enable private types, includes, and defines in the headers. This supports hiding implementation stuff that API users shouldn't see in the headers.
- utilities/Makefile.am (check): Cleaned up the utilities test/demo a bit as well as using the undocumented "tmp:" prefix to cause GraphicsMagick to remove temporary input files once they have been read. This leaves just the final output file "demo.miff" when the test completes.
- coders/jpeg.c (WriteJPEGImage): If the image resolution is overwritten with 72DPI, make sure that the resolution units are set to PixelsPerInchResolution.
- coders/jpeg.c (WriteJPEGImage): Don't overwrite the image resolution if it is valid.
- magick/command.c (MogrifyImageCommand): Added -resample option to match documentation.
- VisualMagick/configure: Added rpcrt4.lib to project settings for Visual C++ 6.0 so that configure links. The code which needs these interfaces is to support Visual C++ 7.0 XML-style project files.

2003-04-30 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- utilities/Makefile.am (check) Change % to %% in -label parameter.
- www/gm.html, utilities/gm.1, etc. Documented use of %% to convey the % sign in -format, -comment, -label strings.

2003-04-30 William Radcliffe <billr@corbis.com>

- magick/command.c: Changes from 2003-04-19 to free the arg list when it was still pointed to by the option arg and accessed on an exception. This caused gm to crash on any erroneous command line argument.

2003-04-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- www/windows.html: Updated to match current installer.
- VisualMagick/installer/inc/tasks-install-devel.isx (Name): Added an installation checkbox so the user can select to install development headers and libraries for C & C++.
- VisualMagick/installer/inc/files-perlmagick.isx (Source): Only install PerlMagick PPD files if the user selects to install PerlMagick.
- VisualMagick/installer/inc/files-com.isx (Source): Only install ImageMagickObject files if the user selects to install ImageMagickObject.
- magick/version.h.in: Added some documentation for the functioning of MagickLibVersion and MagickLibVersionNumber.
- configure.ac: Perform substutions to create VisualMagick/installer/inc/version.isx from VisualMagick/installer/inc/version.isx.in. This allows Windows versioning info to be updated from info in version.sh.
- Makefile.am (magick-version): For a VPATH build, update VisualMagick/installer/inc/version.isx in the source directory if it is out of date.

2003-04-28 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- magick/cache.c: CloneImagePixels(): applied Cristy's bugfix from IM-5.5.7.

2003-04-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- www/api.html: The demo program on the ImageMagick API page is usually intended to be an exercise for the reader. It rarely compiles or works. Sure enough the demo code was not even close to compiling, didn't run, and did something totally different than described. This is not a good way to treat new users. Now the demo program compiles and runs, and its description is correct.
- www/magick.css, www/smile.c: Remove "Pair" advertisement which was discovered appended at the end of these files.
- coders/jpeg.c (ReadJPEGImage): Check for failure of AllocateImage. Close blob prior to error return.
- configure.ac: Perform substitutions on magick/version.h
- magick/version.h.in: New file to provide base for configured magick/version.h
- version.sh (PACKAGE_RELEASE_DATE): Support setting a package release date.
- configure.ac: Perform substitutions on PerlMagick/Magick.pm.in to create PerlMagick/Magick.pm.in.
- PerlMagick/Magick.pm.in: @PACKAGE_VERSION@ is substituted while configuring PerlMagick/Magick.pm.
- magick/magic.mgk, VisualMagick/bin/magic.mgk: Removed risky entry for PICT which has been demonstrated to lead to a false match in the real-world.
- coders/pict.c (ReadPICTImage): Ensure that PICT decoder don't loop forever with an EOF condition if none of the PICT op-codes encountered result in a condition which terminates the input loop. If EOF is dectected while in the input loop a "corrupt image" "unexpected end of file" error is reported.
- VisualMagick/installer: Updated installer.

2003-04-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/magick.c, magick/blob.c, magick/studio.h: Added Compilation fixes recommended by Harold Bien for for Borland C++.
- www/contribute.html: Added text regarding contributing to GraphicsMagick.
- www/api/types.html: Documentation for GraphicsMagick API types moved from www/api/types/*.html into this one file. Types documentation is still very much under development.
- README.txt: Added note regarding the download location for free Windows fonts which are kindly made available by Microsoft.
- VisualMagick/installer/gm-dynamic-full-*.iss: Install nt_base.h and nt_feature.h.

2003-04-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- www/windows.html: Updated for GraphicsMagick 1.0 and to link to ImageMagickObject.html.
- www/programming.html: Added link to ImageMagickObject.html.
- www/ImageMagickObject.html: New file to provide some documentation for ImageMagickObject.
- www: Found and fixed broken URL links.

2003-04-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- FlashPIX: Applied patches from FreeBSD. Bumped package version to version to 1.2.0.8.
- www/api.html: Updated to reflect GraphicsMagick
- www/*.html: Updated with format_c_api_docs script.
- Makefile.am (format_c_api_docs): Add a target to update the C API documentation.
- scripts/format_c_api_docs: Add script which extracts and formats the C API documentation into HTML files in the www/api subdirectory.

2003-04-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- version.sh (PACKAGE_VERSION): Update release version ID.
- magick/version.h (MagickReleaseDate): Update release date.
- magick/constitute.c (ConstituteImage): Fixed problems with reading intensity (gray) pixel arrays.
- magick/image.c (GrayscalePseudoClassImage): Use ScaleQuantumToIndex rather than ScaleQuantumToMap.
- magick/constitute.c (ConstituteImage): Use ScaleQuantumToIndex macro to scale integral intensity values to colormap range.
- magick/image.h (ScaleQuantumToIndex): New macro to scale a quantum to the maximum range of a colormap index. Useful when writing to PsuedoClass grayscale images.
- VisualMagick/tests/run_constitute.bat: Batch script to run constitute tests.
- VisualMagick/installer/*.iss: Updated for Beta1 release.

2003-04-22 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- utilities/Makefile.am (check) fixed typos (RM -> RMDelegate and removed stray "gm"), added -random-threshold, ordered-dither.
- magick/effect.c: Random-threshold was not treating non-gray PseudoColor images correctly.

2003-04-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- utilities/Makefile.am (check): Added code to put logo on demo output.
- magick/command.c (MontageImageCommand): Pass exception rather than &image->exception because image may be null, and it is pointless to store the exception where it will not be reported to the user anyway.
- utilities/Makefile.am (check): Ported Glenn Randers-Pehrson's utilities demo script into the Makefile to serve as a check target.
  (check): Add definition to find Generic.ttf.
- locale/C.mgk: Fixed syntax error in <Option><FatalError> section.
- www/development.html: New file to describe development process.
- index.html, www/*.html: Added link to development.html and improved formatting a bit.

2003-04-21 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Fixed bug with compiling png.c with libpng versions older than libpng-0.95.

2003-04-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- www/programming.html: Added links to Delphi and Scheme programming interfaces.
- configure.ac : Removed outdated test for jp2conf.h.

2003-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c: Add argument expansion and deallocation code to command functions which lacked this functionality. Replace calls to Exit with a return to the invoking function.
- utilities/gm.c: Expect each subcommand to expand and deallocate its own argument list. Treat subcommands more similarly.
- magick/magick.c (InitializeMagick): Seed the random number generator.
- magick/utility.c (ExpandFilenames): Handle tilde expansion properly. Handle relative glob specifications. Skip over "*" argument to +profile properly. Don't expand VID: specifications since the VID: coder will execute ExpandFilenames() later. Apply format specifier prefix to globbed file names. Fix double frees and rationalize memory management by always copying to a new vector.

2003-04-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/magick.c (InitializeMagick): Decided to move clean-up signal-handler registration from gm.c to magick.c in order to ensure that resources are cleaned up for all library users. This means that if a user program wants to do something special for signals registered to be caught by InitializeMagick (SIGHUP, SIGINT, SIGQUIT, SIGABRT, SIGTERM, SIGXCPU, & SIGXFSZ) then the user program should register its own signal handlers after invoking InitializeMagick. The user is then responsible for making sure that DestroyMagick is invoked if an unexpected signal is caught.
- tests/Makefile.am (check-constitute): Added constitute tests.
- magick/constitute.c: New test program to ensure that ConstituteImage and DispatchImage are working correctly.

2003-04-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- www/download.html: Added links to directories at ftp.graphicsmagick.org.
- index.html: Add notice regarding 1.0 Beta0 availability.
- www/cvs.html: Updated CVS checkout information to include the GraphicsMagick-1_0 branch.
- coders/psd.c (ReadPSDImage): Applied patch (SourceForge patch ID 722849) from Derry Bryson to fix a memory leak. An image was being leaked.
- magick/constitute.c (DispatchImage): Applied patch (SourceForge patch ID 722655) from Derry Bryson to correctly use the switch_map array rather than the map array. Without this patch, DispatchImage does not work at all.
- GraphicsMagick 1.0.0-beta0 release.
- version.sh: Updated for beta0 release.
- *.c magick/*.h: Update header inclusion to include "magick/" prefix in order to ensure that there is no confusion with headers from another package.

2003-04-16 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- magick/effect.c: 4x4 ordered dither threshold was incorrect.

2003-04-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/resource.c (InitializeMagickResources): Added the ability to obtain the amount of physical memory by executing an external command.
- configure.ac: Check for getpagesize(). (MAGICK_PHYSICAL_MEMORY_COMMAND): Added a test for an external command which (quickly) returns the amount of physical memory installed on the machine. Currently only activated for FreeBSD. (MAGICK_PHYSICAL_MEMORY_COMMAND): Use sysctl to determine total physical memory for Darwin.
- magick/delegate.c (ListDelegateInfo): If COLUMNS environment variable is set, then use it to obtain the screen width. Some shells dynamically update COLUMNS, but COLUMNS may need to be explicitly exported in order for it to be seen by subordinate programs (such as gm).
- magick/effect.c (AddNoiseImage): Use IsGrayImage() to check if the image is gray. Add missing columns loop for intensity case (oops!).
- magick/command.c (DisplayImageCommand): Fix -dispose option processing bug reported by Felix Heimbrecht.
- coders/fpx.c: Check status from FPX_InitSystem().

2003-04-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Define PERLMAINCC to be the C compiler if there are no C++ dependencies, or the C++ compiler if there are C++ dependencies.
- PerlMagick/Makefile.PL.in: Use PERLMAINCC to compile and link perlmain.c. This allows using the C++ compiler to link, which is useful when the build depends on C++ libraries like libfpx.
- ltmain.sh: Updated to libtool 1.5 release.
- Makefile.am ($(PERLMAGICK)/$(PERLSTATICNAME)): Add rules to make sure that static PerlMagick is linked against the current GraphicsMagick library.
- coders/miff.c (ReadMIFFImage): Properly scale colormap entries.
- magick/image.c (TransformRGBImage): Eliminate 32-bit integer overflow condition for Q:32 build while transforming CMYK pixels.

2003-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/t/ttf/read.t: Updated signatures and reference image for FreeType 2.1.4.
- (PerlMagick/t/write.t, PerlMagick/t/montage.t, PerlMagick/t/rad/read.t, PerlMagick/t/rad/write.t): Fix signatures which were thrown off by previous change to how signatures are specified to functions in subroutines.pl.
- PerlMagick/t/cgm/read.t: Updated to use reference image.
- PerlMagick/Makefile.PL.in: Perform substitutions on generated Makefile to ensure that the proper -lGraphicsMagick is used for a static build.
- ttf: Updated to FreeType 2.1.4. Now stored in CVS as delegates/freetype2 rather than delegates/ttf so be sure to re-checkout the ttf directory so that the correct files are used.
- wmf/incude/libwmf/api.h: Updating FreeType caused a problem since it introduced a copy of zlib and api.h included zlib.h. Fixed problem by adding a typedef for gzFile and not including zlib.h.
- utilities/gm.c: Fixed minor compilation problem under Windows caused by a typo in the signal handler registration code.

2003-04-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Makefile.am: When building a static PerlMagick, build PerlMagick as part of the 'all' target and don't do a 'make clean' of PerlMagick at install time.
- configure.ac (LIB_DPS): Add check to see if -lXt is required by -ldps. XFree86 -ldps requires -lXt.
- FlashPIX: FlashPIX library now compiles under FreeBSD 5.0.
- magick/deprecate.c (ValidateColormapIndex): Remove non-interface deprecated function.
- magick/tempfile.c (AcquireTemporaryFileDescriptor): Priortize use of mkstemp() over tempname() since *BSD compilers whine about tempname() (although we do use tempname() safely).
- magick/color.c (ConstrainColormapIndex): Removed function since it is no longer used.
- magick/utility.c (TemporaryFilename): Removed TemporaryFilename utility function since it is no longer used and it makes *BSD compilers complain.
- magick/studio.h: Don't define _ISOC99_SOURCE, _POSIX_C_SOURCE, or _XOPEN_SOURCE when compiling under FreeBSD since this maps out a 'ushort' definition required by /usr/include/sys/ipc.h.

2003-04-11 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/png.c: Some grayscale PNG images and the JNG alpha channel were decoded improperly at Q:32.
- magick/constitute.c (PopImagePixels): Changed many instances of (Quantum) typecast to (unsigned char).

2003-04-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/t/tiff/read.t: Added signature for 12-bit TIFF test and a Q:32 build.
- PerlMagick/t/subroutines.pl: Extended routines which are signature based to accept signatures for Q:32 as well.
- PerlMagick/t/wmf/read.t: Relax error values slightly to pass at Q:32.
- coders/miff.c (PushImageRLEPixels): Fix reading RLE MIFF at Q:32. A fragment of old code was being used to obtain the length.
  (WriteRunlengthPacket): Fix writing RLE MIFF at Q:32. In most cases the wrong scaling macro was being used.
- tests/Makefile.am (check-miff): Added MIFF tests for supported compression options.

2003-04-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/color.c (QueryColorDatabase): Extended to support parsing Q:32 hex color specification strings. Also add error reporting for failure to parse the color specification. This resolves a bug that drawing via the draw.c APIs was not working for Q:32 builds.
- utilities/gm.c (main): Add signal handlers to make sure that program cleans-up on exit by invoking DestroyMagick.
- magick/draw.c (DrawSetFillColor): Quote color specification.
  (DrawSetStrokeColor): Quote color specification. (DrawSetTextUnderColor): Quote color specification.
- ltmain.sh: Update to latest CVS libtool.

2003-04-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/enhance.c (NormalizeImage): Only normalize the opacity channel if image->matte is true. This results in some (15%) speedup. While it can be argued that the 'K' in CMYK should be normalized, it can also be argued that this is senseless since 'K' is not a "linear" measure like C, M, & Y are, and there may not be any any value to normalizing CMY at all.
  (EqualizeImage): Only equalize the opacity channel if image->matte is true. This results in a 23% speedup. (GammaImage): Minor loop optimization. (LevelImage): Don't level the opacity channel. Doing so doesn't make any sense.
  (LevelImageChannel): Put loops inside switch statement rather than around it.
- PerlMagick/t/tiff/read.t: Added grayscale 12-bit and 16-bit TIFF read tests.

2003-04-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (ReadTIFFImage): Add support for reading 12-bit grayscale TIFFs. Fix reading 16-bit grayscale TIFFs when QuantumDepth=8.
- VisualMagick/installer/gm-dynamic-full-8.iss, VisualMagick/installer/gm-dynamic-full-16.iss: Many C header files were not being included in the distribution. Oops!

2003-04-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- (index.html, www/*.html): Update to new web page style.
- scripts/txt2html: Update to output new web page style.
- ltmain.sh: Updated to latest CVS libtool.
- magick/tempfile.c (DestroyTemporaryFiles): Function was crashing if it was executed twice.

2003-04-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/delegates.mgk.in: Ralcgm was appending ".ps" to the provided output file name, so change cgm delegate command so that the input file is delivered via standard input, output is re-directed to a file, and anything printed to stderr (such as the Ralcgm program name and version) is sent to /dev/null.
- INSTALL-unix.txt: Added/corrected/improved documentation regarding --disable-installed, --enable-shared, and --with-modules.
- VisualMagick/magick/magick_config.h.in: Add more documentation and explanatory notes in order to lessen confusion.
- Many files: Replaced "UseInstalledImageMagick" with "UseInstalledMagick" for obvious reasons.

2003-04-04 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- magick/command.c, utilities/gm.c: Print "help" screen for a tool when user types "gm tool" or "gm tool -help"
- magick/command.c, magick/effect.c: add -ordered-dither option.

2003-04-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- locale/C.mgk: Fixed message associated with "UnableToCreateTemporaryFile".
- magick/tempfile.c (AcquireTemporaryFileDescriptor): Decided to return a pathname (if possible), even on failure, for use in error reports. The function return status should be used to determine if the function has succeeded.
- locale/locale.mgk: Updated copyright header.
- (magick/annotate.c, magick/attribute.c, magick/blob.c, magick/cache.c, magick/constitute.c, magick/delegate.c, magick/display.c, magick/image.c, magick/locale.c magick/tempfile.c, magick/tempfile.h, magick/utility.c, magick/xwindow.c, coders/dcm.c, coders/ept.c, coders/histogram.c, coders/mpeg.c, coders/pdf.c, coders/pict.c, coders/preview.c, coders/ps2.c, coders/ps3.c, coders/ps.c, coders/pwp.c, coders/sfw.c, coders/svg.c, coders/tiff.c, coders/url.c, coders/wpg.c): Ensure that failure to allocate/create temporary file is properly detected and reported.

2003-04-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/type.c (GetTypeBlob): Prioritize hard-coded path over Windows registry values.
- magick/log.c (GetLogBlob): Prioritize hard-coded path over Windows registry values.
- magick/blob.c (GetConfigureBlob): Prioritize hard-coded path over Windows registry values.
- magick/delegate.c (ReadConfigureFile): Perform substitutions for "@GMDelegate@", "@GMDisplayDelegate@", "@MPEGDecodeDelegate@", "@MPEGEncodeDelegate@", and "@HPGLDecodeDelegate@" while reading delegates.mgk under windows.
  (ListDelegateInfo): Format delegate command line to multiple lines if necessary rather than truncating.
- configure.ac (MagickBinPathDefine): Added support for a MagickBinPath definition.
- configure.ac (GSVersion): Added test to obtain version of installed Ghostcript.
- magick/tempfile.c (AcquireTemporaryFileDescriptor): Open flag should have been O_RDWR, not O_WRONLY!

2003-04-03 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- magick/utility.c: Simplified skipping over the "*" in the +profile "*" option when expanding filenames.

2003-04-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- VisualMagick/bin/delegates.mgk: Update similarly to coders/delegates.mgk.in.
- coders/delegates.mgk.in: Replaced 'mpeg-decode' delegate specification with 'mpeg' delegate specification.
- PerlMagick/t/mpeg/read.t: Since -r option is no longer supplied to mpeg2decode, the signatures must be updated.
- magick/utility.c (ExpandFilenames): Skip over no-argument commands properly.
- coders/mpeg.c: Removed ReadMPEGImage since this is handled entirely by delegate now.
- magick/command.c: Add convert -temporary option for use when input files are temporary files which should be automatically removed.
- magick/delegate.c (InvokeDelegate): Ensure that temporary file access is secure.
- coders/ept.c (ReadEPTImage): Ensure that temporary file specified by image_info->filename is liberated before allocating a new temporary file name.
- coders/ps.c (ReadPSImage): Ensure that temporary file specified by image_info->filename is liberated before allocating a new temporary file name.
- coders/pdf.c (ReadPDFImage): Change TemporaryFilename to AcquireTemporaryFileName.
- magick/tempfile.c (LiberateTemporaryFile): Now takes a 'char *' argument rather than 'const char *', and erases the provided filename if it is the name of a valid temporary file. This helps avoid errors. The return status may be used to determine if a file was removed. (AcquireTemporaryFileDescriptor): Decided that adding a .tmp extension to temporary file names is unnecessary.
- coders/jp2.c (WriteJP2Image): Destroy pixel matrix after encoding image. Cristy says that there is memory corruption otherwise.

2003-04-01 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/png.c: Use new temporary file manager for JNG components. Merge with IM 5.5.7 (mostly cosmetic changes).

2003-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/cache.c (OpenCache): Add some Windows-specific open options.
- magick/resource.c (InitializeMagickResources): Increase the number of "lowio" file handles available for use under Windows.
- ltdl/ltdl.c: Incorporate more Darwin fixes from CVS libtool.
- coders/pcx.c (ReadPCXImage): Incorporate bugfix from ImageMagick -- Not enough memory allocated for reading PCX (bug report by Trevor Willis).
- magick/magick.c (InitializeMagick): Only invoke SetLogEventMask() to set debug options based on getenv("MAGICK_DEBUG") if the environment variable is set.

2003-03-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/tempfile.c: Include tempfile.h rather than temporary.h
- magick/magick.c: Include tempfile.h rather than temporary.h
- coders/dcm.c, coders/ept.c, coders/histogram.c, coders/mpeg.c, coders/pdf.c, coders/pict.c, coders/preview.c, coders/ps.c, coders/ps2.c, coders/ps3.c, coders/pwp.c, coders/sfw.c, coders/svg.c, coders/tiff.c, coders/url.c, coders/wpg.c, magick/annotate.c, magick/attribute.c, magick/blob.c, magick/cache.c, magick/constitute.c, magick/delegate.c, magick/display.c, magick/image.c, magick/magick.c, magick/utility.c, magick/xwindow.c: Updated to use new temporary file allocation APIs.
- magick/tempfile.c: New temporary file allocation subsystem for allocating, tracking, and deallocating temporary files. Use of this subsystem should reduce the likelyhood that temporary files will be left behind once the process exits. If the environment variable MAGICK_TMPDIR is set, then its value is used as the location to place temporary files.
- magick/utility.c (IsAccessibleAndNotEmpty): New function for testing for file exists, is a regular file, and is not empty. Used to test if a temporary file has been updated by a delegate.
- magick/log.c (SetLogEventMask): Add support for setting TemporaryFileEvent.
- PerlMagick/Magick.xs: Added TemporaryFile log event type.
- magick/log.h (LogEventType): Add TemporaryFileEvent event classification.

2003-03-29 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- magick/resize.c (SampleImage) and magick/render.c (DrawAffineImage(): Applied Cristy fix for bug that offset images to the top and left.
- magick/resize.c (ScaleImage): Fixed bug that caused intensity levels to be one unit too high.
- coders/png.c: make JNG support depend on HasJPEG. Remove temp files.

2003-03-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/resize.c (ResizeImage): Applied fix authored by John Cristy for distortion when using the bessel filter.
- magick/display.c: Applied fix authored by John Cristy which eliminates bogging down when using the magnifier window on large images.
- Several files: A few files included multiple copies of the copyright header text due to either pilot error, or equipment failure.

2003-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- tests/Makefile.am : Removed some debug code which was accidentally committed to CVS.
- Copyright.txt: Add copyright statements to all the files, including some apparently missing copyrights.

2003-03-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/Makefile.am: Added temporary.c and temporary.h. These are not finished yet.
- magick/cache.c: Transferred optimization from ImageMagick to read/write all requested pixel cache rows in one system call when accessing the cache using file I/O, and the requested columns equals the image columns.
- magick/resource.c: (ResourceInfo): Use type 'double' rather than 'long double'. For many systems, the range of 'long double' is the same as 'double'. On others, use of 'long double' incurs the cost of function calls since there is no hardware support.

2003-03-22 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- magick/effect.h, effect.c, command.c: Revised -random-dither to require parameters: channel LOWxHIGH. Channel can presently be "intensity", "opacity", or "all".

2003-03-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- ltdl/ltdl.c: Updated to latest CVS version. Claimed to support loading modules under MacOS-X.
- magick/resource.c (InitializeMagickResources): Enable code under Windows which queries system limits.
- magick/cache.c (S_MODE): Fixed portability problems with definition.
- VisualMagick/bin/delegates.mgk: Fix typo in "mpeg-decode" decode rule.
- libtool: Update to latest CVS version.
- configure.ac: Test zlib for gzseek and gztell.
- magick/effect.c (ChannelThresholdImage): The is_grayscale flag was not be evaluated correctly.

2003-03-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.h (RoundSignedToQuantum): Added handy RoundSignedToQuantum macro for munging doubles into Quantums.
- magick/effect.c (ThresholdImage): Added optimizations for thresholding all pixels to white or black. Threshold using an integral value rather than a double so compares are faster. (ChannelThresholdImage): Threshold against integral values since compares are faster. Invoke ThresholdImage for simple thresholding across all channels since it is faster.

2003-03-19 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/meta.c: #ifdef'ed out some dead code.
- magick/annotate.c: #ifdef'ed out some code that is only used when HasTTF is defined.
- Added RandomThresholdImage() method and -random-threshold commandline option.

2003-03-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac (LIB_TIFF): Check for TIFFReadRGBATile and TIFFReadRGBAStrip in libtiff before deciding to use it.
- magick/blob.c (WriteBlob): Move pointer increment into paranthesis.
  (ReadBlob): Move pointer increment into paranthesis.
- magick/gem.c (HSLTransform): Removed inline statement. (TransformHSL): Removed inline statement.
- magick/random.[c|h]: Removed files from CVS.
- magick/command.c: Don't include random.h.
- PerlMagick/t/reference/jng: Update reference files to current output.

2003-03-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Added tests for pread and pwrite functions.
- magick/image.c (GrayscalePseudoClassImage): Properly invoke SyncImagePixels.
- magick/cache.c (SyncCacheNexus): Add back in is_monochrome and is_grayscale flag resetting which was lost by copying over ImageMagick's cache.c.
  (FilePositionRead): Inline wrapper for reading a chunk of data at an offset.
  Cleans up some messy code, and makes it easy to use pread(). (FilePositionWrite): Inline wrapper for writing a chunk of data at an offset.
  Cleans up some messy code, and makes it easy to use pwrite(). Cache now uses pread() and pwrite() to access the cache if these calls are available.
- magick/resource.c (InitializeMagickResources): Support setting resource limits via the environment variables MAGICK_LIMIT_DISK, MAGICK_LIMIT_FILES, MAGICK_LIMIT_MEMORY, and MAGICK_LIMIT_MAP.

2003-03-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/stream.c (AcquirePixelStream): Store total pixels in 64-bit type.
  (SetPixelStream): Store total pixels in 64-bit type.
- coders/tiff.c (WriteTIFFImage): CoderError should be MissingDelegateError.
- coders/ps3.c (Huffman2DEncodeImage): CoderError should be MissingDelegateError.
  (WritePS3Image): CoderError should be MissingDelegateError.
- coders/ps2.c (Huffman2DEncodeImage): CoderError should be MissingDelegateError.
- coders/pdf.c (Huffman2DEncodeImage): CoderError should be MissingDelegateError.
- coders/fpx.c (ReadFPXImage): CoderError should be MissingDelegateError.
  (WriteFPXImage): CoderError should be MissingDelegateError.
- coders/dps.c (ReadDPSImage): CoderError should be MissingDelegateError.
- magick/image.c (AnimateImages): DelegateError should be MissingDelegateError.
- magick/annotate.c (RenderX11): DelegateError should be MissingDelegateError.
- magick/image.c (DisplayImages): DelegateError should be MissingDelegateError.

2003-03-17 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- magick/image.c Relocated misplaced break in ChannelImage() and sped up SetImageOpacity by avoiding blend operation when setting the image fully opaque.

2003-03-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/cache.c: Snarfed cache.c updates from ImageMagick.
- magick/command.c: Added -list resource support.

2003-03-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/Makefile.am (random.c): Removed building, packaging, and intialization of random.c functions since it is not actually used.
- magick/semaphore.c (InitializeSemaphore): Only initialize critical section if active_semaphore is not already true.
- magick/resource.c: Snarf resource.c updates from ImageMagick.
- PerlMagick/Magick.xs: Added missing log event types.
- magick/log.h (enum): Added ResourceEvent enumeration.
- magick/log.c (LogMagickEvent): fflush(stdout) at the end of each log. Otherwise output may not be seen for a long time. (SetLogEventMask): Add support for "-debug resource".
- coders/tiff.c (RegisterTIFFImage): Don't register encode and decode handlers for TIFF if TIFF library is not available.
- magick/constitute.c (WriteImage): Fix cut-n-paste error in log message ("decoder" --> "encoder").

2003-03-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- index.html: Added a link to the GraphicsMagick mailing lists.
- Magick++/demo/zoom.cpp: Added dashed option support, including a -resample option for image resampling.

2003-03-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Makefile.am (DIST_SUBDIRS): Filters subdirectory needs to be distributed.

2003-03-14 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- magick/render.c Ported Cristy's bugfix to DrawAffineImage().

2003-03-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (DestroyImage): Comment out new assertions until we are certain that there are no ill effects.
- coders/mat.c (ReadMATImage): Set image->depth to valid values.
- PerlMagick/Magick.xs: Update so that new DestroyImage assertions aren't asserted.
- magick/list.c (DestroyImageList): Update so that new DestroyImage assertions aren't asserted.
- coders/wpg.c (ReadWPGImage): Don't leave dangling pointer when trimming list. Don't set image->depth to invalid values.

2003-03-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (DestroyImage): Add assertions to verify that destroyed image is not currently referenced by another image. This should help prevent accidental continued use of a destroyed image.
  (DestroyImage): Added assertions to enforce that images should not continue to reference the destroyed image.
- coders/wpg.c: Incorporated fixes from Jaroslav Fojtik.
- version.sh (PACKAGE_VERSION_ADDENDUM): Construct a package snapshot version based on the ChangeLog modification time. This requires GNU find to work propery since the -printf option is used.
- configure.ac (LIB_GS): Do not test for the Ghostscript library by default due to the issue of its embedded libjpeg conflicting with libjpeg.
- coders/ept.c (ReadEPTImage): "PostscriptDelegateFailed" should be classified as a DelegateError type.

2003-03-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/blob.c (BlobToFile): Truncate while opening file. (ImageToFile): Truncate while opening file.
- magick/annotate.c (RenderFreetype): Missing freetype library should result in a MissingDelegateError type rather than a DelegateError type.
- INSTALL-windows.txt: Added a note regarding a workaround for internal compiler errors while compiling image.c when using Visual C++ 7.0.
- coders/jpeg.c (ReadICCProfile): Incorporate ImageMagick fix to handle short JPEG ICC profiles.
- magick/integral_types.h: Ignore SIZEOF_LONG_LONG and SIZEOF_UNSIGNED_LONG_LONG defines if _VISUALC_ is defined.

2003-03-11 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- www/gm.html, utilities/gm.1, guide/gm.tex: Expanded description of the -affine option.

2003-03-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (GetImageDepth): Re-implemented using a single-pass algorithm and 1/2 the code. Previous implementation didn't return correct results for Q:32 build. Now it does.
- magick/command.c (IdentifyImageCommand): For identify, when %q format specifier is present, image must be read rather than pinged. If not, either the value 8 is returned, or there is a crash due to reading an uninitialized image.

2003-03-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/mat.c: Incorporate fixes from Jaroslav Fojtik. Close Blob before rotating image.
- PerlMagick/README.txt: Update to reflect that PerlMagick is part of GraphicsMagick.
- PerlMagick/t/input.mat: Added test image for Matlab format.
- PerlMagick/t/input.wpg: Added test image for WordPerfect Graphics Format.
- utilities/Makefile.am (ALLMANPAGES): Install gm.1 rather than old utility manual pages.

2003-03-09 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- www/gm.html, utilities/gm.1, guide/gm.tex: First cut at manpage for gm, to replace individual utility manpages.

2003-03-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/blob.c: Fix some erroneous log printf specifications. Improved blob log messages a bit.
- magick/log.c (IsEventLogging): Use InitializeLogInfo(). (InitializeLogInfo): New function to intelligently initialize logging subsystem. Only locks when initialization may be required, and only locks long enough to determine if initialization is required. This approach should avoid deadlocking while logging from functions used to initialize logging.
  (IsLogAccessible): No longer need this duplicate of IsAccessible(). (SetLogEventMask): Use InitializeLogInfo().
- coders/fpx.c (ReadFPXImage): FlashPIX library does not support BLOB I/O so don't use OpenBlob/CloseBlob. Opening the blob caused a conflict when the FlashPIX library attempted to open the file.

2003-03-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Test for libtiff functions (TIFFClientOpen & TIFFIsByteSwapped), which are required by GraphicsMagick, but not found in older libtiff versions.
- magick/blob.c: Added logging for Blob open/close and memory mapping operations.

2003-03-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- tests/rwblob.c (main): DestroyImage asserts on NULL so only call it for non-null image.
- tests/rwfile.c (main): DestroyImage asserts on NULL so only call it for non-null image.

2003-03-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- tests/rwblob.c (main): Add -pause option to require keypress to exit program. Clean-up to avoid any appearance of leaks.
- tests/rwfile.c (main): Add -pause option to require keypress to exit program. Clean-up to avoid any appearance of leaks.
- magick/static.c (ExecuteStaticModuleProcess): Don't bind in process filter functions for Visual C++ since the build environment doesn't support it yet.
- magick/log.c (GetLogBlob) Code wasn't actually testing current directory for log.mgk, now it does.
- magick/log.c (IsEventLogging): Eliminate accidental recursive, or repeated, initialization of the logging system.

2003-03-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/jp2.c (WriteJP2Image): Improved -quality rate estimation for very small files.

2003-03-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/jp2.c (WriteJP2Image): Add additional logging support.
- tests/rwblob.c: Added BLOB read/write logging.
- tests/rwfile.c: Added file read/write logging.
- magick/module.c (FindMagickModule): Minor code cleanup and limit directory and file name lengths to sensible values.
- magick/utility.c (IsAccessible): Log test failures along with test failure reason [strerror(errno)]. Also log test success.
- VisualMagick/bin/delegates.mgk: -DSAFER does not work with Ghostscript 8.0.
- magick/module.c: Needed to conditionally include nt_feature.h.

2003-03-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/module.c (ExecuteModuleProcess): Updated to support locating filter modules based on search rules. (CoderInfo): Declare only in module.c since use is private to this module.
  (GetCoderInfo): Made static and commented out since currently unused. (FindMagickModule): New function to search for a module. (GetModuleBlob): Moved from blob.c, made static, and re-implemented based on FindMagickModule.
- magick/blob.c: Moved GetTypeBlob() to type.c and made it static. Moved GetModuleBlob() to module.c and made it static.

2003-03-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/Makefile.am: MIFF module does not depend on -ljpeg, but PNG module does (for JNG).
- filters/analyze.c (AnalyzeImage): Bugfix, image should be passed as Image** rather than Image*.
- magick/utility.c (IsAccessible): Don't log errno if errno==0.

2003-03-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/Makefile.am: Link with libFilters convenience library.
- VisualMagick/magick/magick_config.h.in: Change MagickModulesPath to MagickCoderModulesPath and add a MagickFilterModulesPath to locate filter modules.
- filters/Makefile.am: New makefile to build filter modules.
- configure.ac: Configure magick/GraphicsMagick.pc and Magick++/lib/GraphicsMagick++.pc. (MagickModulesSubdir): Add quantum depth to modules path to ensure that modules with the correct depth are loaded. The modules path is now ${libdir}/GraphicsMagick-${PACKAGE_VERSION}/modules-Q${QuantumDepth}/coders. (MagickCoderModulesPath): Rename MagickModulesPath to MagickCoderModulesPath. (MagickFilterModulesPath): Define to location of filter modules.
- magick/Makefile.am: Added rules to install GraphicsMagick.pc.
- magick/GraphicsMagick.pc.in: Added pkgconfig file for -lGraphicsMagick.

2003-02-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/jp2.c (WriteJP2Image): Quality factor calculation had accidentally been removed. The calculation is back, but has been biased up slightly so that a quality factor of 75 results in a more reasonable 16:1 compression. Past a quality factor of 99.5, the compression is set to 1:1 (non-lossy).

2003-02-27 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Fixed bug with reading interlaced PNG images, introduced yesterday.
- Fixed bug with skipping MNG subimages, also introduced yesterday.

2003-02-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Makefile.am (EXTRA_DIST): Forgot to distribute version.sh
- configure.ac: Use definitions from version.sh to drive package versioning and naming. These definitions support libtool's recommended approach to library versioning.
- version.sh: New file for managing release versioning. Edit this file to change the release number, etc.
- PerlMagick/t/tiff/read.t: Added read tests for stripped, planar contiguous, and planar seperated TIFFs.
- coders/tiff.c (ReadTIFFImage): Transferred stripped-TIFF reading code from ImageMagick.
  Enumerated reading methods to make the logic more clear.

2003-02-27 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- JNG alpha sample depth was sometimes inconsistent.
- Bring only one line at a time into memory during PNG read/write (Merge with Cristy's 5.5.6 update).

2003-02-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/Makefile.PL.in (LIBS): Put MAGICKLIB first to decrease the probability that the wrong libMagick is used when linking static PerlMagick.
- configure.ac (PerlMagick): Fix linker search path for -lGraphicsMagick when linking a static PerlMagick. It seems that libtool changed the location where it places static libraries.
- PerlMagick/t/tiff/read.t: Added test for reading tiled TIFF.
- coders/tiff.c (ReadTIFFImage): Add optimized support for reading tiled TIFFs.
  (ReadTIFFImage): Optimize loops for reading tiled TIFFs as well. (ReadTIFFImage): Eliminate compiler warning. (ReadTIFFImage): Add some missing error handling for tiled TIFF.

2003-02-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/tiff.c (ReadTIFFImage): Optimize RGBA transfer loop.

2003-02-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/render.c (DrawPrimitive): Return DrawPolygonPrimitive status (edit transferred from ImageMagick).
- magick/utility.c (GetMagickGeometry): Scaling to an area now preserves the image aspect ratio.

2003-02-24 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- png.c: Added missing parentheses in typecast (cristy noticed the bug that I introduced on 2/18).

2003-02-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Makefile.am: Add rules to produce www/README.html, www/INSTALL-mac.html, www/INSTALL-unix.html, www/INSTALL-vms.html, and www/INSTALL-windows.html
- www/README.html: New file produced from README.txt
- www/INSTALL-mac.html: New file produced from INSTALL-mac.txt.
- www/INSTALL-unix.html: New file produced from INSTALL-unix.txt.
- www/INSTALL-vms.html: New file produced from INSTALL-vms.txt.
- www/INSTALL-windows.html: New file produced from INSTALL-windows.txt.
- NEWS: Added news for GraphicsMagick 1.0.0.
- magick/locale.c: Added error messages to support JP2.
- locale/C.mgk: Added error messages to support JP2.
- locale/locale.mgk: Update to GraphicsMagick copyright.
- coders/jp2.c: Updated to use Jasper 1.700.1 interface conventions. Jasper 1.700.1 is required now. Support reading arbitrary quantum sizes up to 16-bits. Return grayscale images as PseudoClass.
- jp2/: Updated Jasper sources to version 1.700.1.

2003-02-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/jp2.c (ReadJP2Image): Obtain channel indexes by ID rather than assuming index value. Validate that channel geometry and encoding is supported.
- magick/effect.c (ThresholdImage): Additional performance optimization. Work faster if image is already gray.

2003-02-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/jp2.c (WriteJP2Image): Port to Jasper 1.7. For Q:32, don't write 32-bit pixels rather than the 16-bit pixels we told Jasper we would write. (WriteJP2Image): Back-port to Jasper 1.6.

2003-02-18 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/modules.mgk: Added JNG entry.

2003-02-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/jp2.c (RegisterJP2Image): Added registration for "PGX" magick tag.
- magick/magic.mgk: Added entry for JPEG V2's PGX format.
- PerlMagick/t/jp2/read.t: Added JPEG Version 2 read tests.
- coders/modules.mgk: Added JPC and PGX magick types to support JPEG V2.
- magick/color.c (IsMonochromeImage): Re-arranged test logic to short-circuit test using ORs. (IsGrayImage): Re-arranged test logic to short-circuit test using ORs.
- magick/constitute.c (PopImagePixels): Speed GrayQuantum and GrayAlphaQuantum cases if is_grayscale is True.
- magick/quantize.c (AssignImageColors): Sync image to update DirectClass pixels to new colormap.
- coders/fpx.c (RegisterFPXImage): FlashPIX does not provide direct BLOB I/O support.
- magick/blob.c (BlobToImage): Add logging. (BlobToFile): Add logging.

2003-02-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/fpx.c (ReadFPXImage): Removing the input file is antisocial.
- PerlMagick/t/fpx/*.fpx: Replaced with new copies. Files seemed to be corrupt.
- PerlMagick/t/cgm/read.t: Specify file magick so that CGM read test passes for BLOB case.
- PerlMagick/t/rad/read.t: Specify file magick so that RAD read test passes for BLOB case.
- PerlMagick/t/jng/read.t: Add read tests for JNG.
- PerlMagick/t/jng/write.t: Add read/write tests for JNG.
- configure.ac (DELEGATES): Added 'jng' to the DELEGATES list so that JNG can be included in the PerlMagick tests.

2003-02-18 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/png.c: Write proper JNG image_interlace_method.
- coders/png.c: Read and write proper MNG and JNG sRGB intent.
- PerlMagick/t/jng: Add twelve test files in JNG format.
- coders/png.c: Write proper progressive JNG output when transparency is present.

2003-02-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/version.c (GetMagickWebSite): New function.

2003-02-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/wmf.c (ipa_device_begin): Use MagickWebSite definition.
- www/Copyright.html: Updated to match Copyright.txt
- www/perl: Updated to reflect GraphicsMagick vs ImageMagick.
- magick/xwindow.c (XMakeImageMSBFirst): Minor loop optimizations.
- magick/constitute.c (ConstituteImage): Check for grayscale and monochrome image if image is PseudoClass.

2003-02-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/enhance.c (ContrastImage): Preserve is_grayscale flag. (EqualizeImage): Preserve is_grayscale flag. (ModulateImage): Preserve is_grayscale flag. (NegateImage): Preserve is_grayscale flag. (NormalizeImage): Preserve is_grayscale flag.
- magick/fx.c (ColorizeImage): Evaluate is_grayscale status. (ConvolveImage): Preserve is_grayscale flag. (ImplodeImage): Preserve is_grayscale flag. (SolarizeImage): Preserve is_grayscale flag. (OilPaintImage): Preserve is_grayscale flag. (SwirlImage): Preserve is_grayscale flag. (WaveImage): Preserve is_grayscale flag.
- magick/resize.c (MagnifyImage): Preserve is_grayscale flag. (MinifyImage): Preserve is_grayscale flag. (ResizeImage): Preserve is_grayscale flag.
- magick/decorate.c (FrameImage): Evaluate is_grayscale status. (RaiseImage): Preserve is_grayscale.
- magick/shear.c (IntegralRotateImage): Preserve is_grayscale. flag.
  (XShearImage): Evaluate is_grayscale status. (YShearImage): Evaluate is_grayscale status.
- magick/transform.c (ChopImage): Preserve is_grayscale flag. (CropImage): Preserve is_grayscale flag. (FlipImage): Preserve is_grayscale flag. (FlopImage): Preserve is_grayscale flag. (RollImage): Preserve is_grayscale flag.
- magick/effect.c (AddNoiseImage): If image colorspace is GRAYColorspace, then add intensity noise, and transfer image is_grayscale flag to output image. (BlurImage): Preserve is_grayscale flag. (DespeckleImage): Preserve is_grayscale flag. (EdgeImage): Preserve is_grayscale flag. (EmbossImage): Preserve is_grayscale flag. (GaussianBlurImage): Preserve is_grayscale flag. (MotionBlurImage): Preserve is_grayscale flag. (ShadeImage): Preserve is_grayscale flag. (SharpenImage): Preserve is_grayscale flag. (UnsharpMaskImage): Preserve is_grayscale flag.
- magick/quantize.c (QuantizeImage): Pre-reduce gray images to PseudoClass in order to quickly determine the number of colors, and provide the expected PseudoClass output. Also skip slow color quantization if there are already fewer colors than requested.
- magick/image.c (GrayscalePseudoClassImage): New function to quickly reduce an image to PseudoClass grayscale. This is a fast way to determine the number of intensities in a grayscale image. Either a compact sorted colormap or a faster, contiguous linear colormap is created, depending on the optimize_colormap flag. If the image is already PseudoClass, and the optimize_colormap flag is True, then the existing colormap is sorted and reduced. (SyncImage): Preserve is_grayscale flag. (ChannelImage): Result is grayscale. (CycleColormapImage): Preserve is_grayscale and is_monochrome flags. (SetImage): Evaluate is_grayscale flag. (SetImageDepth): Preserve is_grayscale flag. (SetImageOpacity): Preserve is_grayscale flag. (SortColormapByIntensity): Preserve is_grayscale flag. (TransformRGBImage): Evaluate is_grayscale flag.

2003-02-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/resize.c (SampleImage): Preserve grayscale and monochrome flags.
- magick/quantize.c (AssignImageColors): Set image monochrome flag to True when quantizing to two colors in GrayColorspace.
- magick/effect.c (SpreadImage): Preserve grayscale and monochrome flags.
  (AdaptiveThresholdImage): Short-circuit algorithm if image flags indicate it is already monochrome. Set monochrome and grayscale flags once algorithm completes. (ThresholdImage): Short-circuit algorithm if image flags indicate it is already monochrome. Set monochrome and grayscale flags once algorithm completes. (ChannelThresholdImage): Short-circuit algorithm if image flags indicate it is already monochrome. Set monochrome and grayscale flags once algorithm completes. (ShadeImage): If grayscale shading is done, then set image grayscale flag to True.
- magick/color.c (IsGrayImage): If the image is_grayscale flag is True, then short-circuit the test. Update the flag if the test is performed.
  (IsMonochromeImage): If the image is_monochrome flag is True then short-circuit the test. Update the flag if the test is performed.
- magick/image.c (CloneImage): Copy image is_grayscale and is_monochrome members.
- magick/cache.c (SyncCacheNexus): If image pixels are updated then set image is_grayscale and is_monochrome members to False. Algorithms which want to preserve the values of these members should save their original values before processing the image and restore them when processing is complete, or transfer them from the input image to the output image.
- magick/constitute.c (ReadImage): If the returned image is PseudoClass then invoke IsGrayImage() and IsMonochromeImage() and cache the result in image is_grayscale and is_monochrome members for later use.
- magick/image.h (Image): Added is_grayscale and is_monochrome members to remember if image is grayscale or monochrome.

2003-02-14 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- www/archives.html: commented out sites not mirroring GM yet. Changed "ftp.simplesystems.org" to "ftp.graphicsmagick.org". Added link to graphicsmagick.sf.net.

2003-02-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/utility.c (FormatString): Check for the availability of vsprintf.
- magick/log.c (LogMagickEvent): Check for the availability of vsprintf.
- configure.ac: Test for vsprintf.

2003-02-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/annotate.c (RenderFreetype): Used smarter code to prepare the beta argument for AlphaComposite.

2003-02-12 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/logo.c: updated logo.c to produce the GraphicsMagick logo.

2003-02-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- INSTALL-unix.txt: Document that default quantum depth is now 8.
- VisualMagick/magick/magick_config.h.in: Default quantum depth is now 8.
- configure.ac: Default quantum depth is now 8.
- tests/Makefile.am: Test format types that require a size seperately since always specifying the size caused some formats (e.g. PCD) to improperly fail.

2003-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- www/NEWS.html: New HTML file for project news.
- scripts/txt2html: New script for formatting text into HTML.
- Makefile.am: Automated the generation of www/Changelog.html and www/NEWS.html.
- coders/xpm.c (WritePICONImage): Close blob using correct image.
- tests/Makefile.am (CHECK_SIZED_FILES): Added files to tests subdirectory so that tests don't need to use files from PerlMagick.
- magick/image.c (TransformColorspace): New function to simplify/centralize colorspace transform requests. Replaced calls to RGBTransformImage and TransformRGBImage throughout the code with calls to TransformColorspace.
- IMDisplay: Disable save function since it is not implemented yet.

2003-02-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/Magick.xs (SetAttribute): Support changing back to RGB or Transparent colorspace.

2003-02-10 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Brought MNG handling of final delay into compliance with MNG spec.

2003-02-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/bmp.c (WriteBMPImage): Added support for bits_per_pixel==4.
  (WriteBMPImage): Convert PseudoClass images with more than 256 colors to DirectClass.
  (WriteBMPImage): Do not require 2-color images to pass the IsMonochromeImage() test before writing them as one-bit-per-pixel BMPs. Decided to allow this after four readers (including Windows XP) displayed the image using the proper colormap. (WriteBMPImage): BMP2 encoder was writing colormap using wrong format.
- images: Updated logo images to GraphicsMagick
- Added PDF Sages to web page as a sponsor.

2002-02-08 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- www/GraphicsMagick.html: add "gm " prefix to examples.

2002-02-07 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- index.html: Update to distinguish between ImageMagick and GraphicsMagick, and to explain "gm" prefix of commandline utilities.

2003-02-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/nt_feature.c (CropImageToHBITMAP): Remove useless autocrop support which was transferred from CropImage when creating CropImageToHBITMAP.

2003-02-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/miff.c (ReadMIFFImage): RLE packet size was not calculated correctly, causing RLE-compressed MIFF images with depth>8 to not be read.

2003-02-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/paint.c (ColorFloodfillImage): Transfered fix from ImageMagick for the problem that floodfill using a tiled image failed if the target color happened to match the current fill color.

2003-02-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c: Fixed preview error message.
- coders/preview.c: Previous update had broken noiseimage demo. Also some cleanups.
- magick/display.c (XMagickCommand): No longer uses MogrifyImage.
- coders/preview.c (WritePreviewImage): Re-wrote so that MogrifyImage is no longer used. Resize image outside of the loop to improve performance.

2003-02-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/effect.c (ShadeImage): Use PixelIntensityToDouble macro.
- magick/image.h (PixelIntensityToDouble): Added PixelIntensityToDouble macro to handle the case where pixel intensity is used for floating arithmetic.

2003-01-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Makefile.am: Distribute files ChangeLog, INSTALL-mac.txt, INSTALL-unix.txt, INSTALL-vms.txt INSTALL-windows.txt, and NEWS.

2003-01-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/svg.c (SVGStartElement): Applied fix from ImageMagick to compute SVG +> MVG viewbox correctly.
- magick/image.c (CloneImage): Applied fix from ImageMagick which is purported to solve the problem that "negative (x,y) page offsets did not clone properly".
- magick/gem.c (TransformHWB): Replace implementation with ImageMagick's new version which is supposed to fix a rounding error problem. Hard to say since implementation is totally different.
- coders/msl.c (MSLStartElement): Applied fix for missing break from ImageMagick.
- magick/integral_types.h: New header to include the integral types typedefs. Needed new header in order to include in both studio.h and api.h at the right point.
- magick/studio.h: Move nt_feature.h inclusion to the few modules which actually use functions from it.
- magick/api.h: Added typedefs gm_int16_t, gm_uint16_t, gm_int32_t, gm_uint32_t, gm_int64_t, gm_uint64_t to support specifically sized types.
- configure.ac: Test for size of 'short', 'unsigned short', 'int', 'unsigned int', 'long', 'unsigned long', 'long long', 'unsigned long long' assigning the result to the defines SIZEOF_SHORT, SIZEOF_UNSIGNED_SHORT, SIZEOF_INT, SIZEOF_UNSIGNED_INT, SIZEOF_LONG, SIZEOF_UNSIGNED_LONG, SIZEOF_LONG_LONG, and SIZEOF_UNSIGNED_LONG_LONG respectively.

2003-01-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/fx.c (OilPaintImage): Compute histogram using 8-bit quantums for more sensible performance with Q:16 and Q:32 builds.
- magick/image.h (PixelIntensityToQuantum): Compute using integral arithmetic for Q:8 and Q:16. Much faster than floating point! (PixelIntensity): Compute using integral arithmetic for Q:8 and Q:16. Much faster than floating point!

2002-01-28 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Fixed bug in png.c, introduced in IM-5.5.1. A pair of { } brackets were omitted when logging was added, which lets old versions of libpng write a zero-length iCCP chunk.

2003-01-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/effect.c (DespeckleImage): Put loops inside of case statement rather than outside.
  (SpreadImage): Improved algorithm so that -spread is 12X faster.
- magick/nt_feature.c (CropImageToHBITMAP): New function to return a region of the image as a HBITMAP.

2003-01-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Fixed Copyright statement on all source files.
- magick/effect.c (ThresholdImage): Optimized loop.
- coders/tiff.c (ReadTIFFImage): Read bits more efficiently for bits_per_sample=1.
- magick/command.c (MogrifyImage): Set image->dither to image_info->dither prior to invoking SetImageType.
- magick/constitute.c (WriteImage): Set image->dither to image_info->dither.
- magick/image.c (SetImageType): For case BilevelType, normalize image, and threshold 50% if dithering is disabled. This is at least 10X faster than quantizing with dither. (AllocateImage): Initialize image->dither. (CloneImage): Copy image->dither.
- magick/image.h: Added dither member to Image.

2003-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/t/tiff/read.t: Added a test for reading 16-bit TIFF images.
- coders/tiff.c (ReadTIFFImage): Support reading 16-bit TIFF images with a Q:8 build.
- magick/color.c (ConstrainColormapIndex): Use VerifyColormapIndex.
- coders/pnm.c (ReadPNMImage): Use VerifyColormapIndex.
- coders/gif.c (DecodeImage): Use VerifyColormapIndex.
- magick/image.c (SyncImage): Use VerifyColormapIndex.

2003-01-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/blob.c (ReadBlobByte): Use getc when reading from FILE stream.
- configure.ac: Added tests for getc_unlocked and putc_unlocked.
- magick/blob.c (ReadBlobByte): Optimized reading from BlobStream. (ReadBlobLSBLong): Optimized reading from BlobStream. (ReadBlobLSBShort): Optimized reading from BlobStream. (ReadBlobMSBLong): Optimized reading from BlobStream. (ReadBlobMSBShort): Optimized reading from BlobStream. (ReadBlobStream): New static inline function to read from BlobStream. (WriteBlob): "Manually" copy data rather than using memcpy() for very small copy sizes.
  (WriteBlobByte): Use putc() when writing to a FILE stream.

2003-01-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/gem.c (Hull): Count down loops. Might help. (InterpolateColor): Pre-compute common sub-expressions to improve performance.
- magick/segment.c (Classify): Implemented idea from Glenn Randers-Pehrson to avoid use of pow() when WeightingExponent is 2.0 (which it is). This makes image segmentation much faster (e.g. 8X).
- magick/annotate.c (RenderFreetype): For images with matte==False, simply set the opacity of the pixel to be updated to OpaqueOpacity before alpha-compositing the pixel rather than using SetImageType(TrueColorMatteType) to initialize the opacity of the entire image. This is much faster and scales to large images.
- magick/image.c (SetImageType): Eliminated unnecessary conditionals.

2003-01-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/effect.c (InsertMedianList): Assign computed quantum indexes to variables to avoid extra computations for QuantumDepth>8.
- magick/composite.c (AlphaComposite): Pre-compute common expressions in order to improve performance.
- magick/fx.c (ConvolveImage): Optimized loops.
- magick/paint.c (TransparentImage): Optimize for case fuzz == 0.
- magick/color.c (FuzzyColorMatch): Minor cleanup and optimization.
- magick/locale.c: Added error messages for convolve option.
- coders/locale.c: Picked up recent changes from ImageMagick version.
- locale/C.mgk: Added error messages for convolve option.
- magick/command.c (MogrifyImage): Added support for convolve option.
- coders/xcf.c (ReadXCFImage): Recognize latest GIMP XCF header.
- coders/dcm.c: Transferred the apparent salient fixes from ImageMagick for a bug described as "Some DCM grayscale images did not display correctly.".
- coders/miff.c (ReadMIFFImage): Reading RLE-compressed MIFFs is now about 4X faster.
- magick/blob.c (OpenBlob): Use setvbuf() to increase stdio buffer size to 16K. Solaris default is 1K. This should minimize system call overhead for accessing large files. (ReadBlob): "Manually" copy data rather than using memcpy() for very small copy sizes.
  (ReadBlobZC): New method, similar to ReadBlob, but provides the opportunity for zero copy on read.
- magick/constitute.c (PushImagePixels): CMYKA case for image->depth=16 was comparing with 8 instead.

2003-01-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/utility.c (GetMagickGeometry): Removed support for '~' and disabled centering code until we learn where it should go (if anywhere).
- magick/command.c : Add HWB colorspace transform support.
- PerlMagick/Magick.xs: Add HWB colorspace transform support.
- magick/image.c (RGBTransformImage): Add HWB colorspace transform support.
  (TransformRGBImage): Add HWB colorspace transform support.

2003-01-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/utility.c (GetMagickGeometry): Add support for new new '~' geometry string flag. This also fixes a montage bug in which thumbnails were mis-sized if the geometry specification incuded x or y offsets.
- magick/image.h (GeometryFlags): Added CenterValue enumeration to correspond with new '~' geometry string flag. Taking ImageMagick's lead on this.
- magick/render.c: Transferred fixes from ImageMagick for an artifact which occured at the 360 degree point when rendering circles, ellipses, and arcs. Bug reported by io219@attbi.com.
- PerlMagick/Magick.xs: Add HSL colorspace transform support.
- magick/command.c: Add HSL colorspace transform support.
- magick/image.c (RGBTransformImage): Add HSL colorspace transform support.
  (TransformRGBImage): Add HSL colorspace transform support.

2003-01-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Updated copyright statement on source files to reflect the GraphicsMagick Group rather than ImageMagick Studio.
- magick/constitute.c (ConstituteImage): Simplified the switch statement for inner loops by creating a simplified map in advance. (DispatchImage): Simplified the switch statement for inner loops by creating a simplified map in advance.
- magick/compress.c (HuffmanEncodeImage): Test and cache the return value of LocaleCompare(image_info->magick,"FAX") so that LocaleCompare is not executed repeatedly in the output loop.
- magick/color.c (IsGrayImage): Optimized loops. (IsMonochromeImage): Optimized loops. (IsOpaqueImage): Optimized loop.
- magick/delegate.c (InvokePostscriptDelegate): When using the Ghostscript library, identify the library as "[ghostscript library]" rather then "gsdll32" so that -verbose prints something useful for both Windows and Unix.

2003-01-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- NEWS: New file.
- magick/montage.c (MontageImages): Use ThumbnailImage() rather than ZoomImage() to resize montage thumbnails provided that the user has not specified an image filter, and the montage thumbnail is smaller than the image. This should provide faster montages for large images.
- magick/resize.c (ResizeImage): Added logging support. (MagnifyImage): Added logging support. (MinifyImage): Added logging support. (SampleImage): Added logging support. (ScaleImage): Added logging support.

2003-01-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/transform.c (ProfileImage): Duplicate ImageMagick changes to image colorspace handling. Avoids using SetImageType(image,ColorSeparationMatteType).
- magick/fx.c (OilPaintImage): Replaced with ImageMagick version since ImageMagick version has been updated to not penalize Q:8. Optimized loops.
- magick/display.c (XDisplayImage): Display to 100% of the screen size rather than 90% of the screen size.
- magick/enhance.c (ModulateImage): Ensure that arguments are always positive values. Optimized loops. (ContrastImage): Optimized loops.
- magick/gem.c (HSLTransform): Optimized performance by eliminating redundant intermediate calculations. This makes 'gm convert -contrast' 21% faster. (HSLTransform): Set to inline within the gem.c module. (TransformHSL): Set to inline within the gem.c module. (Contrast): Moved to bottom of gem.c module so HSLTransform and TransformHSL can be inlined. Simplified conditionals. (Modulate): Moved to bottom of gem.c module so HSLTransform and TransformHSL can be inlined. No longer check/correct negative values.

2003-01-14 William Radcliffe <billr@corbis.com>

- magick/blob.c
- magick/blob.h Added new stream type flag and support to match with the one added to ImageMagick.

2003-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c (RGBTransformImage): Fixed bug (thanks to Bill for finding it) and finished optimizing XYZ table creation.
  (AverageImages): Optimized loops. (ChannelImage): Optimized loops. 3X speed-up for SPARC.
- magick/enhance.c: Optimized NegateImage().

2003-01-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Set some common API structures to 0xbf prior to deallocation to make accidental continued use more obvious.

2003-01-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/constitute.c: Minor optimizations to PopImagePixels()
- coders/dpx.c: Reading the DPX header was off by 4 bytes.
- coders/(art.c,avs.c,bmp.c,cmyk.c,dcm.c,dib.c,dpx.c,fax.c, fits.c,gray.c,icon.c,map.c,miff.c,mono.c,mpc.c,mtv.c,otb.c, pcx.c,pdb.c,pict.c,pix.c,pnm.c,pwp.c,rgb.c,rla.c,rle.c,sct.c, sgi.c,sun.c,tga.c,tim.c,uyvy.c,vicar.c,viff.c,wbmp.c,xwd.c, yuv.c): Ensure that blob is closed on unexpected EOF.
- magick/image.c: Optimized SetImageOpacity(). Optimized SetImage() for intializing non-opaque images. The opacity channel was being intialized twice.

2003-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/constitute.c: Log entry and exit from coders so that coders don't need to.
- Finished re-writing PushImagePixels() using coding practices which may result in faster code.
- PerlMagick is changed from Image::Magick to Graphics::Magick in order to avoid conflicts with the ImageMagick version. This means that any Perl scripts based on the ImageMagick version need to do a global replace of Image::Magick to Graphics::Magick.
- PerlMagick/reference/filter/Raise.miff: Replaced with new version.

2003-01-08 William Radcliffe <billr@corbis.com>

- magick/nt_feature.c Make ImageToHBITMAP function in nt_feature.c compile under Visual C++ again.

2003-01-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/delegates.mgk.in: Fix cgm entry. How did it become so terribly broken?
- coders/dps.c: Adding logging support.
- PerlMagick/t/read.t: Changed file read tests to use image compares with a reference image rather than comparing with a signature.
- PerlMagick/t/wmf/read.t: Ditto. magick/shear.c: Fixed documentation for RotateImage.

2002-01-08 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- magick/magick.c, magick/magick.h: Add "note" member of magick_info.
- coders/art.c, coders/fax.c, coders/dcm.c, coders/png.c: add notes to format registrations.
- fx.c: changed default "colorize" behaviour to preserve image opacity.

2003-01-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/svg.c: Allow the user to specify the initial background color via the -background option. This is only useful if the SVG doesn't draw its own background rectangle.

2003-01-06 Albert Chin-A-Young <china@thewrittenword.com>

- ltdl/Makefile.am, ltdl/ltdl.c: Fix compilation problem under Tru64 UNIX 5.1. The GraphicsMagick random.h was being included when the system random.h was needed.
- configure.ac: Improve robustness of POSIX thread API tests by including pthread.h when building the test program.

2003-01-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c: In IsImagesEqual() only use type 'long double' for error summation if QuantumDepth > 16 and 'long double' has more range than 'double'.
- magick/quantize.c: In QuantizeImage() only use type 'long double' for error summation if QuantumDepth > 16 and 'long double' has more range than 'double'.
- Replaced redundant code with macros.
- Optimize mapping to monochrome.
- utilities/conjure.c: Had missed removing this file earlier.

2003-01-04 Derry Bryson <dbryson@techass.com>

- magick/decorate.c: Use the ShadowFactor rather than ShadowModule define in RaiseImage() (bug-fix).

2002-12-31 Cristy <cristy@mystic.es.dupont.com>

- magick/command.c: Do not quantize CMYK (bug fix).
- magick/render.c: Ensure that stroke is not drawn wider than requested when antialiasing is disabled (bug fix).

2002-12-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c: For TransformRGBImage() and RGBTransformImage() round values to int when creating tables rather than using scaling to avoid rounding.

2002-12-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/png.c: Fixed compile problems.
- magick/image.c: SyncImage() performance optimizations.
- TransformRGBImage() cleanup/enhancements. Some rounding issues remain.
- RGBTransformImage() cleanup/enhancements. Some rounding issues remain.

2002-12-24 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- BUGFIX: Fixed bug, introduced on 12/18/02, in which a misplaced "}" caused an assertion failure after reading any opaque JNG image.
- Added CloseBlob before returning a NULL JNG image.
- Merged png.c with IM-5.5.3-1, including a seemingly pointless rename of SaveImageText string to SaveImageTag.

2002-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c: Optimized gray x, y, z, tables creation in RGBTransformImage().

2002-12-27 Cristy <cristy@mystic.es.dupont.com>

- coders/pcd.c: IsPCDImage() fix offset to test header magic.
- coders/pcd.c: Ensure that blob is closed on error.
- coders (all): Pass image->colorspace to TransformRGBImage()
- magick (animate.c, command.c, display.c, image.c, nt_feature.c) Pass image->colorspace to TransformRGBImage().
- magick/nt_feature.c: Ensure that image is RGB prior to transfer to HBITMAP.

2002-12-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c: Re-worked TransformRGBImage() again so that it is now smoking fast for Q:8 and Q:16. Changed lookup tables, and all per-pixel transforms to use only integer arithmetic. A pre-multiplication scheme is used which should actually improve the quantization error over using double arithmetic. It is actually possible to improve Q:32 performance a bit more but is it worth the effort?

2002-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c: Implemented logging for TransformRGBImage() and RGBTransformImage().

2002-12-24 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- The png codec would close the blob twice (second time raising an assertion) if a libpng error was encountered.
- Sometimes the PNG writer would receive an invalid bit depth from CompositeImages(); this is now ignored.

2002-12-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c: Re-wrote TransformRGBImage() so that it does not penalize a Q:8 build. The function should be faster now, but no timings have been made to verify that.

2002-12-21 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Elimimated unused transparent_pixel array in png.c.
- Reverted to incrementing loops in bmp.c where the counter "i" is used in the loop.

2002-12-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c: Update MogrifyImage() so that gm is 9X faster when transforming a color image to grayscale.

2002-12-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Updated coders to use VerifyColormapIndex macro rather than slow ConstrainColormapIndex() function.
- magick/constitute.c: Trial use of VerifyColormapIndex in PushImagePixels() IndexQuantum case.

2002-12-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/color.c: Added VerifyColormapIndex macro to verify range of color index without a function call.
- coders/bmp.c: Updated to use VerifyColormapIndex macro.

2002-12-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/bmp.c: Sped up RLE expansion and sped up byte-size PseudoColor scanline conversion. Results in 50% speed-up when running on SPARC.

2002-12-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- utilities: Removed legacy ImageMagick utilities which have been rolled up into gm.c/command.c.

2002-12-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/Magick.xs: Fixed FormatString() format problems identified by the compiler.

2002-12-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.h: Moved function prototypes for functions implemented in code modules other than image.c to seperate header files with names based on the implementation files.

2002-12-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/enhance.c: Report appropriate message while leveling image.

2002-12-18 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Sync png.c and fx.c with IM-5.5.3. "gm convert -list format" now includes zlib version info among the PNG info.
- ConvolveImage() logs kernel info as a "Transform" debug event.
- ReadJNGImage() now skips decoding JPEG subimage when "pinging"

2002-12-17 Cristy <cristy@mystic.es.dupont.com>

- * SVG element 'stroke-dasharray: 0' no longer causes a segmentation fault.

2002-12-17 Cristy <cristy@mystic.es.dupont.com>

- CoaleseceImage() properly handles a dispose method of BackgroundDispose.

2002-12-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Updated to substitute for @GMDelegate@.
- magick/effect.c: Changed AdaptiveThresholdImage offset to double so that it works with QuantumDepth=32. Thanks to Glenn for pointing out this problem.
- magick/image.c: Adapted to AdaptiveThresholdImage API change.
- magick/image.h: Annotated global constants and functions with the name of the source file where they are implemented. This is in preparation to break up image.h into multiple header files to diminish unnecessary header dependencies.
- coders/delegates.mgk.in: Updated to use @GMDelegate@ definition and 'gm' program rather than ImageMagick utility names.
- PerlMagick/t/read.t: Converted gradient test (which was not working at all) to compare with a reference image.
- PerlMagick/t/jpeg/read.t: Re-wrote to compare with reference image.
- PerlMagick/t/jpeg/write.t: Re-wrote to compare with reference image.
- magick/image.c, magick/command.c: Moved MogrifyImage and MogrifyImages from image.c to command.c in order to diminish unnecessary inter-object coupling. Only functions in command.c should use MogrifyImage or MogrifyImages. Some work remains to accomplish that.

2002-12-16 Cristy <cristy@mystic.es.dupont.com>

- coders/jpeg.c: Add missing break statements to fix colorspace handling when image colorspace is CMYKColorspace or YCbCrColorspace.
- magick/decorate.c: Cast to double in calculation.
- magick/enhance.c: Tweaks to equalization map calculation to (hopefully) provide more consistent results.
- magick/resize.c: Use type double rather than long for minify weighting constants.

2002-12-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/image.h: AdaptiveThresholdImage offset must be a signed type.

2002-12-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Re-wrote PerlMagick filter.t tests so that they all compare results with reference images rather than compare signatures. This makes the tests easier to maintain and also makes it easier to find errors in ImageMagick.

2002-12-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c: Warnings reduction
- magick/list.c: Warnings reduction

2002-12-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Updated PerlMagick tests for Emboss, Equalize, Gamma, Normalize, OilPaint, and Gradient so that they pass at Q:8 under Windows.
- Updated PerlMagick tests for Emboss, and reading WMF, so that they pass at Q:16 under Windows.
- VisualMagick\installer\ImageMagick-16.iss: Ported over from ImageMagick-8.iss and verified.

2002-12-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Major smashing of ImageMagick to GraphicsMagick in .txt files and .html files.
- ImageMagick.html: Renamed to index.html.
- www/ImageMagick.html: Renamed to www/GraphicsMagick.html

2002-12-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/list.c: Added GetFirstImageInList() function.
- magick/list.c: Added GetLastImageInList() function.
- coders/pcd.c: Re-implemented image tile labeling to avoid use of MogrifyImages().

2002-12-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added 'commit' shell script to CVS for those who chose to use it.

2002-12-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/magick.c: Ensure that operating system call error return values are never used in resource limit calculation.

2002-12-12 William Radcliffe <billr@corbis.com>

- magick/magick.c Fixed bugs in InitializeMagick, but I also heavily commented the code so show what it seems to be doing. It appears broken and needs testing on all platforms. Toward that end, I added Log events so that we can see what it is doing.

2002-12-12 William Radcliffe <billr@corbis.com>

- utilities/gm.c Fixes a crashing bug in gm.c caused by an attempt to free a bad pointer. Added comments to the code that explain why this happens so that future developers don't fall into the same trap.
- win2k/IMDisplay/IMDisplay.rc Modified some of the string resources that define supported file formats that were in error. One example was eps with had a *.eps in the string instead of just .eps. This caused the document class to ASSERT under the debug build.

2002-12-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Enable the module loading code for shared/DLL builds regardless of whether the build is a "modules" build. This allows users to add their own modules without requiring the use of a special "modules" build.

2002-12-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.h: Backed out arbitrary name change from ChannelThresholdImage() to ThresholdImageChannel() that snuck in from Cristy's image.h changes.

2002-12-11 Cristy <cristy@mystic.es.dupont.com>

- coders/psd.c: Reference cloned image Blob (not sure why needed but must be important).

2002-12-11 Cristy <cristy@mystic.es.dupont.com>

- magick/enhance.c: Fixed LevelImage() to accept percent black/white points (.i.e. 90%).
- magick/enhance.c: Added LevelImageChannel().
- magick/enhance.c: Improved Q:8 performance of color transformations (e.g. for Gamma) which are based on a mapping array.
- coders/pcl.c: Fixed PCL coder to output proper color PCL instructions.

2002-12-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c: Disabled SetImageInfo() code which uses GetImageMagick() to test file magic via Is* methods so that we can learn if eliminating use of these tests causes any ill effects.

2002-12-09 William Radcliffe <billr@corbis.com>

- Moved xtrn.c from contrib area into coders area so that it can be used from within the COM object. This is windows only code that provides a back door way for the COM object to have data read or written into VB arrays.

2002-12-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/mac.c: Merged in fixes from ImageMagick version.
- magick/magick.mgk: Merged in fixes from ImageMagick version.

2002-12-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.c: Fix ChannelImage() so that it does not destroy CMYK(A) channels by forcing RGB.

2002-12-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/version.h: Changed to release 1.0.0.
- magick/nt_base.c: Changed "ImageMagick" to "GraphicsMagick" so registry lookups work for GraphicsMagick. Probably should be configured via a magick_config.h define.
- VisualMagick/installer/ImageMagick-8.iss: Changed for GraphicsMagick.
- utilities/conjure.c: Fix unterminated comment.

2002-12-06 William Radcliffe <billr@corbis.com>

- coders/jpeg.c: Modification of JPEG APP1 detection logic to name EXIF and XMP profiles as EXIF and XMP instead of APP1. THe current algorithm is brute force.
- coders/meta.c: Modification deal with EXIF and XMP requests so that you can ask for these blobs specifically if they exist.
- coders/pdf.c,ps.c,ps2.c,ps3.c: Cristy bug fixes to eliminate redundant file access checking and fix embedded JPEG support.
- magick/random.c: Upgraded this to match current Cristy code. The upgrade is to support more robust temporary filenames in another change to this in utility.c however, I have not upgraded this code yet because I don't understand it well enough.

2002-12-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added build support for utilities/gm.c

2002-12-06 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Relocated animate, conjure, display, and import functions into command.c.
- Added utilities/gm.c; gm is a driver for all of the utility functions (animate, composite, conjure, convert, display, identify, import, mongrify, and montage), which are now run with "gm convert [convert_options]", "gm identify [identify_options]", etc.

2002-12-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/pdf.c: Remove bogus code for handling temporary file.

2002-12-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Updated to Autoconf 2.57.
- Install libraries as -lGraphicsMagick and -lGraphicsMagick++ under Unix.
- Install headers under ${PREFIX}/include/GraphicsMagick under Unix.
- Update *-config scripts to produce correct library and include statements.
- Update PerlMagick to use correct library and include statements.

2002-12-04 William Radcliffe <billr@corbis.com>

- contrib/win32/ATL7/ImageMagickObject/ImageMagickObject.cpp: Fixed serious problem with not installing custom error and warning handlers in the new version of the COM object.

2002-12-04 William Radcliffe <billr@corbis.com>

- magick/constitute.c: Pass exceptions on write up into the exception structure passed into the WriteImages function.

2002-12-04 William Radcliffe <billr@corbis.com>

- magick/image.c: Added orphan image functionality changes that are purported to fix bugs in PDF and PS coders.

2002-12-04 William Radcliffe <billr@corbis.com>

- magick/locale.c: Hard coded the locale as per Cristy fix, but also added a comment and disabled useless code.

2002-12-04 William Radcliffe <billr@corbis.com>

- VisualMagick/bin/magic.mgk: Added JNG as per the copy in magick subdirectory.

2002-12-04 William Radcliffe <billr@corbis.com>

- tiff/libtiff/tiff.h: Minor changes to make reading older Photoshop TIFF files spew fewer warnings.

2002-12-04 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Optimized ConvolveImage() by normalizing the kernel values instead of normalizing the pixels.

2002-12-01 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- www/formats.html: Add JNG and fix libpng links.

2002-12-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- ChangeLog: Updated this ChangeLog to use the format prescribed by the GNU coding standards.

2002-12-01 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- coders/png.c: Use PNG_SETJMP_NOT_THREAD_SAFE to indicate that the C library's setjmp() API is not thread safe.
- Fix use of image_info->blob.

2002-11-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Set up new CVS repository for GraphicsMagick based on current ImageMagick 5.5.2 (pre-release) sources.

2002-11-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Flashpix library now uses C++ standard <new> and iostreams rather than legacy new and iostreams.

2002-11-15 Cristy <cristy@mystic.es.dupont.com>

- The blob methods were enhanced to use GZip or BZip API methods to compress/uncompress images (previously the external programs gunzip or bunzip2 were used).

2002-11-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Update to Autoconf 2.56

2002-11-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Update to Autoconf 2.55

2002-11-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Moved coder Register/Unregister method prototypes to static.h since they are only needed by static.c.
- Removed defunct HDF and libmpeg2 support since it was confusing to users.

2002-11-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/wmf.c: Set white background of embedded bitmaps to transparent if the image background is a texture image, not-white, or non-opaque. This improves the output when the WMF is rendered on a non-default background.

2002-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Updated Windows CVS to FreeType 2.1.2.

2002-11-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Updated Windows CVS to Jasper 1.600.0.

2002-11-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Verify sanity of sysconf(_SC_PAGE_SIZE) and sysconf(_SC_PHYS_PAGES) before using their values.

2002-11-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Modified IMdisplay so that larger images may be loaded (primarily limited by Windows bitmap size limits).
- Added some more file types (EPS, GIF, MIFF, SVG, & WMF) to IMdisplay's file open list.
- The list management methods were given more meaningful names.

2002-11-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Modified IMdisplay so that Magick++ Images are stored by value rather than via pointer.
- IMdisplay now uses minify(), magnify(), and zoom() methods where appropriate.

2002-11-04 Cristy <cristy@mystic.es.dupont.com>

- Quantizing a DirectClass image with less than 256 unique colors is no longer lossy.
- Transparent TGA images had incorrect opacity values.

2002-10-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added configure test for compiler __func__ support (HAS___func__).
- Added configure test for ftime().

2002-10-31 Leonard Rosenthol <leonardr@lazerware.com>

- CMYK + alpha layered PSD files now correctly read!

2002-10-30 Leonard Rosenthol <leonardr@lazerware.com>

- ReadPSDImage() is now fully instrumented with logging
- Fixed long standing bug in ReadPSDImage, so it no longer returns an extra layer

2002-10-29 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Added three output formats: PNG24 (24-bit RGB PNG, opaque only), PNG32 32-bit (RGBA PNG, semitransparency OK), and PNG8 (8-bit indexed PNG, binary transparency only).

2002-10-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/vid.c: Modified to be 10X faster for large images and to take advantage of JPEG size optimizations.

2002-10-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/xwindow.c: Optimize loading of TrueColor images with gamma = 1.0.

2002-10-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/wmf.c: Added logging facilities.

2002-10-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- display.c: removed unnecessary SignatureImage() calls which dramatically slowed down loading images and quiting the program.
- xwindow.c: optimized image size reduction for the case where the target size is a small fraction of the original size. This makes creation of display's panner and thumbnail images tremendously faster, with no noticeable degradation of thumbnail quality.

2002-10-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added Windows95 define to VisualMagick magick_config.h to disable use of features not available under Windows '95

2002-10-21 Cristy <cristy@mystic.es.dupont.com>

- Added large file pixel cache support for Windows NT.

2002-10-21 Leonard Rosenthol <leonardr@lazerware.com>

- PDF coder no longer uses ASCII85 encoding with TIFF for MUCH smaller files!
- Cleaned up a few other things in PDF coder.

2002-10-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Updated to Automake 1.7.1.

2002-10-18 Cristy <cristy@mystic.es.dupont.com>

- PingBlob() improperly set the length of BlobInfo to zero.
- Fixed Ping() memory leak in PerlMagick.
- Fixed -map problem in convert/mogrify utilities.
- Fixed -remote problem with display utility (returns correct error status).

2002-10-16 Cristy <cristy@mystic.es.dupont.com>

- -border with a single value now produces correct results (e.g. -border 10).
- Added -lat to convert/mogrify (local adaptive thresholding).

2002-10-15 Cristy <cristy@mystic.es.dupont.com>

- Set locale type LC_NUMERIC to "C".
- Bug fix for PS2 encoder.
- Added PS-Adobe preamble to PS3 encoder.

2002-10-14 Cristy <cristy@mystic.es.dupont.com>

- ImageMagick 5.5.1 released.

2002-10-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Use ImageMagick release number to allow multiple ImageMagick releases to co-exist without interference on the same machine.

2002-10-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Decided that DrawGet functions should return by value.

2002-10-06 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Added detailed logging to BMP, PNG, and JPEG codecs, including JPEG quality estimate.

2002-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added draw.h "DrawGet" equivalents to most of the "DrawSet" functions.
- Added an array size argument to DrawSetDashPattern and got rid of the zero-termination garbage.
  - Remove 'Set' from the names of draw.h functions which update the current affine transformation array (e.g. DrawSetRotate becomes DrawRotate).

2002-09-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Updated to Automake 1.7.

2002-09-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Under Windows, a DllMain function which automatically initializes ImageMagick (when ImageMagick is built using DLLs) may be added by defining ProvideDllMain in magick_config.h

2002-09-28 Cristy <cristy@mystic.es.dupont.com>

- Added resource consumption methods, see magick/resource.c.

2002-09-27 Cristy <cristy@mystic.es.dupont.com>

- Replaced underscores in commandline options with hyphens. For backward compatibility, underscores will continue to be recognized.
- Added -blue-primary, -green-primary, -red-primary, -white-point options.

2002-09-27 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Added BMP2 and BMP3 output formats.
- Changed chromaticity primary.z from 1.0 to 1.0-(primary.x+primary.y) in the PNG and PCD codecs.

2002-09-21 Cristy <cristy@mystic.es.dupont.com>

- Added 'exception' parameter to the ImageMagick progress monitor API.
- Added enumerated types for the dispose member of the Image structure.
- Added -version option to commandline utilities.

2002-09-21 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- The xcf decoder would sometimes create artifacts when reading RLE-encoded grayscale images, due to the green and blue samples not being defined.

2002-09-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Update to Autoconf 2.54.

2002-08-08 Cristy <cristy@mystic.es.dupont.com>

- Added logging capabilities to the CORE API. This facility is useful for debugging. Added "events" parameter to the -debug commandline option.
- AcquireImagePixels() did not always return the same pixel values for virtual pixels when the cache was stored on disk (very rare).
- new -virtual-pixel command line option.
- new PerlMagick virtual-pixel image attribute.

2002-08-07 Cristy <cristy@mystic.es.dupont.com>

- ImageMagick 5.4.9 released.

2002-09-06 Leonard Rosenthol <leonardr@lazerware.com>

- Fixed some bugs in the Clipboard coder
- Added new ImageToHBITMAP function to NTFeature.c/.h in core
- Added support for Quantum==32 to IMDisplay

2002-08-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Fix formatting in the *.mgk files so that they are XML conformant

2002-08-30 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- QuantizeImage() did not always produce proper bilevel images.

2002-08-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Apply prefix/suffix transformations to ImageMagick program names which are substituted into delegates.mgk. This fix was requested by Glenn Randers-Pehrson.

2002-08-25 Cristy <cristy@mystic.es.dupont.com>

- Arcs are now rendered properly.
- Use -authenticate to specifiy a password when viewing encrypted PDF's.
- -page was previouly being ignored.
- Configure files are returned as blobs now (suggested by William Radcliffe).

2002-08-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added --disable-installed option to configure to support building an ImageMagick which is not installed via hard-coded paths. This is intended to be used for the ad-hoc binary distributions built by ImageMagick Studio.
- The UseInstalledImageMagick define is to be used by builds formally installed under a prefix, or via the Windows registry.
- Replaced GetMagickConfigurePath() with the three functions FindConfigurationFile(), FindFontFile(), and FindModuleFile().
- Re-implemented InitializeMagick() to try harder at finding the uninstalled ImageMagick without the help of MAGICK_HOME. In the future, it can try even harder.
- Unix binaries packages (built with --disable-installed) should now work using the same file layout as the distribution file. There is no longer a need to put all files in the same directory.

2002-08-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Under Windows, define UseInstalledImageMagick to locate components using the registry rather than scanning the filesystem.

2002-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added DrawSetTextEncoding() function to specify text encoding (e.g. "UTF-8").

2002-08-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Extend 'convert -list type' output so it prints more details.
- Fix draw.c problem when specifying font family names that contain spaces.

2002-08-15 Cristy <cristy@mystic.es.dupont.com>

- Finished 32-Bit QuantumDepth support.
- Subimage memory leak fixed (bug report by William Radcliffe).
- Fixed subimage specification memory overrun.
- Subimage specification did not work properly under Windows.

2002-08-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Fix problem with TEXT encoder. It was prepending the filename to the text.

2002-08-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Render Postscript via Ghostscript DLL (gsdll32.dll) under Windows if it can be loaded. Only ps.c currently uses this to verify there are no problems.

2002-08-14 Cristy <cristy@mystic.es.dupont.com>

- Added 16-bit raw write support to PPM.

2002-08-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Re-implemented ReadTTFImage() using the draw.h APIs.

2002-08-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Fixed a libtool bug in order to allow passing -m64 to allow building 64-bit ImageMagick using gcc 3.1 or later under SPARC Solaris.

2002-08-04 Cristy <cristy@mystic.es.dupont.com>

- Added experimental 32-bit QuantumDepth pixel support.
- Stream support was not thread-safe (bug report by William Radcliffe).
- Push/PopImagePixels() now recognizes the proper buffer length (previously it operated on one scanline at a time).
- Deprecated Down/Upscale defines. Replaced them with Scale*ToQuantum() and ScaleQuantumTo*() methods.

2002-08-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Changed configure argument --disable-16bit-pixel to --with-quantum-depth in order to make its usage more straightforward and generic. Build ImageMagick using an eight-bit quantum via --with-quantum-depth=8.
- Magick++ library builds as a DLL under Windows now.

2002-07-31 Cristy <cristy@mystic.es.dupont.com>

- Delegates/modules are restricted to hard-coded search paths (a security feature suggested by Bob Friesenhahn).

2002-07-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added SubstituteString to utility.c for performing substitions on strings.
- Added support for performing Ghostscript-related substitutions while reading delegates.mgk and type.mgk files.

2002-07-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added the Windows utility functions NTGhostscriptDLL(), NTGhostscriptEXE(), and NTGhostscriptFonts(), to find the DLL, executable, and font directory corresponding to the newest Ghostscript install on the system.

2002-07-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Split nt.c into ntbase.c and ntfeature.c
- Split nt.h into ntbase.h and ntfeature.h
- Invoke NTIsMagickConflict() under Cygwin to ensure that drive letters in file specifications are not confused with magick strings.
- Invoke NTGetTypeList() under Cygwin to read the list of Windows fonts.

2002-07-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Created Windows "setup.exe" style installation package for ImageMagick.
- Include PerlMagick Perl extension for ActiveState ActivePerl as checkmark install option in Windows installation package.
- Include ImageMagickObject OLE Object for WSH and Visual Basic (not IIS!!!) as checkmark install option in Windows installation package.
- Windows installation package establishes file extension associations for ImageMagick.

2002-07-17 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- PPM files were being written in P4 or P5 format if all pixels were gray. This is correct behavior for the PNM format but not for the PPM format.

2002-07-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Load font information from Windows rather than depending on hand edited type-windows.mgk file. Still not incorporated in Cygwin build.

2002-07-04 Cristy <cristy@mystic.es.dupont.com>

- Typos corrected in perl.html (thanks to Ron Savage);
- A color profile is now correctly referred to as ICM instead of IPTC.
- Added XPM color compliance to colors.mgk.
- $image->Get('clip-mask') now returns the clipping image.

2002-07-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added NTRegistryKeyLookup() to nt.c in order to look up ImageMagick installation parameters from the Windows Registry.
- Updated GetMagickConfigurePath() in magick.c to use installation path data from the Windows Registry (if available).
- Updated VisualMagick/ImageMagick.iss so that Windows Registry is updated by install package.

2002-07-03 Cristy <cristy@mystic.es.dupont.com>

- Semaphore.c will compile now when pthreads are not present.
- 8-Bit Quantum PCD images now read correctly.
- The antialias member of the ImageInfo structure was not being cloned.

2002-07-01 Cristy <cristy@mystic.es.dupont.com>

- ImageMagick 5.4.7 released.

2002-06-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/nt.c (readdir): Make readdir re-entrant for each instance of DIR. This should improve thread safety.
- ltdl/ltdl.c : Support building as DLL under Win32.

2002-06-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Update to use Automake 1.6.2

2002-06-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Try harder when searching for Ghostscript fonts under Linux.

2002-06-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Identify PICT files via magic.mgk.

2002-06-18 Cristy <cristy@mystic.es.dupont.com>

- Added PerlMagick threading support (patch by Doug MacEachern).

2002-06-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- CLIPBOARD and EMF modules compile under MinGW and Cygwin.

2002-06-14 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- The wbmp writer would dump core if it received a DirectClass image that contained only black and white pixels, because no colormap exists.

2002-06-09 Cristy <cristy@mystic.es.dupont.com>

- Label color could not be set (bug report by Ron Savage).
- Added CatchException() method to magick/error.c.

2002-06-06 Cristy <cristy@mystic.es.dupont.com>

- ImageMagick, version 5.4.6-1 released.

2002-06-05 Cristy <cristy@mystic.es.dupont.com>

- Added -encoding option to command line utilities.

2002-06-02 Cristy <cristy@mystic.es.dupont.com>

- ImageMagick, version 5.4.6 released.

2002-05-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- ImageMagick may now be built (static build only) using the free MinGW development package from http://www.mingw.org. Leonard's "clipboard" coder is included in the build.

2002-05-28 Leonard Rosenthol <leonardr@lazerware.com>

- Added new "clipboard" coder for reading/writing the system's clipboard. Currently this is only implemented on Windows. For example: 'convert logo: clipboard:', 'convert clipboard: foo.png'

2002-05-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Support autotrace via delegates.mgk. For example: 'convert autotrace:file.png file.mvg'

2002-05-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added progress monitor support to DrawImage().

2002-05-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added progress monitor support to wmf.c.

2002-05-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added EscapeText() to utility.c to support escaping text.

2002-05-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Text escaping for -draw and DrawAnnotation was not working properly. Now it does. Backslash should act as a escape for the the active quote character (', ", or }) as well as backslash. The backslash should be discarded if it was used as an escape character. In order to reliably pass a backslash, two successive backslashes are required (e.g. "\\").

2002-05-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Modified Base64Encode() of utility.c so that it returns the number of characters encoded. This avoids having to invoke strlen() on possibly megabytes of data.

2002-05-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Fixed compilation error with Sun Workshop compiler (wmf.c).

2002-05-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Implement polypolygon support in WMF renderer. Requires libwmf 0.2.4 with draw_polypolygon IPA callback.

2002-05-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added --enable-ccmalloc configure option.

2002-05-09 Cristy <cristy@mystic.es.dupont.com>

- DCM patch provided by Shane Blackett.

2002-05-07 Cristy <cristy@mystic.es.dupont.com>

- Lock mutex when destroying a SemaphoreInfo structure (patch provided by William Radcliffe).
- Added mingw patches provided by Derry Bryson.

2002-05-05 Cristy <cristy@mystic.es.dupont.com>

- ImageMagick, version 5.4.5-1 released.

2002-04-30 Cristy <cristy@mystic.es.dupont.com>

- Subimage specification did not work for TIFF (e.g. convert 'image.tiff[1]' image.png).

2002-04-30 Cristy <cristy@mystic.es.dupont.com>

- ImageMagick, version 5.4.5 released.

2002-04-20 Cristy <cristy@mystic.es.dupont.com>

- Added magic string detection for the FPX format (patch provided by Marc).

2002-04-18 Cristy <cristy@mystic.es.dupont.com>

- Added ExceptionInfo parameter to C API method, QueryColorDatabase().

2002-04-17 Leonard Rosenthol <leonardr@lazerware.com>

- Fixed all known bugs with the IMDisplay utility for Windows.

2002-04-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac (libtool_build_static_libs): Added --enable-delegate-build option to suuport building ImageMagick using delegate libraries in subdirectories of the ImageMagick source directory.

2002-04-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- WMF now supplies bitmaps as inline images rather than via a mpri reference.

2002-04-15 Cristy <cristy@mystic.es.dupont.com>

- Fixed DrawImage() to properly handle affine image transforms.
- Added AffineTransformImage() to C API.
- Added -transform option to convert/mogrify program.

2002-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/magick.c (MagickToMime): New method to return the MIME media type corresponding to a specified magick tag.

2002-04-12 Leonard Rosenthol <leonardr@lazerware.com>

- Fixed a bug in writing layer names in PSD files.

2002-04-10 Cristy <cristy@mystic.es.dupont.com>

- Fixed PingImage() memory leak (thanks to Timo Vogel).
- Added encoding and unicode attributes to PerlMagick (patch provided by Youki Kadobayashi).

2002-04-08 Cristy <cristy@mystic.es.dupont.com>

- Added reference counted blobs.
- Added MagickFatalError() and SetFatalErrorHandler() to the C API.
- One color images caused memory corruption in QuantizeImage() (thanks to Vincent Broz).
- Memory leak in NormalizeImage() (thanks to Vincent Broz).

2002-04-06 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Added CCIS-601 4:2:2 YUV format read-write support.
- Added CCIS-601 4:2:2 MPEG-2 format write support.
- Fixed a bug introduced in 5.4.0 that caused files with "M2V" suffix to be written in MPEG-1 instead of MPEG-2 format.

2002-03-28 Cristy <cristy@mystic.es.dupont.com>

- ImageToBlob() only returned the first frame of a multi-frame image.

2002-04-05 Leonard Rosenthol <leonardr@lazerware.com>

- Fixed inversion of colors when converting CMYk JPEG to PDF

2002-04-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Fixed TTF preview function.

2002-03-28 Cristy <cristy@mystic.es.dupont.com>

- DCM patches provided by Syam Gadde.
- Multi-frame MPC image files caused a fault under Windows.
- Copy entire comment from SVG (bug report from Bob Friesenhahn).
- Enlarged scanline buffer for JPEG-compressed TIFF's (bug report from Bob Friesenhahn).

2002-03-27 Cristy <cristy@mystic.es.dupont.com>

- ImageMagick, version 5.4.4, released.

2002-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added preliminary version of C API for vector drawing commands (draw.h & draw.c). This interface is subject to change, and has not even been tested yet so it should not be used to support production code. The previous draw.h and draw.c have been renamed to render.h and render.c respectively.

2002-03-25 Leonard Rosenthol <leonardr@lazerware.com>

- Fixed bugs related to layered CMYK PSD images.

2002-03-13 Leonard Rosenthol <leonardr@lazerware.com>

- PSD coder now saves layer information (name, offset & opacity) in hidden attributes.

2002-03-13 Cristy <cristy@mystic.es.dupont.com>

- Enhanced MPC to read/write image sequences.

2002-03-13 Cristy <cristy@mystic.es.dupont.com>

- A number of formats (e.g. JPEG, PS) did not handle DirectClass grayscale images properly.

2002-03-12 Cristy <cristy@mystic.es.dupont.com>

- Changed Clone*Info() API so structure members are set directly rather than by the *clone=*info method (suggested by William Radcliffe).

2002-03-11 Cristy <cristy@mystic.es.dupont.com>

- Added AcquireString() to allocate read-only strings.

2002-03-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/null.c (WriteNULLImage): Support writing "null:" image type for use when profiling or testing ImageMagick.

2002-03-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Update to Autoconf 2.53 (new release)
- Update to Automake 1.6 (new release)

2002-03-07 Cristy <cristy@mystic.es.dupont.com>

- Bob Friesenhahn's execution profile results in a number of speed-ups with a faster LocaleCompare() algorithm and self-adjusting lists.
- Recognize additional DCM metadata (suggested by Barry Branham).
- Fixed CopyOpacity composite operator for CMYKA images.

2002-03-06 Cristy <cristy@mystic.es.dupont.com>

- Inlined AlphaComposite() and ValidateColormapIndex().
- Corrected compositing algorithm for the case where both source and destination pixels had opacity values that were neither fully transparent nor fully opaque.

2002-03-05 Cristy <cristy@mystic.es.dupont.com>

- Memory overrun when drawing large circles.

2002-03-04 Cristy <cristy@mystic.es.dupont.com>

- Removed bug introduced into Bob's Base64Encode() method.

2002-03-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added Base64Decode() and Base64Encode() to utility.c and updated ReadInlineImage() in magick/constitute.c to use Base64Decode().

2002-03-01 Cristy <cristy@mystic.es.dupont.com>

- GetTypeInfoByFamily() null pointer fault (reported by Bob Friesenhahn).
- Added module version number (patch by Glenn Randers-Pehrson).

2002-03-01 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- image->matte was not being set when reading GRAY-ALPHA PNG files.

2002-02-26 Cristy <cristy@mystic.es.dupont.com>

- Potential infinite loop in SyncBlob() (reported by Vladimir Faiden).

2002-02-26 Cristy <cristy@mystic.es.dupont.com>

- Gravity not respected when drawing text with the convert program.

2002-02-21 Cristy <cristy@mystic.es.dupont.com>

- MPEG multi-part filenames require an embedded %d, not %lu.
- WriteStream() did not write to fifo (thanks to William Radcliffe).

2002-02-20 Cristy <cristy@mystic.es.dupont.com>

- Annotation did not support SJIS properly (patch provided by Katsutoshi Shibuya).

2002-02-18 Cristy <cristy@mystic.es.dupont.com>

- Fixed memory overrun with -format option of the mogrify program.
- Labels were not positioned correctly for VID format.

2002-02-16 Cristy <cristy@mystic.es.dupont.com>

- Replaced -copy/-replace options with +/-write in the convert program.
- Median filtering speed enhancement using skip list contributed by Mike Edmonds.

2002-02-14 Cristy <cristy@mystic.es.dupont.com>

- Command line options now stay in effect for any image in command line order until a another option is encountered or if -noop is specified.

2002-02-07 Cristy <cristy@mystic.es.dupont.com>

- SVG coders understands inline images.

2002-02-06 Cristy <cristy@mystic.es.dupont.com>, Glenn Randers-Pehrson

- Made -scene consistent across all utilities. -snaps replaces previous functionality of -scene for import program.

2002-01-30 Cristy <cristy@mystic.es.dupont.com>

- Correctly draw arc when arc end/start are not integer (patch contributed by Giuliano Pochini).

2002-01-28 Cristy <cristy@mystic.es.dupont.com>, Glenn Randers-Pehrson

- Geometry strings respect -gravity (e.g. -gravity SouthWest -crop 100x100).
- Postive offsets in geometry strings move within the image canvas with respect to the gravity (SouthWest gravity is similar to Postscript page offsets).

2002-01-24 Cristy <cristy@mystic.es.dupont.com>

- Use -trim to trim the edges of an image.
- Palm pixmap supported contributed by Christopher R. Hawks.
- Added -mask to the convert/mogrify programs to add clips masks to an image.

2002-01-21 Cristy <cristy@mystic.es.dupont.com>

- Fixed occasional small memory leak associated with exceptions.
- Persistent cache is no longer updated (MPC coder).

2002-01-20 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Fixed some bugs in the uncompressed PGM and PPM reader/writer (pnm.c).

2002-01-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac: Removed test for libwmf/font.h.

2002-01-13 Leonard Rosenthol <leonardr@lazerware.com>

- More bug fixes and improvements in PSD writer.

2002-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/magic.mgk: Added entries for detecting PFA and PFB formats. Is this file used for anything anymore?
- coders/modules.mgk: Add support for PFA fonts.
- coders/ttf.c (RegisterTTFImage): Add support for PFA fonts.
- magick/annotate.c (RenderType): Add support for PFA fonts.

2002-01-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Modified type.mgk so that it may include the additional files type-windows.mgk, type-solaris.mgk, and type-ghostscript.mgk depending on the operating system used, and the font files available.

2002-01-11 Leonard Rosenthol <leonardr@lazerware.com>

- PSD now supports writing layered images and IPTC data
- Fixed some bugs in XCF

2002-01-11 Cristy <cristy@mystic.es.dupont.com>

- Added image list methods to the API.

2002-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- configure.ac : Renamed configure option --with-ttf-fontpath to --with-fontpath since ImageMagick loads more than TrueType fonts.
- ChangeLog : Renamed Changelog.txt to ChangeLog in order to conform to GNU and open-source standards.

2002-01-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Makefile.am : $(DESTDIR) already contains trailing '/'.

2002-01-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/wmf.c (wmf_magick_device_begin): Fix non-opaque fills. Now properly fills with texture image.

2002-01-05 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- Fixed an out-of-bounds memset() and two other memory overruns when decoding 1-bit AVI, BMP, and DIB images.

2002-01-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Fix lcms header inclusion in transform.c.

2002-01-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/wmf.c (magick_brush): Fixed bug with setting fill color.

2002-01-03 Cristy <cristy@mystic.es.dupont.com>

- Postscript Level II is now DCS compliant.

2001-12-28 Leonard Rosenthol <leonardr@lazerware.com>

- Even more features and options were added to conjure
- Added CropBox support to PDF writer

2001-12-26 Leonard Rosenthol <leonardr@lazerware.com>

- Conjure now supports having a list of files for the script to process being passed on the command line.
- More features and options were added to conjure

2001-12-25 Leonard Rosenthol <leonardr@lazerware.com>

- Made a huge number of improvements to conjure. It now supports over 15 different commands for manipulating your images.

2001-12-24 Cristy <cristy@mystic.es.dupont.com>

- Started a new scripting language utility, conjure.

2001-12-20 Cristy <cristy@mystic.es.dupont.com>

- Display the search path in the event a utility cannot find a particular configuration file (thanks to billr@corbis.com)

2001-12-14 Leonard Rosenthol <leonardr@lazerware.com>

- Fixed some bugs in the new composite operators.

2001-12-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added native BLOB support to coders/wmf.c.

2001-12-13 Leonard Rosenthol <leonardr@lazerware.com>

- Added new composite operators to support PSD/XCF layer compositing: NoCompositeOp, DarkenCompositeOp, LightenCompositeOp, HueCompositeOp, SaturateCompositeOp, ValueCompositeOp, ColorizeCompositeOp, LuminizeCompositeOp, ScreenCompositeOp, OverlayCompositeOp.
- Modified the PSD coder to set the appropriate composite operator.
- Modified the XCF coder to set the appropriate composite operator.

2001-12-10 Cristy <cristy@mystic.es.dupont.com>

- Removed the flatten option from ImageInfo.
- Added new compose member to ImageInfo that defines which of the composite operators to use when flattening an image.

2001-12-09 Leonard Rosenthol <leonardr@lazerware.com>

- Added new member to ImageInfo, flatten, used by PSD and XCF to determine whether to flatten an image when read.
- PSD and XCF now respect image_info->flatten.
- Fixed bug in XCF loader when loading layered image as layers.
- Modified the convert program to set image_info->flatten if -flatten is specified; we still call FlattenImages for other formats that don't respect image_info->flatten.
- Modified Magick++'s Image class to support image_info->flatten.

2001-12-08 Leonard Rosenthol <leonardr@lazerware.com>

- Improvements to the Photoshop (PSD) coder: 1) added support for Duotone images loaded as grayscale as per PSD docs; and 2) added option to composite layers when reading respects layer visibility setting.

2001-12-07 Cristy <cristy@mystic.es.dupont.com>

- -dissolve wasn't working for the composite program (thanks to Rick Manbry).
- DCM coder failed to read a valid DCM image file.

2001-12-06 Cristy <cristy@mystic.es.dupont.com>

- Stream buffer was not being freed in ReadStream().

2001-12-05 Cristy <cristy@mystic.es.dupont.com>

- Corrected bias when downsizing an image with ResizeImage().

2001-11-25 Cristy <cristy@mystic.es.dupont.com>

- AcquireImagePixels() can accept (x,y) outside the image area (e.g. AcquireImagePixels(image,-3,-3,7,7,exception)).

2001-11-22 Cristy <cristy@mystic.es.dupont.com>

- Added limited SVG gradient support.

2001-11-21 Cristy <cristy@mystic.es.dupont.com>

- Added API method, PingBlob().

2001-11-14 Cristy <cristy@mystic.es.dupont.com>

- Moved a few pixel related defines (e.g. Downscale()) to a corresponding method to enforce strong type checking at compile time.

2001-11-12 Cristy <cristy@mystic.es.dupont.com>

- Previously ImageMagick did not write 8-bit ASCII PPM/PGM files when QuantumDepth == 16.
- Added 'id' as an image attribute in PerlMagick (returns ImageMagick registry ID).

2001-11-10 Cristy <cristy@mystic.es.dupont.com>

- Added SVG pattern support.
- Changed default background color to none.

2001-11-06 Cristy <cristy@mystic.es.dupont.com>

- Added support of reading and writing 16-bit raw PPM/PGM files.

2001-11-05 Cristy <cristy@mystic.es.dupont.com>

- Added -level to convert/mogrify (suggested by mericson@phillynews.kom).

2001-11-04 Cristy <cristy@mystic.es.dupont.com>

- -shadow/-shade were not distiguished.

2001-11-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- PerlMagick/Makefile.PL.in: Install PerlMagick using ImageMagick's configure prefix.

2001-11-02 Cristy <cristy@mystic.es.dupont.com>

- Typecast offset to unsigned long in coders/pdf.c.

2001-11-01 Cristy <cristy@mystic.es.dupont.com>

- Convert's -flatten, -average, etc. failed with an assert error.

2001-10-30 Cristy <cristy@mystic.es.dupont.com>

- Added support for On-the-air bitmap.

2001-09-29 Glenn <randeg@alum.rpi.edu>

- When the delay setting for an image is greater than 4cs, duplicate frames are inserted to achieve the desired delay while creating MPEG files (contributed by Lawrence Livermore National Laboratory (LLNL)).

2001-10-29 Cristy <cristy@mystic.es.dupont.com>

- ImageMagick now has a registry for storing image blobs.

2001-10-26 Cristy <cristy@mystic.es.dupont.com>

- Added VMS patches (thanks to Jouk Jansen).

2001-10-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Fixed parsing bug for decorate #FFFFFF.

2001-10-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Added tests for mpeg2 library to configure.

2001-10-22 Cristy <cristy@mystic.es.dupont.com>

- Added a MPEG coder module.
- Added ImageType member to the image_info structure (suggested by Glenn)

2001-10-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Eliminated libMagick.so dependency on libxml by not listing -lxml when doing modules link.

2001-10-18 Cristy <cristy@mystic.es.dupont.com>

- Eliminated the libMagick.so dependancy on libtiff by moving Huffman2DEncodeImage() from magick/compress.c to coders/pdf.c, coders/ps2.c and coders/ps3.c (suggested by Bob Friesenhahn). This change has the side-effect of elminating dependency on libpng and libjpeg as well (which libtiff may depend on).

2001-10-16 Cristy <cristy@mystic.es.dupont.com>

- Convert now supports -channel {Cyan,Magenta,Yellow,Black}.

2001-10-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/wmf.c updated for libwmf 0.2. Plenty of bugs remain within.

2001-10-11 Cristy <cristy@mystic.es.dupont.com>

- QueryFontMetrics() of PerlMagick now recognizes embedded special characters (e.g. %h).

2001-10-10 Cristy <cristy@mystic.es.dupont.com>

- Fixed seg-fault for PingImage() on a JP2 image file.

2001-10-07 Cristy <cristy@mystic.es.dupont.com>

- CloneImage() now uses a referenced counted pixel cache.

2001-10-05 Cristy <cristy@mystic.es.dupont.com>

- Added AcquireImagePixels() method.
- Changed the formal parameter from Image * to const Image * for a number of methods (e.g. ZoomImage()).
- Added ExceptionInfo parameter to DispatchImage().

2001-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- Find libxml headers under Debian Linux (bug ID 921).

2001-10-02 Cristy <cristy@mystic.es.dupont.com>

- Fixed assertion error on drawing stroked text.

2001-10-01 Cristy <cristy@mystic.es.dupont.com>

- Added blob test to the PerlMagick test suite.

2001-09-30 Cristy <cristy@mystic.es.dupont.com>

- switched strcpy to strncpy to help protect against buffer overflow.
- ltdl.c passed int reference but a long was needed; caused a fault on Solaris 64-bit compiles.

2001-09-25 Cristy <cristy@mystic.es.dupont.com>

- Removed most lint complaints from the source.
- strtod() returns different results on Linux and Solaris for 0x13.
- Added a MATLAB encoder contributed by Jaroslav Fojtik.

2001-09-21 Cristy <cristy@mystic.es.dupont.com>

- Replaced TemporaryFilename() with UniqueImageFilename().
- ImageMagick CORE API is now 64-bit clean.

2001-09-20 Cristy <cristy@mystic.es.dupont.com>

- Fixed svg.c to accept a viewbox with a negative offset.

2001-09-15 Cristy <cristy@mystic.es.dupont.com>

- Surveying the code for 64-bit compatibility.
- The cloned colormap was too small (reported by Glenn).
- A blob was being unmapped more than once for multi-frame images.

2001-09-12 Cristy <cristy@mystic.es.dupont.com>

- Text drawing now handles UTF8-encoding.
- Off-by-one GetImagePixels() fix in draw.c
- PingImage() now reports attributes for all images in an image sequence.

2001-09-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/image.h: Rename QuantumLeap define to QuantumDepth. QuantumDepth is set to the values 8 or 16, depending on user configuration option.

2001-09-09 Cristy <cristy@mystic.es.dupont.com>

- Updated PerlMagick signatures to reflect new message digest algorithm.

2001-09-08 Cristy <cristy@mystic.es.dupont.com>

- ImageMagick defaults to 16-bit quantum. Set QuantumMagick for 8-bit.
- Changed image->blob from BlobInfo to BlobInfo* so the Image structure size is not dependent on the large-file preprocessor defines.

2001-09-07 Cristy <cristy@mystic.es.dupont.com>

- Added -background to convert program usage text.
- DispatchImage() now properly handles grayscale images.

2001-09-01 Glenn <randeg@alum.rpi.edu>

- The compression quality setting is now recognized when creating MPEG images (contributed by Lawrence Livermore National Laboratory (LLNL)).

Copyright (C) 2003 GraphicsMagick Group

This program is covered by multiple licenses, which are described in Copyright.txt. You should have received a copy of Copyright.txt with this package; otherwise see http://www.graphicsmagick.org/www/Copyright.html.

Copyright © GraphicsMagick Group 2002, 2003, 2004