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

	* lib/Image.cpp : Added locking to reference counting to ensure
 	thread (pthread) safety.

	* lib/Blob.cpp : Added locking to reference counting to ensure
 	thread (pthread) safety.

	* lib/LastError.cpp: Added support for thread specific data
 	(pthreads) so that error reporting is thread safe.

	* lib/Magick++/Thread.h: Added thread wrapper class to provide
 	thread-safe locking (pthreads) to Magick++.

2000-01-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* lib/Image.cpp: Added methods getPixels, setPixels, syncPixels,
 	readPixels, and writePixels, in order to provide low-level access
 	to Image pixels.  This approach (direct wrapper around ImageMagick
 	functions) does not mean that the planned object-oriented wrapper
 	has been forgotten, only that this wrapper is not ready yet, and
 	users need to manipulate pixels *now*.

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

	* lib/LastError.cpp: Complete re-implementation of LastError so
 	that it hides its implementation.  Also assures that all memory is
 	explicitly deallocated at program exit to avoid the appearance of
 	a leak.

2000-01-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* lib/Image.cpp (size): Bug-fix. Set image columns and rows as
 	well as image options columns and rows.

	* lib/Image.cpp :Depth parameters are now all unsigned in for consistency.

	* lib/Image.cpp (write): Parameters for writing Blobs re-arranged
 	again to hopefully be more sensible.

	* lib/Magick++/STL.h: Bug-fix. Re-number scenes from zero when linking
 	image range in container into a list. This provides expected results.

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

	* lib/Image.cpp
	(write): Additional overloaded methods for BLOBs.
	(read):  Additional overloaded methods for BLOBs. Re-ordered
 	         parameters for one existing method.
	(Image): Additional overloaded methods for BLOBs.  Re-ordered
 	         parameters for one existing method.

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

	* lib/Image.cpp (floodFillTexture): Changed coordinates to unsigned.

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

	* lib/Image.cpp (medianFilter): New method.

1999-12-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* lib/Image.cpp (density): Bug fix. Was not setting image x & y density.

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

	* lib/Image.cpp (page): psPageSize() is renamed to page() and now
 	properly returns the attribute from the image.

1999-11-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* lib/Image.cpp: Rename transformColorSpace() to colorSpace().
  	Added colorSpace() accessor method.

1999-11-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* lib/Color.cpp: Re-implemented PixelPacket pointer so that it is
 	never NULL and added a 'valid' field for tracking object validity.

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

	* lib/Image.cpp (quantizeError): Eliminated method.

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

	* lib/Image.cpp (annotate & draw): Changed implementation to
 	reflect change to the way AnnotateInfo is managed by ImageMagick.

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

	* lib/Image.cpp (cacheThreshold): New method to set the pixel
 	cache threshold.

	* lib/Magick++/Include.h (Magick): Added new enumerations from
 	classify.h.

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

	* lib/Magick++/Options.h (fontPointsize): Argument is now a double
 	to match change in ImageMagick.

	* lib/Image.cpp (fontPointsize): Argument is now a double to match
 	change in ImageMagick.

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

	* lib/Blob.cpp (BlobRef): Bugfix -- start blob reference count at
 	one rather than zero.

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

	* lib/Image.cpp (Image): Fixed Image constructors from Blob.  The
 	image reference was not being instantiated as it should have been,
 	causing a crash.

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

	* lib/Blob.cpp: All blob length parameters are now of type size_t.

	* lib/Image.cpp (write): Length estimate is now of type size_t.

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

	* lib/Image.cpp (rotate): No longer accepts a crop option since
 	ImageMagick no longer supports this.
	(shear): No longer accepts a crop option since ImageMagick no
 	longer supports this.

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

	* lib/Image.cpp:
	(rotate): No longer accepts sharpen argument.
  	User must sharpen seperately if desired.  This change is due to a
 	similar change in ImageMagick 5.0.
	(condense): Removed method.
	(uncondense): Removed method.
	(condensed): Removed method.
	(pixelColor): Adapted to 5.0.

	* lib/Magick++/Color.h : Rewrote to efficiently use ImageMagick
 	5.0's PixelPacket color representation.

	* lib/Color.cpp : Rewrote to efficiently use ImageMagick 5.0's
 	PixelPacket color representation.

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

	* lib/Image.cpp (condensed): Bug fix.  The condensed() method was returning the opposite bool value than it should.  Oops!

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

	* lib/Magick++/Include.h (MagickLib): Eliminated requirement for
 	including <magick/defines.h>.

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

	* lib/Image.cpp: Added accessor methods for other key ImageMagick
 	structs.

	* lib/Options.cpp (penTexture): Fixed bug with removing texture
 	caused by change in Image constructor.

	* lib/Image.cpp: Changed strategy such that an Image containing a
 	null MagickLib::Image pointer is never constructed except for
 	under error conditions.  Removed existing checks for null image
 	pointer on attribute methods.

	Use image() and constImage() accessor methods as part of Image
 	implementation in order to clean-up code and ensure
 	const-correctness.
	
