[Home] [Mission Statement] [Download] [Installation] [CVS] [Mailing Lists] [FAQ] [Formats] [News ] [ChangeLog] [Report Bugs] [Utilities] [Programming] [Books] [Links] |
Search GraphicsMagick site

GraphicsMagick 1.0.3 ChangeLog

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

- GraphicsMagick 1.0.3 released.
- index.html: Changed version to 1.0.3.
- NEWS: Updated NEWS to reflect fixes since 1.0.2.
- version.sh (PACKAGE_RELEASE_DATE): Updated release date to today's date.
- VisualMagick: Incorporate configure/build improvements from the 1.1 development version. This fixes build dependency problems and supports building the coders as a static library to improve build times.

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

- 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.

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

- magick/blob.c (BlobToImage): Skip calling SetImageInfo() if magick is already set.

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

- 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-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- coders/clipboard.c, coders/emf.c, coders/tiff.c, coders/wmf.c, coders/xcf.c, coders/xtrn.c, magick/magick.c, magick/nt_base.c, magick/resource.c: Use traditional C comments in C source files.

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

- www/programming.html: Update Rmagick URL.

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

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

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

- magick/log.c (LogMagickEvent): Unlock semaphore before returning.

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 to include current changes since 1.0.2.

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-06-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- INSTALL-unix.txt: Add additional information regarding LZW.

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

- coders/bmp.c (ReadBMPImage): Only validate the file size value for compressed BMPs.

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

- version.sh: Update to unreleased 1.0.3 so that development builds from CVS do not interfere with existing 1.0.2 release library.
- 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>

- GraphicsMagick 1.0.2 released.
- magick/command.c (ConvertImageCommand): Eliminate warnings noticed with Sun compiler.
- acinclude.m4: Add '#undef inline' in front of C++ tests.
- coders/x.c (RegisterXImage): Only register the X coder if HasX11 is defined.
- libxml/libxml2.def: Since VisualMagick configure is not fixed yet, add "LIBRARY CORE_RL_libxml_.dll" to the top of the file to at least cover the release build case.

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/log.c (ReadConfigureFile): Move event parsing to ParseEvents funtion.
  (SetLogEventMask): Move event parsing to ParseEvents funtion.
- 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.
- magick/utility.c (GetGeometry): Validate that the geometry string only contains valid characters.
- Magick++: Updates to cause exceptions to be thrown if a bad geometry specification is supplied.

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 Glenn Randers-Pehrson <randeg@alum.rpi.edu>

- png.c: Merge bugfixes from 1.1 branch:
- 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.
- coders/png.c: png.c would dump core when writing a grayscale image in png24 or png32 format.

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

- magick/version.h.in: Change to be Copyright (C) 2002, 2003.
- NEWS: Updated to incorporate changes since the 1.0 release.
- version.sh: Bump library revision and release version since code updates have been made.
- libxml/libxml2.def: Remove 'LIBRARY libxml2' statement which confuses Visual C++ 6.0.

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

- coders/viff.c (RegisterVIFFImage): Module definition for "XV" was missing.
- coders/ps2.c (RegisterPS2Image): Module definition for "PS2" was missing.
- 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-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>

- magick/command.c (MogrifyImageCommand): Wrong exception macro was being invoked. Steps have been taken to ensure that this doesn't happen again.
  (ImportUsage): Fix spelling of 'type'.

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

- coders/ept.c (WriteEPTImage): Fixed writing EPT preview image and added logging.
- PerlMagick/Magick.xs: Fix spelling of 'elevation' argument to Shade method.
- 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.
- magick/GraphicsMagick-config.in: Added example usage to the help output.
- magick/type.c (GetTypeBlob): Search $MAGICK_HOME for type.mgk.
- 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/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.

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

- GraphicsMagick 1.0.1 released.
- version.sh (PACKAGE_RELEASE_DATE): Update for 1.0.1 release.
- index.html: Adjust width setting for magick.png.
- coders/logo.c: Update to use temporary frog logo image until official logo image is available.
- magick/magick_config_api.h.in: Add HasX11 so installed xwindow.h works.
- images: Replace logo images with temporary frog logo image.

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

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

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

- version.sh (CHANGE_DATE): Update to reliable awk-based technique to extract the latest change date from the ChangeLog file.
- Makefile.am (EXTRA_DIST): QuickStart.txt and QuickStart.html have not been updated, and are misleading, so they are removed.

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

- 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-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)).

Image manipulation software that works like magic.