GraphicsMagick 1.3.8 ChangeLog (2005)

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

- tiff: Update to libtiff 3.8.0.

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

- NEWS: Updated with latest changes.
- tiff: Update to libtiff 3.7.4.

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

- lcms: Update to lcms 1.15.

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

- magick/enhance.c (LevelImage): Fix -level command parsing when a percent symbol is supplied within the argument rather than at the end.
- magick/utility.c (GetGeometry): Bounds-check geometry string length.

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

- coders/dpx.c: Decided to swap 10-bit subsampled 4:2:2 YCbCr by default since this is what practically all sample files I have been provided actually do. Ignore the fact that there is nothing in the standard which supports this.

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

- magick/command.c (NormalizeSamplingFactor): Generalized subsampling notation parsing support.

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

- magick/command.c (NormalizeSamplingFactor): Add some support for normalizing industry-standard subsampling notation (e.g. 4:2:2) into GraphicsMagick's unusual notation.

2005-12-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>

- Updates to use latest development autotools, including development libtool 2.0.

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

- magick/image.h: Added some useful macros for accessing PixelPacket members in a generic way.
- coders/dpx.c (ReadDPXImage): For YCbCr with 'A' sample, 'A' sample levels are like Luma.
  (WriteDPXImage): For YCbCr with 'A' sample, 'A' sample levels are like Luma.

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

- coders/tiff.c (RegisterTIFFImage): Report libtiff release version rather than ABI version.

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

- magick/resize.c: Revert yesterday's benign-appearing edits since they caused a bizzare bug.

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

- coders/dpx.c (ReadDPXImage): Improve performance when reading YCbCr files. Handle files which use Printing Density on top of YCbCr. Default YCbCr to Rec.709 if the transfer characteristic is User Defined.
- coders/pcd.c (Upsample): Moved Upsample from gem.c to here since PCD is the only user and it is not a general purpose function.

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

- VisualMagick/magick/magick_config.h.in: Remove unnecessary test for WIN32.

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

- wand/magick_compat.c (FormatMagickStringList): MagickExport since this function is used by Ch extension.
- magick/log.c (LogMagickEventList): MagickExport since this function is used by Ch extension.
- magick/utility.c (FormatStringList): MagickExport since this function is used by Ch extension.
- coders/dpx.c (ReadDPXImage): Added support for dpx:swap-samples define in order to handle files with Cb and Cr swapped. Fixed a bug in the header reading which caused some valid files to fail to read at all.
  (WriteDPXImage): Added support for dpx:swap-samples define in order to write files with Cb and Cr swapped.
- magick/profile.c (ProfileImage): Add support for ICC CMS profiles in YCbCr space.

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

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

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

- magick/image.h (Image): Added an orientation member to the Image structure to record image orientation for the DPX, and TIFF formats. Eventually formats which support IPTC and EXIF embedded profiles should be supported by the orientation member as well.

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

- VisualMagick/magick/magick_types.h.in: Add patch for Ch.
- magick/command.c (TransmogrifyImage): Complete re-write of mogrify file handling. Former version wrote to a temporary file and then moved temporary file to replace original if necessary. New version moves an existing writable file to a backup file with tilde ('~') added to end of file name, writes to the final output file name, and removes the backup file on success. The new approach satisfies formats which embed the output name in the file (e.g. the DPX format) and still works when the output file exists and is writeable, but is in non-writeable directory. The previous approach would fail if the output file exists and is writable, but the directory is not writeable.

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

- coders/dpx.c (AttributeToString): Use strncpy rather than strlcpy to copy string. This is important since DPX header strings are not null terminated and may need to fill all available space. Certain short header fields like mp.film.manufacturer.id, mp.film.type, and mp.perfs.offset were being truncated!

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

- magick/attribute.c (GetImageAttribute): Add more general support for retrieving wildcarded attributes so that an identify -format specification like '%[dpx:*]' works as expected.
- coders/tiff.c (WriteTIFFImage): Transform quality value into zip compression quality level similar to what is done for MIFF/MNG/PNG. Since default quality value is 75, this means that the default zip quality level is 7.

2005-09-24 Peter Wu <peterw@softintegration.com>

- Incorporate changes necessary so that GraphicsMagick can work with the Ch C/C++ interpreter from SoftIntegration at http://www.softintegration.com/.

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

