• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
12017-07-12  7.0.6-1  Dirk Lemstra <dirk@snakeware...>
2  * For portability, Color() arguments must be Magick::Quantum (reference
3    https://github.com/ImageMagick/ImageMagick/issues/510).
4
52011-02-12  6.6.7-7 Cristy  <quetzlzacatenango@image...>
6  * Add support for the strip() and stripImage() STL methods.
7
82011-02-01  6.6.7-2 Cristy  <quetzlzacatenango@image...>
9  * Remove extra '+' in the geometry operator.
10
112010-06-16  6.6.2-2 Cristy  <quetzlzacatenango@image...>
12  * Patch for compile problem in mapImages of the STL header.
13
142010-02-21  6.5.9-10 Cristy  <quetzlzacatenango@image...>
15  * Add extent() to extend the image as defined by the geometry, gravity, and
16	  image background color.
17
182009-11-14  6.5.7-8 Cristy  <quetzlzacatenango@image...>
19  * Add forwardFourierTransform(), inverseFourierTransform(), and
20    inverseFourierTransformImage() methods to implement forward and inverse
21    discrete Fourier transform (DFT / IFT).
22
232009-09-28  6.5.6-6 Cristy  <quetzlzacatenango@image...>
24  * Add splice() method to splice the background color into the image.
25
262009-04-01  6.5.1-1 Cristy  <quetzlzacatenango@image...>
27  * Add virtualPixelMethod() method for image and options, required for
28    distort().
29
302008-09-09  6.4.3-7 Cristy  <quetzlzacatenango@image...>
31  * Use ImagesToBlob() rather than ImageToBlob() for writeImages().
32
332007-10-02  6.3.6-7 Cristy  <quetzlzacatenango@image...>
34  * Define USE_MAP for Magick++/tests/colorHistogram.cpp (patch provided by
35    albert chin <china@thewr...>).
36
372007-04-10  6.3.3-7 Cristy  <quetzlzacatenango@image...>
38  * Add colorspaceType(RGBColorspace) to set RGB colorspace before an
39    image read (useful to convert CMYK Potscript to RGB).
40
412006-02-05  6.3.2-3 Cristy  <quetzlzacatenango@image...>
42  * Clear exception in throwException() method.
43
442006-01-16  6.3.2-0 Cristy  <quetzlzacatenango@image...>
45  * Add extent() method to extend the image as defined by the geometry.
46
472003-12-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
48
49	* demo/analyze.cpp (main): New program to demonstrate using the
50	'analyze' process module.
51	* demo/Makefile.am: Add rules to build analyze program.
52	* lib/Image.cpp (process): New method to execute process modules.
53	* lib/Image.cpp (attribute): New method to get and set named image
54	attributes.
55
562003-10-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
57
58	* lib/Color.cpp: Ensure that all non-default constructors set
59	opacity to opaque.
60
612003-09-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
62
63	* lib/Magick++/STL.h (colorHistogram): If map key is not const,
64        then implicit type conversion occurs.  Sun's C++ compiler doesn't
65        seem to handle that.  The map key is now defined as const in
66	the insert arguments.
67
682003-09-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
69
70	* tests/Makefile.am: Add build support for colorHistogram.cpp.
71	* tests/colorHistogram.cpp: New test program to test retrieving
72	color histograms from the image using colorHistogram().
73	* lib/Magick++/STL.h (colorHistogram): Added new template function
74	to retrieve a color histogram into a user-provided container.
75	Verified to work when using STL <vector> and <map> as the target
76	container types.  When <map> is used, a user-specified color may
77	be used to perform lookups in the map to obtain the usage count for
78	that color.
79	* lib/Color.cpp (operator >=): Insufficient resolution was being
80	provided in order to reliably sort color objects in STL
81	containers.  The updated algorithm should be fail-safe.
82
832003-08-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
84
85	* lib/Image.cpp (channelDepth): New method to set or get the
86	modulus depth for a specified channel.
87
882003-08-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
89
90	* lib/Magick++/Include.h (Magick): Added support for
91	CopyCyanCompositeOp, CopyMagentaCompositeOp,
92	CopyYellowCompositeOp, and CopyBlackCompositeOp, composition
93	operators.
94
952003-08-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
96
97	* lib/Image.cpp (depth): Method now only updates the
98	Image/ImageInfo depth member and retrieves the value of the Image
99	depth member.
100	(modulusDepth): New method to inspect the pixels for actual
101	modulus depth, or update/reduce the pixels to a specified modulus
102	depth.  The depth method was performing this function so any code
103	which depended on the depth method to compute or set the modulus
104	depth should be updated to use modulusDepth() instead.
105
1062003-08-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
107
108	* lib/Image.cpp (matte): If a new matte channel is created,
109	initialize it to opaque.  Likewise, if the matte channel is
110	eliminated, initialize the unused channel to opaque.
111
1122003-07-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
113
114	* demo/demo.cpp (main): Don't crop logo image.  *
115	* *.h, *.cpp: Include "Magick++/Include.h" before including any
116	compiler or system header in order to ensure that LFS defines are
117	properly applied. Inspired by patch from Albert Chin-A-Young.
118
1192003-06-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
120
121	* lib/Magick++/Include.h: Needed to import ThrowLoggedException.
122	* lib/Exception.cpp (throwException): Add originating source
123	module, source line, and function name (if available) to exception
124	report. This is useful in order to determine the exact conditions
125	that lead to the exception being thrown.
126	* lib/Magick++/Exception.h: Added ErrorCoder, WarningCoder,
127	ErrorConfigure, WarningConfigure, ErrorDraw, WarningDraw,
128	ErrorImage, WarningImage, ErrorMonitor, WarningMonitor,
129	ErrorRegistry, WarningRegistry, ErrorStream, WarningStream,
130	ErrorType, and WarningType, exception classes to support the full
131	set of exceptions that ImageMagick can throw.
132
1332003-06-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
134
135	* lib/CoderInfo.cpp (CoderInfo): Applied compilation fix from
136	Mike Chiarappa to compile using Borland C++.
137
1382003-06-06  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
139
140	* lib/Geometry.cpp (string): Throw an exception if a string is
141	requested from an invalid geometry object.
142
1432003-06-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
144
145	* lib/Geometry.cpp (operator =): If GetGeometry returns NoValue,
146	then assign an invalid geometry object to cause an exception if
147	the geometry is then used.
148
1492003-06-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
150
151	* lib/Magick++/Exception.h (ErrorModule): Added class to handle
152	module errors.
153	* lib/Magick++/Exception.h (WarningModule) Added class to handle
154	module warnings.
155
1562003-05-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
157
158	* lib/Magick++/STL.h (coderInfoList): Use GetMagickInfoArray to
159	access coder list.
160
1612003-05-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
162
163	* lib/Magick++/STL.h (affineTransformImage): Add function object
164	contributed by Vladimir Lukianov to apply an affine transform to
165	the image.
166	* lib/Image.cpp (affineTransform): Added method contributed by
167	Vladimir Lukianov to apply an affine transform to the image.
168
1692003-05-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
170
171	* lib/Magick++/Include.h: Decided to back out change
172	which used the _VISUALC_ define to trigger inclusion of
173	<sys/types.h>.
174
1752003-05-14  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
176
177	* lib/Magick++/Include.h: If _VISUALC_ is defined,
178	include <sys/types.h>. This ensures that this necessary
179	header is included even if HAVE_SYS_TYPES_H is not defined
180	in magick-config.h.
181
1822003-05-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
183
184	* lib/Image.cpp (InitializeMagick): InitializeMagick is
185	now a C++ function rather than a namespace inclusion.
186	An atexit() handler is registered to invoke DestroyMagick
187	when the program exits. Relying on static deconstruction
188	to invoke DestroyMagick proved to be unreliable due to
189	translation unit destruction uncertainty.
190
1912003-04-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
192
193	* lib/Image.cpp (Image::Image (MagickCore::Image* image_)):
194	Incorporated recommended fix from Jukka Manner to avoid
195	a scenario which leaks an Options object.
196	* tests/coalesceImages.cpp: Updated to use modified
197	coalesceImages() interface.
198	* lib/Magick++/STL.h (coalesceImages): Replaced implementation
199	with one from Felix Heimbrecht. The template signature has
200	changed to return a new image sequence. This template API
201	silently ceased to funtion due to an ImageMagick CoalesceImages
202	API change.
203
2042003-03-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
205
206	* tests/readWriteBlob.cpp (main): Added check for
207	stream read failure when reading blob data.
208	(class myBlob): Use get rather than read.
209
2102003-03-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
211
212	* tests/attributes.cpp : Change in the way that Magick++
213	retrieves density caused tests to fail.  Density now defaults
214	to 72x72 (ImageMagick default) rather than invalid.
215
2162003-03-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
217
218	* demo/Makefile.am (CLEANFILES): Fix clean target to remove
219	*_out.mvg output files as well.
220	* demo/zoom.cpp: Added a command-line parser for dash
221	arguments as well as an image "resample" capability.
222	* lib/Image.cpp (density): Obtain density from Image
223	rather than ImageInfo if the Image is valid.
224
2252003-03-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
226
227	* lib/Makefile.am : Added rules to install ImageMagick++.pc.
228	* lib/ImageMagick++.pc.in : Added pkgconfig file for
229	-lImageMagick++.
230
2312003-02-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
232
233	* lib/Image.cpp (colorSpace): Pass image->colorspace to
234	TransformRGBColorspace.
235
2362003-01-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
237
238	* lib/Magick++/STL.h (writeImages): Should have been invoking
239 	WriteImages rather than WriteImage!
240
2412003-01-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
242
243	* lib/Magick++/Include.h: Add HSL and HWB colorspace
244 	transformation support.
245
2462003-01-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
247
248	* lib/Image.cpp (colorSpace): Support colorspace transforms
249	other than to and from RGB by translating to RGB as an intermediate
250	step.
251
2522002-11-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
253
254	* lib/Drawable.cpp: Added DrawablePushClipPath,
255 	DrawablePopClipPath, and DrawableClipPath.  Implementation
256 	contributed by Vladimir <lvm@integrum.ru>.
257
2582002-11-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
259
260	* lib/Image.cpp (colorMapSize): New method to set, or return
261	the colormap size.
262
2632002-11-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
264
265	* lib/Image.cpp (adaptiveThreshold): New method.
266
2672002-10-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
268
269	* lib/Magick++/STL.h (coderInfoList): Intentionally ignore missing
270 	delegate exceptions.
271
2722002-09-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
273
274	* lib/Options.cpp (textEncoding): Had forgotten to implement
275 	textEncoding!
276
2772002-09-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
278
279	* lib/Color.cpp (Color): Use of 'new' and 'delete' in inlines was
280 	causing memory allocation/deallocation problems for users of the
281 	DLL build.  Problem was identified by Marc Iwan.
282
2832002-09-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
284
285	* lib/Image.cpp (compare): New method to compare current image
286 	with a reference image.
287
2882002-08-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
289
290	* lib/Image.cpp (textEncoding): New method to allow setting the
291 	default text encoding (e.g. "UTF-8").
292
293	* lib/Drawable.cpp (DrawableText): Added an alternate constructor
294 	to allow specifying the text encoding (e.g. "UTF-8").
295
2962002-08-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
297
298	* Overall: Now compiles as a DLL using Visual C++.
299
3002002-07-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
301
302	* lib/Image.cpp (profile): Added method to store, delete, or
303 	retrieve named application profiles.
304
3052002-07-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
306
307	* lib/Image.cpp (type): Set the ImageInfo type attribute when
308 	setting the image type.  If the type attribute is set to something
309 	other than UndefinedType (implying that the user has set a desired
310 	output image type), then return that as the image type, otherwise
311 	use GetImageType() to evaluate the image type.
312
3132002-05-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
314
315	* lib/Drawable.cpp (DrawableTextUnderColor): New class to set the
316 	text undercolor.  When text undercolor is set, a rectangle of the
317 	specified color is rendered under text annotations.
318
3192002-05-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
320
321	* Magick++ library no longer depends on iostreams at all.
322
3232002-04-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
324
325	* lib/Image.cpp (throwImageException): ExceptionInfo was not being
326 	properly initialized.  This could cause some errors to cause an
327 	abort in error.c rather than throwing an exception.
328
3292002-04-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
330
331	* lib/Image.cpp (draw): Use draw.h drawing APIs to draw on image.
332  	This means that MVG output no longer comes from code in
333 	Drawable.cpp.
334
3352002-04-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
336
337	* lib/STL.cpp: Moved function object implementations from STL.h to
338 	STL.cpp.
339
3402002-04-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
341
342	* lib/Image.cpp (getConstPixels): Changed offset parameter type
343 	from 'unsigned int' to 'int'.
344	(getPixels): Changed offset parameter type from 'unsigned int' to
345 	'int'.
346	(setPixels): Changed offset parameter type from 'unsigned int' to
347 	'int'.
348	(cacheThreshold): Changed argument type from 'const long' to
349 	'const int'.
350	(matteFloodfill): Changed offset parameter type from 'const long' to
351 	'const int'.
352
353	* lib/Pixels.cpp (getConst): New method to return read-only pixels.
354	(get): Offset parameter types changed from 'unsigned int' to 'int'.
355
3562002-04-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
357
358	* lib/Magick++/Drawable.h (DrawableDashOffset): Change dashoffset
359 	type to 'double' rather than 'unsigned int' in order to match
360 	ImageMagick.
361
362	* lib/Drawable.cpp (DrawableDashArray): Change dasharray type to
363 	'double' rather than 'unsigned int' in order to match
364 	ImageMagick. Previous 'unsigned int' methods remain for
365 	compatability reasons.
366
3672002-04-14  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
368
369	* lib/Drawable.cpp (DrawableCompositeImage): Always output
370 	composite images as inlined Base64.
371
3722002-04-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
373
374	* lib/Drawable.cpp (DrawableCompositeImage): If magick attribute
375 	string is specified, then composite image is supplied to
376 	ImageMagick as inlined Base64 rather than by MPRI reference.
377
378	* lib/Blob.cpp (base64): Added methods to update Blob with data
379 	from Base64-encoded string, or to return a Base64-encoded string
380 	from Blob.  Still needs documentation.
381
3822002-04-09  Dom Lachowicz    <cinamod@hotmail.com>
383
384	* lib/Image.cpp (Image::ping): Added PingBlob function
385
3862002-04-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
387
388	* lib/Drawable.cpp (DrawableDashArray::operator=): Added missing
389 	assignment operator (fixes a bug).
390	(DrawableDashArray::DrawableDashArray): Added missing copy
391 	constructor (fixes a bug).
392
393	* lib/Image.cpp (oilPaint): Changed argument type from unsigned
394 	int to double.
395	(chromaBluePrimary): Changed argument type from float to double.
396	(chromaGreenPrimary): Changed argument type from float to double.
397	(chromaRedPrimary): Changed argument type from float to double.
398	(chromaWhitePoint): Changed argument type from float to double.
399	(getConstPixels): Changed argument type of x_ & _y from 'int' to
400 	'unsigned int'.
401	(getPixels): Changed argument type of x_ & _y from 'int' to
402 	'unsigned int'.
403
4042002-04-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
405
406	* lib/Image.cpp (debug): Added method to set ImageMagick debug
407 	flag so that it prints debugging information while it runs.
408
4092002-04-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
410
411	* lib/Drawable.cpp: Fixed a bunch of bugs related to
412 	DrawableCompositeImage, DrawableFont, and inconsistencies
413 	discovered by Gimpel lint.
414
4152002-04-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
416
417	* lib/Image.cpp (draw): Properly delimit individual drawing
418 	commands so that MVG output is correct.
419
4202002-03-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
421
422	* lib/Drawable.cpp (DrawableViewbox): MVG syntax wasn't correct.
423
424	* lib/Image.cpp (draw): Fix algorithm used to append newlines to
425 	MVG commands so that draw() may be invoked multiple times while
426 	still producing valid MVG.
427
4282002-03-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
429
430	* lib/Drawable.cpp (DrawableViewbox): New class to allow setting
431 	the MVG output size.
432
4332002-03-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
434
435	* lib/Drawable.cpp (print): Changed "mpr:" to "mpri:" in order to
436 	*finally* get DrawableCompositeImage to work as intended.
437
438	* lib/Image.cpp (registerId): Bugfix. Register using
439 	sizeof(MagickCore::Image) rather than sizeof(Image).
440
4412002-03-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
442
443	* lib/Drawable.cpp (DrawableCompositeImage): Had failed to
444 	initialize width and height in object to image width and height.
445
4462002-02-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
447
448	* lib/Magick++/STL.h (endianImage): New class to specify the
449 	endian option for formats which support this notion (e.g. TIFF).
450
451	* lib/Image.cpp (endian): New method to specify the endian option
452 	for formats which support this notion (e.g. TIFF).
453
4542002-02-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
455
456	* lib/Drawable.cpp (DrawableFont): Support specifying a font via
457 	font-family, font-style, font-weight, and font-stretch. Wildcard
458 	matches are supported.
459
4602002-02-06  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
461
462	* lib/Image.cpp (charcoal): Replace Magick++'s charcoal effect
463 	with the output of ImageMagick's CharcoalImage function in order
464 	to ensure consistency.
465
466	* lib/Magick++/CoderInfo.h (MatchType): Scope the MatchType
467 	enumeration to the CoderInfo class so these enumeration names can
468 	be re-used elsewhere without conflict.  This results in a minor
469 	API change to the coderInfoList() templated function since
470 	enumerations must be specified like "CoderInfo::TrueMatch" rather
471 	than just "TrueMatch".  Hopefully not a problem since this
472 	function and class were not documented outside of the headers
473 	until this release.
474
4752002-02-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
476
477	* lib/Magick++/STL.h (coderInfoList): Finally wrote some
478 	documentation.
479
4802002-01-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
481
482	* lib/Options.cpp : Use DestroyImageList() rather than DestroyImage().
483
484	* lib/Geometry.cpp (operator =): Use GetPageGeometry() rather than
485 	PostscriptGeometry() to parse geometry specifications containing a
486 	page size.
487
4882002-01-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
489
490       * Remove bogus cast of blob data in readImages().
491
4922002-01-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
493
494	* lib/Image.cpp (throwImageException): Throwing exceptions was
495 	leaking memory.
496
497	* lib/Exception.cpp (throwException): Throwing exceptions was
498 	leaking memory.
499
500	* lib/Image.cpp (replaceImage): Updated to properly handle
501 	registration ids.
502	(modifyImage): Updated to properly handle registration ids.
503
5042002-01-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
505
506	* lib/Drawable.cpp (Magick::DrawableGravity::print):
507 	Bugfix. Remove "Gravity" from the end of each gravity
508 	specification string.  Reported as PR#1084 by stefan@dotify.com.
509
5102002-01-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
511
512	* lib/Image.cpp, Magick++/Include.h: Use DestroyImageList() rather
513 	than DestroyImages().
514
5152002-01-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
516
517	* lib/Magick++/Options.h (antiAlias): Bugfix, set
518 	drawInfo->text_antialias to control text antialiasing.
519
5202002-01-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
521
522	* lib/Magick++/Include.h : Imported new composition operators to
523 	namespace: NoCompositeOp, DarkenCompositeOp, LightenCompositeOp,
524 	HueCompositeOp, SaturateCompositeOp, ValueCompositeOp,
525 	ColorizeCompositeOp, LuminizeCompositeOp, ScreenCompositeOp,
526 	OverlayCompositeOp.
527
5282001-12-27  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
529
530	* lib/Image.cpp (strokePattern): New method to specify image to
531 	use as pattern while drawing stroked-outlines of drawn objects.
532	(fillPattern): New method to specify image to use as pattern while
533 	filling drawn objects.
534	(penTexture): Method is officially deprecated.  Don't use anymore.
535	(penColor): Method is officially deprecated. Don't use anymore.
536
537	* lib/Drawable.cpp (DrawablePushPattern): Support pushing
538 	(starting) pattern definition.
539	(DrawablePopPattern): Support popping (terminating) pattern
540 	definition.
541
5422001-12-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
543
544	* lib/Drawable.cpp (DrawableCompositeImage): Read image
545 	immediately if provided by filename, register with peristent
546 	registry, and pass as perisistant image type.
547	(DrawableCompositeImage): Support specifying Image in memory.
548  	Passed as perisistant image type.
549
5502001-12-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
551
552	* lib/Color.cpp (operator std::string): Color string buffer was
553 	one character too short!
554
5552001-12-20  Bob Friesenhahn  <bfriesen@sun1107.ssd.usa.alcatel.com>
556
557	* lib/TypeMetric.cpp (characterWidth): Eliminate method.
558	(characterHeight): Eliminate method.
559	(all remaining methods): Change return type to 'double'.  Fix
560 	documentation in source files to reflect that units are in pixels
561 	rather than points.
562	(descent): Renamed method from 'decent' to 'descent'.
563
5642001-11-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
565
566	* lib/Image.cpp (Magick): Invoke DestroyMagick() to clean up
567 	ImageMagick allocations.
568
569	* lib/Magick++/Include.h (ImageType): Added some missing enums to
570	Magick namespace.
571
5722001-11-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
573
574	* lib/Magick++/CoderInfo.h (CoderInfo): Syntax fix.
575	ImageMagick bug #975.
576
577	* lib/Image.cpp (draw): Delete ostrstream data when it is no
578 	longer needed.  ImageMagick bug #988.
579
5802001-11-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
581
582	* lib/Image.cpp (pixelColor): Implementation didn't handle pixels
583	indexes correctly.  Now it does.
584
5852001-11-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
586
587	* lib/Image.cpp (matteFloodfill): Coordinates are long values.
588	(floodFillOpacity): New method to floodfill opacity across pixels
589	matching color (within fuzz-factor) at point. Similar to
590	matteFloodfill except that color is selected from starting point.
591
5922001-10-29  Bob Friesenhahn  <bfriesen@sun1107.ssd.usa.alcatel.com>
593
594	* lib/Image.cpp (strokeDashArray): Change to type double.
595	(strokeDashOffset): Change to type double.
596
5972001-10-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
598
599	* lib/Geometry.cpp (Geometry): Add constructor from
600 	MagickCore::RectangleInfo.
601
602	* lib/Image.cpp (boundingBox): Method to return smallest bounding
603 	box enclosing non-border pixels.
604
6052001-10-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
606
607	* lib/Image.cpp (getConstIndexes): Add method to obtain read-only
608 	pixel indexes.
609	(getIndexes): Add method to obtain read-write pixel indexes.
610	(Image::Image): Send warnings from Image constructor to cerr
611 	rather than throwing.
612
613	* lib/Color.cpp (Color(PixelPacket&)): Change argument to const
614 	PixelPacket& as it should have been from the beginning.
615
616	* lib/Image.cpp (pixelColor): Reimplemented to be a const method.
617
6182001-10-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
619
620	* lib/Image.cpp (getConstPixels): New method for returning a
621 	read-only pixel view.  Still requires documentation.
622
623	* lib/Magick++/STL.h (coderInfoList): Fixed compilation problem
624 	when compiling with Visual C++.
625
6262001-10-06  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
627
628	* lib/Magick++/Color.h (scaleQuantumToDouble): Add polymorphic
629 	version that accepts double to avoid downconversion error.
630
6312001-10-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
632
633	* lib/Magick++/Color.h (scaleQuantumToDouble): Cast Quantum to
634 	double prior to division.  Hopefully fix bug.
635
6362001-10-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
637
638	* lib/Magick++/Color.h (Color(const std::string)): Pass argument by reference.
639	* (operator=): Pass argument by const reference.
640
6412001-09-23  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
642
643	* lib/Magick++/STL.h (coderInfoList): New function to support
644 	obtaining format coder information (as a list of type CoderInfo).
645
646	* lib/CoderInfo.cpp (CoderInfo): New class to support obtaining
647 	format coder information.
648
6492001-09-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
650
651	* lib/Image.cpp (depth): Use GetImageDepth and SetImageDepth
652 	rather than just getting/setting depth attributes.
653
654	* lib/Magick++/STL.h (opacityImage): New unary function object to
655 	set, or attenuate, image pixel opacity throughout the image.
656
657	* lib/Image.cpp (opacity): New method to set, or attenuate, image
658 	pixel opacity throughout the image.
659
660	* lib/Magick++/STL.h (typeImage): New unary function object to set
661 	image type.
662
663	* lib/Image.cpp (type): Added ability to set image type.
664
6652001-09-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
666
667	* lib/Image.cpp (write(Blob)): Tell blob to use malloc allocator.
668
669	* lib/Blob.cpp (updateNoCopy): Added parameter so that user can
670 	specify the allocation system (malloc or new) the memory came
671 	from.  Defaults to C++ memory allocator.
672
6732001-09-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
674
675	* lib/Image.cpp (fileSize): Decided to change return type to off_t
676 	for increased range and portability.
677
6782001-09-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
679
680	* lib/Image.cpp (fileSize): Changed return value to double.
681
6822001-09-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
683
684	* lib/Image.cpp (colorMap): Allocate a colormap if it does not
685 	already exist.
686
687	* lib/Pixels.cpp (indexes): Don't attempt to validate image type.
688
689	* lib/Image.cpp (colorMap): Optimized more for performance.
690
6912001-09-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
692
693	* lib/Image.cpp (fontTypeMetrics): New method to support
694 	retrieving font metrics.
695
696	* lib/TypeMetric.cpp : New class to support font metrics
697 	information.
698
6992001-09-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
700
701	* lib/Magick++/Color.h (scaleDoubleToQuantum): Inline static
702 	method made from previous ScaleDoubleToQuantum #define.
703	(scaleQuantumToDouble): Inline static method made from previous
704 	ScaleQuantumToDouble #define. Helps avoid possibility of clash
705 	with user code.
706
7072001-08-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
708
709	* lib/Image.cpp (colorMap): Automagically extend colormap if
710 	specified index is past end of current colormap.  Colormap is
711 	limited to a maximum depth of QuantumRange entries.
712
7132001-08-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
714
715	* lib/Image.cpp (clipMask): New method to add a clip mask to the
716 	image.  Adds clipping to any image operation wherever the clip
717 	mask image is tranparent.
718
7192001-08-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
720
721	* lib/Drawable.cpp (print): Add single quotes around file names
722 	and font specifications.
723
7242001-07-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
725
726	* lib/Image.cpp (read): Ensure that only a single image frame is read.
727
7282001-07-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
729
730	* lib/Magick++/STL.h (flattenImages): New function to flatten a
731 	layered image.
732
733	* lib/Montage.cpp (Montage): Montage initial defaults are no
734 	longer drawn from ImageInfo.  MontageInfo structure is entirely
735 	filled out by updateMontageInfo();
736
7372001-07-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
738
739	* lib/Montage.cpp (updateMontageInfo): Bugfix; colors which were
740 	intentionally specified as invalid (unset) were being ignored.
741  	This produced unattractive label text when doing a montage.
742
7432001-07-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
744
745	* lib/Magick++/STL.h (medianFilterImage): Changed argument from
746 	unsigned int to const double.
747	(fillColorImage): New method.
748	(strokeColorImage): New method.
749	(isValidImage): New method.
750
751	* lib/Magick++/Image.h (edge): Change argument from unsigned int to double.
752	(medianFilter): Changed argument from unsigned int to const double.
753
754	* lib/Magick++/STL.h (edgeImage): Change argument from unsigned int to double.
755
756	* demo/demo.cpp (main): Updated to match PerlMagick demo.
757
7582001-06-23  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
759
760	* lib/Magick++/STL.h (shaveImage): New function to shave edges from image.
761
762	* lib/Image.cpp (shave): New method to shave edges from image.
763
7642001-06-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
765
766	* lib/Image.cpp (quantize): Remove conditions on whether
767 	quantization should be done.  Now quantization is always done.
768
7692001-06-14  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
770
771	* lib/Magick++/Image.h (blur,charcoal,emboss,sharpen): Changed
772 	radius and sigma parameters to match current ImageMagick defaults.
773
7742001-02-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
775
776	* lib/Options.cpp (updateDrawInfo): The updateDrawInfo() method
777 	was no longer needed.  Due to ImageMagick changes, calling it was
778 	causing some options to be lost.
779
7802001-01-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
781
782	* lib/Image.cpp (fillRule): New method to specify the rule to use when filling drawn objects.
783
7842001-01-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
785
786	* lib/Image.cpp (erase): New method to reset image to background
787 	color.
788	(strokeAntiAlias): New method to control antialiasing of stroked
789 	objects.
790
7912001-01-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
792
793	* lib/Image.cpp (channel): Renamed method from 'layer' to match
794 	equivalent change in ImageMagick (ChannelImage).  Enumeration
795 	names *Layer renamed to *Channel.
796
7972001-01-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
798
799	* lib/Magick++/Montage.h (strokeColor): New method.
800	(fillColor): New method.
801
802	* lib/Image.cpp (replaceImage): Revised logic so that an inValid
803 	image should be returned if a NULL pointer is passed.  Before this
804 	change the existing image was preserved.
805	(label): Work-around ImageMagick SetImageAttribute bug.
806
8072001-01-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
808
809	* lib/Image.cpp : Adjusted to ImageMagick animation parameter API change.
810
8112000-12-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
812
813	* lib/Drawable.cpp (DrawableCompositeImage): Support specifying
814 	composition rule.
815
8162000-12-27  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
817
818	* lib/Image.cpp (draw): Bugfix - the primitive string was not
819 	properly null terminated. It is a wonder that the code usually
820 	worked at all.  Thanks to afatela@marktest.pt for reporting it.
821
8222000-12-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
823
824	* lib/Magick++/STL.h (deconstructImages): New STL function for
825 	deconstructing an image list to assist with creating an animation.
826	(mosaicImages): New STL function for inlaying an image list to
827 	form a single coherent picture.
828
8292000-12-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
830
831	* lib/Image.cpp (convolve): New method to convolve image using
832 	user-supplied convolution matrix.
833	(unsharpmask): New method to replace image with a sharpened
834 	version of the original image using the unsharp mask algorithm.
835
8362000-12-14  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
837
838	* : Adapted to ImageMagick API change which eliminates AnnotateInfo.
839
8402000-12-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
841
842	* lib/Magick++/STL.h (annotateImage): Brought into sync with
843 	annotate methods in Image.
844
8452000-12-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
846
847	* lib/Image.cpp (annotate): Usage of Geometry parameter was
848 	incorrect. Geometry parameter is used to specify bounding area.
849  	This changes the interpretation for two of the annotate methods
850 	(which probably weren't usable before).
851
8522000-11-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
853
854	* lib/Magick++/Color.h (alphaQuantum): Bugfix.  Due to change in
855 	treatment of opacity member, alphaQuantum() was not allowing value
856 	to be set.
857
8582000-11-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
859
860	* lib/Drawable.cpp (DrawableFillRule): New class to specify fill
861 	rule (see SVG's fill-rule).
862	(DrawableDashOffset): New class to specify initial offset in dash
863 	array.
864	(DrawableDashArray): New class to specify a stroke dash pattern.
865	(DrawableStrokeLineCap): New class to specify the shape to be used
866 	at the end of open subpaths when they are stroked.
867	(DrawableStrokeLineJoin): New class to specify the shape to be
868 	used at the corners of paths (or other vector shapes) when they
869 	are stroked.
870	(DrawableMiterLimit): New class to specify extension limit for
871 	miter joins.
872
8732000-11-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
874
875	* lib/Image.cpp (annotate): Reimplement text rotation using affine
876 	member of AnnotateInfo.
877	(strokeDashOffset): New method for specifying the dash offset to use for
878 	drawing vector objects. Similar to SVG stroke-dashoffset.
879	(strokeDashArray): New method for specifying the dash pattern to use
880 	for drawing vector objects.  Similar to SVG stroke-dasharray
881	(strokeLineCap): New method to specify the shape to be used at the end
882 	of open subpaths when they are stroked. Similar to SVG
883 	stroke-linecap.
884	(strokLineJoin): New method to specify the shape to be used at the
885 	corners of paths (or other vector shapes) when they are
886 	stroked. Similar to SVG stroke-linejoin.
887	(strokeMiterLimit): New method to specify the miter limit when joining
888 	lines using MiterJoin. Similar to SVG stroke-miterlimit.
889	(strokeWidth): Renamed lineWidth method to strokeWidth.
890
8912000-10-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
892
893	* lib/Magick++/Drawable.h (DrawableCompositeImage): Add a
894 	short-form constructor to support specifying image location and
895 	name, but without specifying rendered size (use existing image
896 	size).
897
8982000-10-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
899
900	* lib/Magick++/Drawable.h (DrawablePopGraphicContext): New class
901 	to pop graphic context.
902	(DrawablePushGraphicContext): New class to push graphic context.
903
904	* lib/Drawable.cpp (DrawableStrokeAntialias): New class to set
905 	stroke antialiasing.
906	(DrawableTextAntialias): New class to set text antialiasing.
907
9082000-10-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
909
910	* lib/Image.cpp (transformOrigin): New method to set origin of
911 	coordinate system for use when annotating with text or drawing
912	(transformRotation): New method to set rotation for use when
913 	annotating with text or drawing
914	(transformScale): New method to set scale for use when annotating
915 	with text or drawing.
916	(transformSkewX): New method to set skew for use in X axis when
917 	annotating with text or drawing.
918	(transformSkewY): New method to set skew for use in Y axis when
919 	annotating with text or drawing.
920	(transformReset): New method to reset transformation to default.
921
922	* lib/Drawable.cpp (DrawablePath): New class for drawing SVG-style
923 	vector paths.
924	(PathArcArgs): New class. Argument for PathArcArgs & PathArcAbs.
925	(PathArcAbs): New class. Draw arc using absolute coordinates.
926	(PathArcRel): New class. Draw arc using relative coordinates.
927	(PathClosePath): New class. Close drawing path.
928	(PathCurvetoArgs): New class. Argument class for PathCurvetoAbs &
929 	PathCurvetoRel.
930	(PathCurvetoAbs): New class. Cubic bezier, absolute coordinates
931	(PathCurvetoRel): New class. Cubic bezier, relative coordinates
932	(PathSmoothCurvetoAbs): New class. Cubic bezier, absolute
933 	coordinates
934	(PathSmoothCurvetoRel): New class. Cubic bezier, relative
935 	coordinates
936	(PathQuadraticCurvetoArgs): New class. Argument class for
937 	PathQuadraticCurvetoAbs and PathQuadraticCurvetoRel.
938	(PathQuadraticCurvetoAbs): New class. Quadratic bezier, absolute
939 	coordinates
940	(PathQuadraticCurvetoRel): New class. Quadratic bezier, relative
941 	coordinates
942	(PathSmoothQuadraticCurvetoAbs): New class. Quadratic bezier,
943 	absolute coordinates
944	(PathSmoothQuadraticCurvetoRel): New class. Quadratic bezier,
945 	relative coordinates
946	(PathLinetoAbs): New class. Line to, absolute coordinates
947	(PathLinetoRel): New class. Line to, relative coordinates
948	(PathLinetoHorizontalAbs): New class. Horizontal lineto, absolute
949 	coordinates
950	(PathLinetoHorizontalRel): New class. Horizontal lineto, relative
951 	coordinates
952	(PathLinetoVerticalAbs): New class. Veritical lineto, absolute
953 	coordinates.
954	(PathLinetoVerticalRel): New class. Vertical lineto, relative
955 	coordinates.
956	(PathMovetoAbs): New class. Moveto, absolute coordinates
957	(PathMovetoRel): New class. Moveto, relative coordinates
958
9592000-10-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
960
961	* lib/Drawable.cpp (DrawableSkewX): New object to apply skew in X direction.
962	(DrawableSkewY): New object to apply skew in Y direction.
963
9642000-10-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
965
966	* lib/Image.cpp (edge): Change argument from 'unsigned int' to
967 	'double' in order to match ImageMagick API.
968
9692000-10-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
970
971	* lib/Drawable.cpp (DrawableCompositeImage): Renamed from
972 	DrawableImage.
973	(DrawableTextDecoration): Renamed form DrawableDecoration.
974	(all-classes): Complete re-write to write the drawing command to a
975 	stream when draw() is invoked rather than at object construction
976 	time. This may be somewhat slower for individual draw operations
977 	but should be at least as fast for lists of drawing commands,
978 	and is more flexible going into the future. Drawable classes now
979 	inherit from DrawableBase but are passed into STL lists and Image
980 	draw() methods via the surrogate class Drawable.  The upshot of
981 	all this is that the existing published API has not been altered
982 	but things work much differently under the covers.
983
9842000-10-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
985
986	* lib/Drawable.cpp (DrawableStrokeColor): Renamed from DrawableStroke
987	(DrawableFillColor): Renamed from DrawableFill
988	(DrawableRotation): New class to influence object rotation.
989	(DrawableScaling): New class to influence object scaling.
990	(DrawableTranslation): New class to influence object translation.
991
9922000-10-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
993
994	* lib/Drawable.cpp (DrawableAffine): New class to influence object
995 	scaling, rotation, and translation (as defined by SVG XML).
996	(DrawableAngle): New class to influence drawing angle.
997	(DrawableDecoration): New class to influence text decoration such
998 	as underline.
999	(DrawableFill): New class to set object filling color.
1000	(DrawableFillOpacity): New class to set opacity to use when
1001 	filling object.
1002	(DrawableFont::): New class to set font.
1003	(DrawableGravity): New class to set text placement gravity.
1004	(DrawablePointSize): New class to set font point size.
1005	(DrawableStroke): New class to set drawing stroke color.
1006	(DrawableStrokeOpacity): New class to set drawing stroke opacity.
1007	(DrawableStrokeWidth): New class to set drawing stroke width.
1008
10092000-10-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1010
1011	* lib/Drawable.cpp (DrawableImage): Added width and height
1012 	parameters to specify size to scale rendered image to.  This is
1013 	actually a bug-fix since it seems that the correct drawing command
1014 	was no longer being generated.
1015
10162000-09-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1017
1018	* lib/Image.cpp (read): New overloaded method to read an image
1019 	based on an array of raw pixels, of specified type and mapping, in
1020 	memory.
1021	(write): New overloaded method to write image to an array of
1022 	pixels, of specified type and mapping.
1023	(Image): New overloaded constructor to construct an image based on
1024 	an array of raw pixels, of specified type and mapping, in memory.
1025
10262000-09-27  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1027
1028	* lib/Image.cpp (colorize): API change to match change in
1029 	ImageMagick.  Now accepts percentage of red, green, and blue to
1030 	colorize with using specified pen color.
1031
10322000-09-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1033
1034	* lib/Magick++/Drawable.h: Reverted Coordinate implemenation back
1035 	from and STL pair based implementation to a simple class.  Maybe
1036 	this will improve portability.  It is more understandable anyway.
1037
10382000-09-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1039
1040	* lib/Options.cpp : Bugfix.  Some DrawInfo attributes were not
1041 	being updated.  This lead to options like fontPointsize not
1042 	changing the font.
1043
10442000-08-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1045
1046	* lib/Magick++/STL.h (blurImage, charcoalImage, embossImage,
1047 	sharpenImage): Expand order_ argument to radius_ & sigma_
1048 	arguments for more control (matches ImageMagick API change).
1049
1050	* lib/Image.cpp (blur, charcoal, emboss, sharpen): Expand order_
1051 	argument to radius_ & sigma_ arguments for more control (matches
1052 	ImageMagick API change).
1053
10542000-08-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1055
1056	* lib/Image.cpp (read): Check returned Image for embedded
1057 	exception, as well as the existing parameter check.  This fixes
1058 	the bug that warnings are not reported.
1059
10602000-07-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1061
1062	* test/*.cpp demo/*.cpp: Added call to MagickIncarnate() to set
1063 	ImageMagick install location for Windows.  Hopefully this hack can
1064 	be removed someday.
1065
10662000-07-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1067
1068	* lib/Image.cpp (colorFuzz): Changed type to 'double' from
1069	'unsigned int' to match change in ImageMagick.
1070
1071	* lib/Color.cpp (Color*): Added copy constructor from base class.
1072	(operator =): Added assignment operator from base class.
1073
10742000-06-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1075
1076	* lib/Magick++/Include.h : Changed enumeration FilterType to
1077 	FilterTypes, and QuantumTypes to QuantumType in order to match
1078 	last-minute API change in ImageMagick.
1079
10802000-06-22  Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1081
1082        * lib/Magick++/Pixels.cpp (indexes): Bugfix, use GetCacheViewIndexes()
1083        rather than GetIndexes().
1084
10852000-05-23  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1086
1087	* lib/Magick++/Montage.h (gravity): Type of gravity_ argument, and
1088 	return value changed from 'unsigned int' to GravityType.
1089
10902000-04-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1091
1092	* lib/Drawable.cpp (DrawableArc, DrawableBezier, DrawablePolyline,
1093 	RoundRectangle): Added support for new drawing objects.
1094
10952000-04-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1096
1097	* lib/Drawable.cpp: Removed all public methods which accept
1098 	Coordinate arguments except those that accept lists of
1099 	Coordinates.  Converted remaining drawable object methods into
1100 	individual classes which inherit from Drawable (e.g. "circle"
1101 	becomes "DrawableCircle"). The constructor for each class is
1102 	compatible with the original method. This results in annoying
1103 	changes to user code but provides more implementation flexibility.
1104
11052000-04-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1106
1107	* lib/Drawable.cpp
1108 	(fillEllipse,fillRectangle,fillCircle,fillPolygon): Removed
1109 	methods.  Object filling is now based on whether fillColor or
1110 	penTexture are valid or not.  This reflects ImageMagick internal
1111 	changes.
1112
1113	* lib/Image.cpp (fillColor): New method to specify fill color when
1114 	drawing objects.
1115	(strokeColor): New method to specify outline color when drawing
1116 	objects.
1117	(penColor): Setting penColor now sets fillColor and
1118 	strokeColor. Getting penColor retrieves the value of
1119 	strokeColor. This supports backwards compatability.
1120
11212000-03-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1122
1123	* lib/Image.cpp (lineWidth): Type changed from unsigned int to double.
1124
11252000-03-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1126
1127	* lib/Magick++/STL.h (Magick):
1128
11292000-03-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1130
1131	* lib/Magick++/STL.h (blurImage,charcoalImage,edgeImage,embossImage,
1132	reduceNoiseImage,sharpenImage): Modified to support order of the
1133	pixel neighborhood. Backward compatable function objects constructors
1134 	are provided for embossImage, and reduceNoiseImage.
1135
1136	* lib/Image.cpp (blur,charcoal,edge,emboss,reduceNoise,sharpen):
1137	Now accept unsigned int argument which represents the order of the
1138	pixel neighborhood (e.g. 3).  This is not a backwards compatable
1139	change, however, backward compatable methods are provided for emboss,
1140	and reduceNoise.
1141
11422000-03-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1143
1144	* lib/Magick++/Pixels.h (Pixels): Moved Image pixel methods to
1145 	Pixels class.
1146
11472000-02-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1148
1149	* lib/Image.cpp (annotate): Re-wrote to improve performance.
1150	(draw): Re-wrote to improve performance.
1151
11522000-02-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1153
1154	* lib/Drawable.cpp (text): Bugfix: support spaces in annotation text.
1155
11562000-02-23  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1157
1158	* lib/Magick++/STL.h (gaussianBlurImage): New function object to
1159 	Gaussian blur image.
1160
1161	* lib/Image.cpp (gaussianBlur): New method to Gaussian blur image.
1162
11632000-02-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1164
1165	* lib/Image.cpp : Call-back based LastError class is eliminated in
1166 	favor of ImageMagick 5.2's re-entrant ExceptionInfo reporting.
1167  	This should make Magick++ thread safe under Win32.
1168
11692000-02-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1170
1171	* lib/Image.cpp (floodFillTexture): Fixed bug due to pixel pointer
1172 	becoming invalid in ImageMagick function.
1173
11742000-01-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1175
1176	* lib/Image.cpp : Added locking to reference counting to ensure
1177 	thread (pthread) safety.
1178
1179	* lib/Blob.cpp : Added locking to reference counting to ensure
1180 	thread (pthread) safety.
1181
1182	* lib/LastError.cpp: Added support for thread specific data
1183 	(pthreads) so that error reporting is thread safe.
1184
1185	* lib/Magick++/Thread.h: Added thread wrapper class to provide
1186 	thread-safe locking (pthreads) to Magick++.
1187
11882000-01-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1189
1190	* lib/Image.cpp: Added methods getPixels, setPixels, syncPixels,
1191 	readPixels, and writePixels, in order to provide low-level access
1192 	to Image pixels.  This approach (direct wrapper around ImageMagick
1193 	functions) does not mean that the planned object-oriented wrapper
1194 	has been forgotten, only that this wrapper is not ready yet, and
1195 	users need to manipulate pixels *now*.
1196
11972000-01-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1198
1199	* lib/LastError.cpp: Complete re-implementation of LastError so
1200 	that it hides its implementation.  Also assures that all memory is
1201 	explicitly deallocated at program exit to avoid the appearance of
1202 	a leak.
1203
12042000-01-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1205
1206	* lib/Image.cpp (size): Bug-fix. Set image columns and rows as
1207 	well as image options columns and rows.
1208
1209	* lib/Image.cpp :Depth parameters are now all unsigned in for consistency.
1210
1211	* lib/Image.cpp (write): Parameters for writing Blobs re-arranged
1212 	again to hopefully be more sensible.
1213
1214	* lib/Magick++/STL.h: Bug-fix. Re-number scenes from zero when linking
1215 	image range in container into a list. This provides expected results.
1216
12171999-12-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1218
1219	* lib/Image.cpp
1220	(write): Additional overloaded methods for BLOBs.
1221	(read):  Additional overloaded methods for BLOBs. Re-ordered
1222 	         parameters for one existing method.
1223	(Image): Additional overloaded methods for BLOBs.  Re-ordered
1224 	         parameters for one existing method.
1225
12261999-12-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1227
1228	* lib/Image.cpp (floodFillTexture): Changed coordinates to unsigned.
1229
12301999-12-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1231
1232	* lib/Image.cpp (medianFilter): New method.
1233
12341999-12-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1235
1236	* lib/Image.cpp (density): Bug fix. Was not setting image x & y density.
1237
12381999-11-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1239
1240	* lib/Image.cpp (page): psPageSize() is renamed to page() and now
1241 	properly returns the attribute from the image.
1242
12431999-11-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1244
1245	* lib/Image.cpp: Rename transformColorSpace() to colorSpace().
1246  	Added colorSpace() accessor method.
1247
12481999-11-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1249
1250	* lib/Color.cpp: Re-implemented PixelPacket pointer so that it is
1251 	never NULL and added a 'valid' field for tracking object validity.
1252
12531999-11-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1254
1255	* lib/Image.cpp (quantizeError): Eliminated method.
1256
12571999-11-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1258
1259	* lib/Image.cpp (annotate & draw): Changed implementation to
1260 	reflect change to the way AnnotateInfo is managed by ImageMagick.
1261
12621999-11-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1263
1264	* lib/Image.cpp (cacheThreshold): New method to set the pixel
1265 	cache threshold.
1266
1267	* lib/Magick++/Include.h (Magick): Added new enumerations from
1268 	classify.h.
1269
12701999-10-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1271
1272	* lib/Magick++/Options.h (fontPointsize): Argument is now a double
1273 	to match change in ImageMagick.
1274
1275	* lib/Image.cpp (fontPointsize): Argument is now a double to match
1276 	change in ImageMagick.
1277
12781999-10-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1279
1280	* lib/Blob.cpp (BlobRef): Bugfix -- start blob reference count at
1281 	one rather than zero.
1282
12831999-10-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1284
1285	* lib/Image.cpp (Image): Fixed Image constructors from Blob.  The
1286 	image reference was not being instantiated as it should have been,
1287 	causing a crash.
1288
12891999-10-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1290
1291	* lib/Blob.cpp: All blob length parameters are now of type size_t.
1292
1293	* lib/Image.cpp (write): Length estimate is now of type size_t.
1294
12951999-09-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1296
1297	* lib/Image.cpp (rotate): No longer accepts a crop option since
1298 	ImageMagick no longer supports this.
1299	(shear): No longer accepts a crop option since ImageMagick no
1300 	longer supports this.
1301
13021999-09-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1303
1304	* lib/Image.cpp:
1305	(rotate): No longer accepts sharpen argument.
1306  	User must sharpen separately if desired.  This change is due to a
1307 	similar change in ImageMagick 5.0.
1308	(condense): Removed method.
1309	(uncondense): Removed method.
1310	(condensed): Removed method.
1311	(pixelColor): Adapted to 5.0.
1312
1313	* lib/Magick++/Color.h : Rewrote to efficiently use ImageMagick
1314 	5.0's PixelPacket color representation.
1315
1316	* lib/Color.cpp : Rewrote to efficiently use ImageMagick 5.0's
1317 	PixelPacket color representation.
1318
13191999-09-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1320
1321	* lib/Image.cpp (condensed): Bug fix.  The condensed() method was returning the opposite bool value than it should.  Oops!
1322
13231999-09-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1324
1325	* lib/Magick++/Include.h (MagickCore): Eliminated requirement for
1326 	including <magick/define.h>.
1327
13281999-08-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1329
1330	* lib/Image.cpp: Added accessor methods for other key ImageMagick
1331 	structs.
1332
1333	* lib/Options.cpp (penTexture): Fixed bug with removing texture
1334 	caused by change in Image constructor.
1335
1336	* lib/Image.cpp: Changed strategy such that an Image containing a
1337 	null MagickCore::Image pointer is never constructed except for
1338 	under error conditions.  Removed existing checks for null image
1339 	pointer on attribute methods.
1340
1341	Use image() and constImage() accessor methods as part of Image
1342 	implementation in order to clean-up code and ensure
1343 	const-correctness.
1344
13451999-08-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1346
1347	* lib/Magick++/STL.h (Magick): Added STL function readImages().
1348  	Not tested yet.
1349	(Magick): Added STL function writeImages(). Not tested yet.
1350
1351	* lib/Image.cpp: Removed support for 'text' attribute as this is
1352 	no longer present in ImageMagick as of 4.2.8.
1353
13541999-07-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1355
1356	* lib/Image.cpp (condense): Skip condensing image if already
1357 	condensed.
1358	(uncondense): Skip uncondensing image if not condensed.
1359	(condensed): New method to test if image is condensed.
1360	(classType): New method which supports conversion of the image
1361 	storage class. May result in loss of color information
1362 	(quantization is used) if a DirectClass image is converted to
1363 	PseudoClass.
1364
13651999-07-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1366
1367	* lib/Magick++/Color.h (Magick::Color): Color parameters are now
1368 	stored in a MagickCore::RunlengthPacket structure which is
1369 	referenced via a pointer.  This structure is either allocated by a
1370 	Magick::Color constructor or passed as an argument to a
1371 	Magick::Color constructor so that it may refer to a
1372 	MagickCore::Image pixel. The owner of the structure is managed so
1373 	that the structure is only deleted if it was allocated by
1374 	Magick::Color.
1375
13761999-07-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1377
1378	* overall : Removed 'Magick' prefix from all source file
1379 	names. Moved class headers to Magick++ subdirectory.  This should
1380 	not break any code using the documented interface (via
1381 	Magick++.h).
1382
13831999-07-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1384
1385	* lib/MagickImage.cpp (composite): Support composition placement
1386 	by gravity like PerlMagick does.
1387
13881999-07-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1389
1390	* lib/MagickImage.cpp (Image): Added constructors to construct an
1391 	Image from a BLOB.
1392
13931999-07-06  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1394
1395	* tests/manipulate.cpp (main): Wrote a basic sanity test for
1396 	reading and writing BLOBS.
1397
13981999-06-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1399
1400	* lib/MagickImage.cpp (read): Added support for reading an encoded
1401 	image stored in a BLOB.  Uses new ImageMagick APIs introduced on
1402 	July 21, 1999.
1403	(write): Added support for writing an encoded image to a BLOB.
1404
14051999-06-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1406
1407	* lib/MagickInclude.h : Use new <magick/api.h> interface to
1408 	ImageMagick to avoid namespace-induced problems.
1409
1410	* configure.in : CPPFLAGS and LDFLAGS specified via the
1411 	environment take precidence over flags from Magick-config.
1412
14131999-05-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1414
1415	* lib/MagickSTL.h (mapImages): New algorithm to map the sequence
1416 	of images to the color map of a provided image.
1417	(quantizeImages): New algorithm to quantize a sequence of images
1418 	to a common color map.
1419
14201999-05-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1421
1422	* lib/MagickBlob.cpp (updateNoCopy): New method to allow derived
1423 	classes to insert data into the base class without making a copy
1424 	of the data. This represents a transfer of ownership of the data
1425 	from the derived class to the base class.
1426
14271999-05-23  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1428
1429	* lib/MagickColor.cpp (operator =): Adapted to new ImageMagick
1430 	4.2.6 as of 5/23/99 which removes X11 compatability functions.
1431
1432	* lib/MagickGeometry.cpp (operator =): Adapted to new ImageMagick
1433 	4.2.6 as of 5/23/99 which removes X11 compatability functions.
1434
14351999-05-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1436
1437	* lib/MagickBlob.cpp (Blob): Support default constructor for Blob.
1438
14391999-05-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1440
1441	* lib/MagickSTL.h (transformColorSpaceImage): New unary function object
1442 	to invoke transformColorSpace on STL container object.
1443
1444	* lib/MagickImage.cpp (transformColorSpace): New method to
1445 	transform the image data to a new colorspace.
1446
14471999-05-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1448
1449	* lib/MagickImage.cpp (ping): Re-implemented to match (requested)
1450 	API change in ImageMagick 4.2.5. Method signature has changed to
1451 	be like 'read'.
1452	(annotate): Added two new overloaded methods for text annotation
1453 	in order to support the new rotated text capability in ImageMagick
1454 	4.2.5.  To accomplish this, the default for gravity had to be
1455 	removed from several methods. This may impact existing code.
1456  	Still not sure if this is the best set of method signatures.
1457
14581999-05-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1459
1460	* lib/MagickImage.cpp (ping): New method to obtain image size in
1461 	bytes and geometry without the overhead of reading the complete
1462 	image.
1463	(uncondense): New method to uncompress run-length encoded pixels
1464 	into a simple array to make them easy to operate on.
1465
14661999-05-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1467
1468	* lib/MagickImage.cpp (comment): Passing an empty string as the
1469 	comment results in no comment at all rather than a comment with no
1470 	data.
1471
14721999-05-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1473
1474	* lib/MagickImage.cpp (iccColorProfile): Implemented method to set
1475 	ICC color profile from opaque object in memory (must be formatted
1476 	outside of Magick++).
1477	(iptcProfile): Implemented method to set IPTC profile from opaque
1478 	object in memory (must be formatted outside of Magick++).
1479
1480	* lib/MagickBlob.cpp: New class to support managing user-supplied
1481 	opaque Binary Large OBjects (BLOBS) in the API. Reference counted
1482 	to improve semantics and to possibly reduce memory consumption.
1483
14841999-05-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1485
1486	* lib/Makefile.am (libMagick): Updated to use libtool 1.3 so that
1487 	shared library can be built.
1488
14891999-04-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1490
1491	* lib/MagickImage.cpp (montageGeometry): Return Magick::Geometry
1492 	rather than std::string.
1493
14941999-04-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1495
1496	* lib/MagickColor.cpp (alpha): Added support for setting alpha via
1497 	scaled-double to the Color class.  The new method name is 'alpha'.
1498
14991999-04-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1500
1501	* lib/MagickColor.cpp: Added support for setting an alpha value
1502 	(unscaled Quantum only) for use on DirectColor images that have
1503 	matte enabled.  This requires ImageMagick 4.2.2 dated April 13,
1504 	1999 or later to compile since Cristy added a special flag to
1505 	allow testing to see if the user has specified an opacity value:
1506 	"I added XColorFlags to magick/classify.h.  If DoMatte is set in
1507 	color->flags then the opacity value is valid in color->pixel."
1508
15091999-04-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1510
1511	* demo/flip.cpp (main): New file.  Demonstrates use of flipImage
1512 	function object as well as morphImages algorithm.
1513
15141999-04-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1515
1516	* tests/color.cpp : New file to support testing the Magick::Color
1517 	classes.
1518
1519	* lib/MagickOptions.cpp: The ImageInfo filter member is now
1520 	ignored by ImageMagick (as of ImageMagick 4.2.2 April 10, 1998) so
1521 	support for setting it is removed. The Image filter member is
1522 	still updated. According to Cristy, this ImageMagick version
1523 	removes automatic sharpening of resized images.  The blur member
1524 	is added to the Image structure. A blur value < 1 causes the image
1525 	to be sharpened when resizing while a value > 1 leaves the image
1526 	blurry.  Magick++ does not yet support the blur member.
1527
1528
1529