1999-08-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* lib/Magick++/STL.h (Magick): Added STL function readImages().
  	Not tested yet.
	(Magick): Added STL function writeImages(). Not tested yet.

	* lib/Image.cpp: Removed support for 'text' attribute as this is
 	no longer present in ImageMagick as of 4.2.8.

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

	* lib/Image.cpp (condense): Skip condensing image if already
 	condensed.
	(uncondense): Skip uncondensing image if not condensed.
	(condensed): New method to test if image is condensed.
	(classType): New method which supports conversion of the image
 	storage class. May result in loss of color information
 	(quantization is used) if a DirectClass image is converted to
 	PseudoClass.

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

	* lib/Magick++/Color.h (Magick::Color): Color parameters are now
 	stored in a MagickLib::RunlengthPacket structure which is
 	referenced via a pointer.  This structure is either allocated by a
 	Magick::Color constructor or passed as an argument to a
 	Magick::Color constructor so that it may refer to to a
 	MagickLib::Image pixel. The owner of the structure is managed so
 	that the structure is only deleted if it was allocated by
 	Magick::Color.

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

	* overall : Removed 'Magick' prefix from all source file
 	names. Moved class headers to Magick++ subdirectory.  This should
 	not break any code using the documented interface (via
 	Magick++.h).

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

	* lib/MagickImage.cpp (composite): Support composition placement
 	by gravity like PerlMagick does.

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

	* lib/MagickImage.cpp (Image): Added constructors to construct an
 	Image from a BLOB.

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

	* tests/manipulate.cpp (main): Wrote a basic sanity test for
 	reading and writing BLOBS.

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

	* lib/MagickImage.cpp (read): Added support for reading an encoded
 	image stored in a BLOB.  Uses new ImageMagick APIs introduced on
 	July 21, 1999.
	(write): Added support for writing an encoded image to a BLOB.

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

	* lib/MagickInclude.h : Use new <magick/api.h> interface to
 	ImageMagick to avoid namespace-induced problems.

	* configure.in : CPPFLAGS and LDFLAGS specified via the
 	environment take precidence over flags from Magick-config.

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

	* lib/MagickSTL.h (mapImages): New algorithm to map the sequence
 	of images to the color map of a provided image.
	(quantizeImages): New algorithm to quantize a sequence of images
 	to a common color map.

1999-05-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>

	* lib/MagickBlob.cpp (updateNoCopy): New method to allow derived
 	classes to insert data into the base class without making a copy
 	of the data. This represents a transfer of ownership of the data
 	from the derived class to the base class.

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

	* lib/MagickColor.cpp (operator =): Adapted to new ImageMagick
 	4.2.6 as of 5/23/99 which removes X11 compatability functions.

	* lib/MagickGeometry.cpp (operator =): Adapted to new ImageMagick
 	4.2.6 as of 5/23/99 which removes X11 compatability functions.

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

	* lib/MagickBlob.cpp (Blob): Support default constructor for Blob.

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

	* lib/MagickSTL.h (transformColorSpaceImage): New unary function object
 	to invoke transformColorSpace on STL container object.

	* lib/MagickImage.cpp (transformColorSpace): New method to
 	transform the image data to a new colorspace.

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

	* lib/MagickImage.cpp (ping): Re-implemented to match (requested)
 	API change in ImageMagick 4.2.5. Method signature has changed to
 	be like 'read'.
	(annotate): Added two new overloaded methods for text annotation
 	in order to support the new rotated text capability in ImageMagick
 	4.2.5.  To accomplish this, the default for gravity had to be
 	removed from several methods. This may impact existing code.
  	Still not sure if this is the best set of method signatures.

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

	* lib/MagickImage.cpp (ping): New method to obtain image size in
 	bytes and geometry without the overhead of reading the complete
 	image.
	(uncondense): New method to uncompress run-length encoded pixels
 	into a simple array to make them easy to operate on.

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

	* lib/MagickImage.cpp (comment): Passing an empty string as the
 	comment results in no comment at all rather than a comment with no
 	data.

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

	* lib/MagickImage.cpp (iccColorProfile): Implemented method to set
 	ICC color profile from opaque object in memory (must be formatted
 	outside of Magick++).
	(iptcProfile): Implemented method to set IPTC profile from opaque
 	object in memory (must be formatted outside of Magick++).

	* lib/MagickBlob.cpp: New class to support managing user-supplied
 	opaque Binary Large OBjects (BLOBS) in the API. Reference counted
 	to improve semantics and to possibly reduce memory consumption.

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

	* lib/Makefile.am (libMagick): Updated to use libtool 1.3 so that
 	shared library can be built.

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

	* lib/MagickImage.cpp (montageGeometry): Return Magick::Geometry
 	rather than std::string.

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

	* lib/MagickColor.cpp (alpha): Added support for setting alpha via
 	scaled-double to the Color class.  The new method name is 'alpha'.

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

	* lib/MagickColor.cpp: Added support for setting an alpha value
 	(unscaled Quantum only) for use on DirectColor images that have
 	matte enabled.  This requires ImageMagick 4.2.2 dated April 13,
 	1999 or later to compile since Cristy added a special flag to
 	allow testing to see if the user has specified an opacity value:
 	"I added XColorFlags to magick/classify.h.  If DoMatte is set in
 	color->flags then the opacity value is valid in color->pixel."

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

	* demo/flip.cpp (main): New file.  Demonstrates use of flipImage
 	function object as well as morphImages algorithm.

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

	* tests/color.cpp : New file to support testing the Magick::Color
 	classes.

	* lib/MagickOptions.cpp: The ImageInfo filter member is now
 	ignored by ImageMagick (as of ImageMagick 4.2.2 April 10, 1998) so
 	support for setting it is removed. The Image filter member is
 	still updated. According to Cristy, this ImageMagick version
 	removes automatic sharpening of resized images.  The blur member
 	is added to the Image structure. A blur value < 1 causes the image
 	to be sharpened when resizing while a value > 1 leaves the image
 	blurry.  Magick++ does not yet support the blur member.