- magick/pixel_cache.c: Incorporate all functionality from cache.c, cache_view.c, and stream.c so that all private interfaces can be fully hidden. As a result cache.c, cache_view.c, and stream.c are now removed.

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

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

2005-09-18 Stepan Kasal <kasal@ucw.cz>

- Makefile.am (BUILT_SOURCES): Removed.
- magick/Makefile.am (MAGICK_BUILT_SRCS): Removed, too.

2005-09-12 Glenn Randers-Pehrson <glennrp@glennrp.com>

- magick/profile.c (ProfileImage): Free color_profile->name and iptc_profile->name when destroying the profile.

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

- magick/api.h: Eliminate requirement to include certain system headers prior to including <magick/api.h>.
- utilities/gm.c: Move utility implementation to GMCommand() in command.c

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

- coders/dpx.c: Added support for reading and writing DPX Luma files using proper video levels.
- magick/colorspace.h (enum ColorspaceType): Decided that GRAYColorspace should be reserved for full-range grayscale data while Rec601LumaColorspace and Rec709LumaColorspace should be for video colorspaces. Therefore, GRAYColorspace is no longer a synonym for Rec601LumaColorspace.
- magick/colorspace.c: Added support for influencing Cineon Log colorspace transformations via image attributes. Perform colorspace transformations in floating point rather than integer in order to reduce the amount of noise added by transform table quantization.
- coders/psd.c (WritePSDImage): Ensure that output image is 8 or 16-bits regardless of specific image depth.
- coders/dpx.c: Added support for planar YCbCr 4:2:2.

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

- coders/dpx.c (WriteDPXImage): 10 and 12-bit packed data was not according to DPX specification. Added dpx:pixel-endian={lsb|msb} to allow the user to specify the endian order of the pixel data in case it does (or should not) not match the headers. Library Of Congress format is 10-bit packed data in big-endian format, but is marked as little-endian.

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

- coders/dpx.c: Sample order for filled 10 bit samples matches DPX specification (was intentionally reversed). RGB sample order is changed to match DPX specifiation (i.e. BGR rather than RGB). Disabled special support for Library Of Congress little-endian 10-bit packed format.

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

- coders/dpx.c: Extend all image rows to a 32-bit integer boundary.

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

- coders/dpx.c: Support the little-endian 10-bit packed format as used by the Library Of Congress.

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

- coders/jp2.c: Change how Jasper is intialized. Hopefully eliminate memory leak when reading ICC color profile.
- Overall: Compilation warning elimination with GCC 4.0.1.
- magick/utility.c (SystemCommand): Always report error status if a command fails.

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

- zlib: Updated to version 1.2.3.
- coders/dpx.c: Use TriangleFilter for scaling chroma.

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

- coders/dpx.c: Support proper encode and decode of YCbCr video levels.
- magick/colorspace.c: Support Rec709YCbCrColorspace colorspace.

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

- magick/{animate.c, display.c, import.c, xwindow.c}: Rename all symbols starting with 'X' so that they are prefixed with 'Magick'. This eases maintenance since it is almost impossible to understand code which pretends to be the X11 libraries. The few programs which use the GraphicsMagick 'X' functions will need to alter the symbol names they use. Sorry.
- magick/command.c (DisplayImageCommand): Don't invoke XrmDestroyDatabase() to destroy the resource database associated with the display since it seems that XCloseDisplay() does this for us.
- magick/image.c (DisplayImages): Don't invoke XrmDestroyDatabase() to destroy the resource database associated with the display since it seems that XCloseDisplay() does this for us.
- coders/uyvy.c: Enforce image width restrictions.
- coders/dpx.c: Enforce image width restrictions when subsampling.

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

- coders/dpx.c: Support reading and writing subsampled CbYCr images. Colorimetery is not right yet.
- magick/colorspace.h (enum Rec709YCbCrColorspace): New enumeration for Rec. 709 YcBCr colorspace.

2005-06-21 Glenn Randers-Pehrson <glennrp@glennrp.com>

- coders/png.c: Fixed a problem with reading 16-bit PNG images using the Q8 quantum depth.

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

- coders/dpx.c (ReadDPXImage): Add read support for CbYCr at 4:4:4. (WriteDPXImage): Add write support for CbYCr at 4:4:4.

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

- coders/dpx.c (WriteDPXImage): Only preserve source image dimension and offset information if image size has not changed. If image size has changed, the existing information may become invalid.
  (WriteDPXImage): Allow user to assign DPX header attribute values using syntax like "-define dpx:mp.frame.position=1000".

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

- coders/fpx.c: Fix compilation problem due to additional ExportImagePixelArea parameter.

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

- coders/png.c (WriteMNGImage): Use -define mng:need-cacheoff to write a libmng-specific nEED request to disable frame buffering. This allows the MNG data to stream without increasing memory consumption in the libmng client.

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

- coders/dpx.c (SMPTEStringToBits): Time code and user bits were being displayed in wrong order on little endian CPUs. Thanks very much for bug report from Jason Howard. (SMPTEStringToBits): Similar fix for time code and user bits string to binary.

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

- coders/miff.c (ReadMIFFImage): Use StringToColorspaceType() to parse colorspaces.
- coders/dpx.c (ReadDPXImage): Change existing dpx:source-colorspace define to dpx:colorspace so it is easier to remember.
- coders/cineon.c (ReadCINEONImage): Extract Cineon header attributes in DPX compatible form so that it is possible to convert Cineon to DPX while losing as little header information as possible. Allow the user to set the existing image colorspace using the cineon:colorspace define.

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

- coders/jpeg.c (ReadJPEGImage): Report actual depth of JPEG file (8 or 12 bits).
- coders/cineon.c (ReadCINEONImage): Report depth as 10 bits.

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

- coders/dpx.c: Retrieve and restore the DPX user defined data area. Make available as a "DPXUSERDATA" attached profile.

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

- coders/meta.c (ReadMETAImage): Fixed reading ICM color profile files. Due to a typo ICM color profiles were being stored as IPTC profiles. This restores proper operation of the -profile option. (ReadMETAImage): Fix double free bug. Hopefully does not result in a memory leak in other cases.

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

- magick/image.c (DescribeImage): If the image is DirectClass, then don't compute the number of unique colors unless verbose is greater than one. This change is made since computing the number of unique colors may take hours for some images. The handling of the -verbose argument is changed so that it is cumulative. Specifying -verbose multiple times increases the level of verbosity.

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

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

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

- coders/dpx.c (ReadRowSamples): Added necessary masking necessary in order to cleanly retrieve DPX 10 bit samples. Happened to work properly without the masking with QuantumDepth=16.

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

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

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

- coders/jp2.c (ReadJP2Image): Return JP2 images as DirectClass grayscale rather than PseudoClass.
- coders/gray.c (ReadGRAYImage): Return GRAY images as DirectClass grayscale rather than PseudoClass.
- coders/dpx.c: Rewrote the DPX pixel reading/writing code yet again to obtain up to 2X better performance. In the process, support little-endian pixel storage.

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

- coders/dpx.c: Added some performance optimizations for reading and writing. Write the motion picture and television headers.
- magick/colorspace.c (TransformRGBImage): Update image colorspace to RGB when transforming from Cineon log space to RGB.
- coders/dpx.c (WriteDPXImage): Set image date & time field. (ReadDPXImage): Retrieve television header SMTPE time code and user bits and return them as a formatted string. (WriteDPXImage): Fix colorspace mapping logic. Was converting Cineon log to RGB when it shouldn't be.

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

- coders/dpx.c (WriteDPXImage): Default to big-endian output.
- magick/delegate.c (InvokePostscriptDelegate): Improved Ghostscript API-based error reporting and logging.
- magick/attribute.c (GenerateEXIFAttribute): Extend EXIF knowledge a bit. Pass more characters from EXIF_FMT_BYTE in case the byte stream contains nulls.
- coders/dpx.c: Re-wrote the DPX read/write support in order to hopefully surmount problems noticed when testing with files sent to me.
- wand/pixel_wand.c (PixelSetYellowQuantum): Wrong PixelPacket member was being set. Thanks to Cristy for the heads-up.
- magick/image.c (SetImageType): Revert change from 2005-03-12. Some coders require that when the image is set to Bilevel type, that it be PseudoClass.

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

- utilities/tests/convolve.sh: Add a convolution parameter.

2005-04-28 Glenn Randers-Pehrson <glennrp@glennrp.com>

- magick/command.c: "IsGeometry() test was rejecting valid -convolve parameters. Also, the image returned by ConvolveImage() was ignored.

2005-04-25 Glenn Randers-Pehrson <glennrp@glennrp.com>

- coders/png.c: Initialize several variables to avoid new GCC 4.0.0 warnings.
- coders/pnm.c: Defend against malicious "P7" files that try to set the colormap less than 256 bytes (bug fix from ImageMagick)

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

- coders/dpx.c (WriteDPXImage): Fill out source information header.
- Magick++: Added image leveling methods for Magick++.

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

- NEWS: Update with latest news.
- magick/blob.c (WriteBlob): Move BlobStream write support to a subroutine for easier maintenance.
- coders/dpx.c (ReadDPXImage): Support retrieving all DPX attributes as image attributes. (WriteDPXImage): Buffer writes for better performance on some platforms.

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

- coders/dpx.c (WriteDPXImage): Re-write sample marshalling to be based on a series of tighter loops. Results in a small performance increase.
  (ReadDPXImage): Re-write sample marshalling to be based on a series of tighter loops. Results in a small performance increase.

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

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

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

- magick/magick_endian.h: Renamed from endian.h in order to avoid conflict with system headers.

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

- coders/miff.c (WriteMIFFImage): Normalize image depth to 8/16/32.
- coders/gray.c (WriteGRAYImage): Normalize image depth to 8/16/32.
- coders/fits.c (WriteFITSImage): Normalize image depth to 8/16.
- tests/Makefile.am: Extended read/write tests to include 10, 12, and 16-bit original test images.
- coders/dpx.c (ReadDPXImage): If samples are log encoded, then set the image to CineonLogRGBColorspace. (WriteDPXImage): If image samples are log encoded, then mark DPX file as being log encoded.
- magick/colorspace.c (TransformRGBImage): Support translation from log RGB to linear RGB based on Cineon guidelines. (RGBTransformImage): Support translation from linear RGB to log RGB.
- magick/colorspace.h (enum CineonLogRGBColorspace): New enumeration to record that the RGB values are log encoded in a 2.048 density range as defined for the Cineon Digital Film System.

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

- magick/command.c: Take advantage of ColorspaceTypeToString() and StringToColorspaceType() functions in implementation.
- magick/colorspace.c (RGBTransformImage): Added support for converting to Rec 709 grayscale colorspace. (ColorspaceTypeToString): New function to translate from ColorspaceType enumeration value to a string. (StringToColorspaceType): New function to translate from a string to a ColorspaceType enumeration value. * magick/colorspace.h (enum Rec601LumaColorspace): New enumeration to support the Rec 601 grayscale colorspace. This is the colorspace previously represented by GRAYColorspace. If GRAYColorspace is specified, then Rec601LumaColorspace is selected. (enum Rec709LumaColorspace): New enumeration to support the Rec 707 grayscale colorspace.

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

- magick/command.c (IdentifyImageCommand): Use +ping to force identify to read the image pixels.
- magick/constitute.c (PingImage): Intentionally clear user/elapsed timer when ping is used on an image since the results are misleading.
- magick/image.c (DescribeImage): Only display pixel read rate if the time accumulated is at least the timer's resolution.
- magick/cache.c (OpenCache): Fix a memory resource leak noticed by Stefan v. Wachter <svwa-dev@mnet-online.de>. This error with keeping track of resources may eventually cause GraphicsMagick to run slower and slower due to using disk-based images rather than memory-based images.

2005-04-07 Glenn Randers-Pehrson <glennrp@glennrp.com>

- coders/png.c: encoder now accepts image->depth other than 8 and 16.

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

- coders/dpx.c (WriteDPXImage): First pass at a new SMPTE268M-2003 DPX writer.

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

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

2005-03-31 Glenn Randers-Pehrson <glennrp@glennrp.com>

- coders/jpeg.c: revised EOF test. It was rejecting good image files. Needs more work.

2005-03-30 Glenn Randers-Pehrson <glennrp@glennrp.com>

- coders/pnm.c (ReadPNMImage): Throw a "Corrupt Image" exception if EOF is encountered while reading scanlines in P1, P2, P3, or P4 formatted images (P5 and P6 were OK).

2005-03-29 Glenn Randers-Pehrson <glennrp@glennrp.com>

- coders/sgi.c (ReadSGIImage): Throw a "Corrupt Image" exception if EOF is encountered while reading scanlines.

2005-03-28 Glenn Randers-Pehrson <glennrp@glennrp.com>

- coders/jpeg.c (ReadJPEGImage): Throw a "Corrupt Image" exception if EOF is encountered while reading scanlines.
- coders/pcx.c (ReadPCXImage): Throw a "Corrupt Image" exception if EOF is encountered while reading pixels.

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

- coders/dpx.c (ReadDPXImage): First pass at a new SMPTE268M-2003 DPX reader.
- magick/bit_stream.h (WordStreamLSBRead): New function to parse values from a stream which is defined by 32-bit words. Values are read starting with the least significant bits.

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

- coders/tiff.c (ExtensionTagsInitialize): Fix conditional use of TIFFSetTagExtender().

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

- magick/endian.c: Imported libtiff's swab.c since its functions are so useful and well-tested.
- magick/utility.c (FormatSize): Extend to support incredibly large sizes.
- magick/image.c (DescribeImage): Use GetTimerResolution() when computing pixels-per-second rate in order to avoid computing astronomical rates when the time consumed is too small to measure.
- magick/timer.c (GetTimerResolution): New function to return the timer's resolution.

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

- coders/pdf.c (WritePDFImage): Eliminate cause of annoying warning when PDFs are read by Ghostscript 8.5.

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

- magick/nt_base.h (lt_dlerror): Needed to provide a mapping to NTdlerror().
- coders/tiff.c (TIFFErrors): Update to make thread safe via thread specific data.
  (TIFFWarnings): Update to make thread safe via thread specific data.
- magick/tsd.c (MagickTsdKeyCreate): New function to support thread specific data.
  (MagickTsdKeyDelete): ditto
  (MagickTsdSetSpecific): ditto
  (MagickTsdGetSpecific): ditto.

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

- magick/image.c (ReplaceImageColormap): New function to replace the image colormap with a user-provided one. Colormap indexes are adjusted to point to identical colors in the new colormap.
- magick/nt_base.h: Reorganized a bit to cluster code supporting similar features in the same area of the header.
- magick/nt_base.c: Renamed wrappers for standard functions so that they have the prefix 'NT'. Macros are used to apply the new names. This assures that there will not be conflicts if the library is linked with a different package's wrapper functions.

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

- magick/quantize.c (GrayscalePseudoClassImage): Moved to here from image.c. Added support for is_monochrome.

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

- jp2: Updated Jasper library to version 1.701.0.
- magick/nt_base.c (NTGhostscriptFonts): Fixed a coding error which was added when strcpy/strcat code was replaced with strlcpy/strlcat. Ghostscript fonts were not being found.
- magick/constitute.c (ReadImage): Don't attempt to access image members if image pointer is null. Oops!

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

- magick/image.c (SetImageType): Bilevel image is not required to be PseudoClass type.
- coders/mpc.c (WriteMPCImage): Persist is_monochrome and is_grayscale flags.
  (ReadMPCImage): Restore is_monochrome and is_grayscale flags.
- magick/constitute.c (WriteImage): Extended logging to include monochrome and grayscale flags. (ReadImage): Extended logging to include monochrome and grayscale flags.
- magick/image.c (DescribeImage): Include the effective pixel I/O rate alongside the image read/write time. This provides an easier way to evaluate image read/write performance when looking at 'identify' or 'convert -verbose' output.
- coders/sun.c (ReadSUNImage): Ensure that pixel length value does not overflow for large images.

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

- magick/cache.c (SetImagePixels): Improved documentation. (GetImagePixels): Improved documentation.

2005-03-10 Glenn Randers-Pehrson <glennrp@glennrp.com>

- coders/png.c: Avoid attempting to write indexed PNG when a color entry has more than one opacity level. The PNG format supports this but GM's colormap does not, so erroneous files were being written.

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

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

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

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

2005-03-07 Mike Chiarappa <mikechiarappa@libero.it>

- BCBMagick\magick\GM_magick.bpr: Updated to reflect changes since last update.
- BCBMagick\magick\libMagick.bpr: Updated to reflect changes since last update.

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

- magick/alpha_composite.h (AlphaComposite): Moved AlphaComposite to new alpha_composite.h header since it was causing porting problems.
- magick/constitute.h (enum QuantumType): Added CIEYQuantum and CIEXYZQuantum quantum import options.
- coders/tiff.c (ReadTIFFImage): Import LogLuv image data within GraphicsMagick (rather than libtiff) so that color resolution is not lost. Results in a small speedup as well.
- magick/constitute.c (ImportImagePixelArea): Add a speed-up for importing bi-level images. Add support for importing pixels in CIE XYZ and CIE Y colorspaces.
- coders/tiff.c (ReadTIFFImage): Support reading TIFF images which fail to properly scale the samples to the sample size (e.g. 12 bits in a 16-bit sample).
  (WriteTIFFImage): Adjustments to strip-size (rows-per-strip) estimation.
- magick/constitute.c (ExportImagePixelArea): Support exporting unsigned samples with values which span only part of the range. For example, 12 bit data may be exported within 16 bit samples, with a value range of 0 to 4095. (ImportImagePixelArea): Support importing unsigned samples with values which span only part of the range.

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

- coders/tiff.c (ReadTIFFImage): Support reading TIFF files in IEEEFP format.
  (WriteTIFFImage): Support writing TIFF files in IEEEFP format.
- magick/constitute.c (ExportImagePixelArea): Support exporting floating point data.
  (ImportImagePixelArea): Support importing floating point data.

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

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

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

- coders/tiff.c (ReadTIFFImage): Read grayscale TIFFs as DirectClass rather than promoting to PseudoClass. Fix improper multiple repeated "disassociate" operations when reading planar images which contain an alpha channel. (WriteTIFFImage): Fix improper multiple repeated "associate" operations when writing planar images with an alpha channel.

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

- win2k/IMDisplay/IMDisplayView.cpp (DoDisplayImage): Use TextureImage to apply background pattern.
- magick/image.c (TextureImage): Alpha blend the texture onto the background if the image has a matte channel.
- magick/constitute.h (enum QuantumType): Eliminated GrayInvertedQuantum and GrayInvertedAlphaQuantum which were added since GraphicsMagick 1.1. Replaced this "inverted" gray functionality with the grayscale_inverted flag in ExportPixelAreaOptions and ImportPixelAreaOptions.
- magick/constitute.c (ExportImagePixelArea): Added an extra parameter for passing seldom used options via an ExportPixelAreaOptions structure. (ImportImagePixelArea): Added an extra parameter for passing seldom used options via an ImportPixelAreaOptions structure. (ExportPixelAreaOptionsInit): New function to initialize the ExportPixelAreaOptions structure with defaults. (ImportPixelAreaOptionsInit): New function to intialize the ImportPixelAreaOptions structure with defaults.
- coders/jpeg.c (WriteJPEGImage): Don't use jpeglib private BITS_IN_JSAMPLE definition to select JPEG bit depth.
- coders/tiff.c (ReadTIFFImage): Support using -define tiff:alpha={unspecified|associated|unassociated} to specify the alpha channel type in case the alpha channel is marked incorrectly.
  Properly read associated alpha images. (WriteTIFFImage): Support using -define tiff:alpha={unspecified|associated|unassociated} to override the alpha channel type.
  Properly write associated alpha images by default.

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

- coders/tiff.c (WritePTIFImage): Ensure that pyramid image frames are the same type as the original image. (WriteTIFFImage): Added support for writing tiled TIFF.

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

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

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

- coders/tiff.c (WriteTIFFImage): Re-wrote TIFF writing code.
- magick/image.h (MaxValueGivenBits): Renamed MaxRGBGivenBits macro to MaxValueGivenBits.
- magick/constitute.h (enum QuantumType): Added UndefinedQuantum.
- magick/static.c (RegisterStaticModules): Support compiling without PNG.

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

- magick/color.c (IsPaletteImage): Fix memory leak reported by Stefan v. Wachter <svwa-dev@mnet-online.de>.
- magick/Makefile.am (MAGICK_INCLUDE_HDRS): Needed to install magick/operator.h.
- coders/tiff.c (ReadTIFFImage): Re-wrote TIFF reading code again for more flexibility and performance.

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

- configure.ac: Remove --disable-lzw option and HasLZW define. LZW support is always enabled now.

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

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

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

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

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

- coders/tiff.c (ReadTIFFImage): Handle extra samples in scanline TIFFs.

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

- magick/image.c (DescribeImage): Report statistics for a virtual gray channel for grayscale images rather than discrete red, green, and blue.
- PerlMagick/Makefile.nt: JNG and JP2 to test list.
- configure.ac: Changed --without-fpx to --with-fpx due to decision to default FlashPIX to 'no'. FlashPIX library is not very portable and is only known to work properly under SPARC Solaris and Windows.
- NEWS: Updated with latest news.
- lcms: Updated to LCMS 1.14.

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

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

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

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

Copyright (C) 2005 GraphicsMagick Group

This program is covered by multiple licenses, which are described in Copyright.txt. You should have received a copy of Copyright.txt with this package; otherwise see http://www.graphicsmagick.org/Copyright.html.