• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
12011-02-12  6.6.7-7 Cristy  <quetzlzacatenango@image...>
2  * Add support for the strip() and stripImage() STL methods.
3
42011-02-01  6.6.7-2 Cristy  <quetzlzacatenango@image...>
5  * Remove extra '+' in the geometry operator.
6
72010-06-16  6.6.2-2 Cristy  <quetzlzacatenango@image...>
8  * Patch for compile problem in mapImages of the STL header.
9
102010-02-21  6.5.9-10 Cristy  <quetzlzacatenango@image...>
11  * Add extent() to extend the image as defined by the geometry, gravity, and
12	  image background color.
13
142009-11-14  6.5.7-8 Cristy  <quetzlzacatenango@image...>
15  * Add forwardFourierTransform(), inverseFourierTransform(), and
16    inverseFourierTransformImage() methods to implement forward and inverse
17    discrete Fourier transform (DFT / IFT).
18
192009-09-28  6.5.6-6 Cristy  <quetzlzacatenango@image...>
20  * Add splice() method to splice the background color into the image.
21
222009-04-01  6.5.1-1 Cristy  <quetzlzacatenango@image...>
23  * Add virtualPixelMethod() method for image and options, required for
24    distort().
25
262008-09-09  6.4.3-7 Cristy  <quetzlzacatenango@image...>
27  * Use ImagesToBlob() rather than ImageToBlob() for writeImages().
28
292007-10-02  6.3.6-7 Cristy  <quetzlzacatenango@image...>
30  * Define USE_MAP for Magick++/tests/colorHistogram.cpp (patch provided by
31    albert chin <china@thewr...>).
32
332007-04-10  6.3.3-7 Cristy  <quetzlzacatenango@image...>
34  * Add colorspaceType(RGBColorspace) to set RGB colorspace before an
35    image read (useful to convert CMYK Potscript to RGB).
36
372006-02-05  6.3.2-3 Cristy  <quetzlzacatenango@image...>
38  * Clear exception in throwException() method.
39
402006-01-16  6.3.2-0 Cristy  <quetzlzacatenango@image...>
41  * Add extent() method to extend the image as defined by the geometry.
42
432003-12-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
44
45	* demo/analyze.cpp (main): New program to demonstrate using the
46	'analyze' process module.
47	* demo/Makefile.am: Add rules to build analyze program.
48	* lib/Image.cpp (process): New method to execute process modules.
49	* lib/Image.cpp (attribute): New method to get and set named image
50	attributes.
51
522003-10-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
53
54	* lib/Color.cpp: Ensure that all non-default constructors set
55	opacity to opaque.
56
572003-09-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
58
59	* lib/Magick++/STL.h (colorHistogram): If map key is not const,
60        then implicit type conversion occurs.  Sun's C++ compiler doesn't
61        seem to handle that.  The map key is now defined as const in
62	the insert arguments.
63
642003-09-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
65
66	* tests/Makefile.am: Add build support for colorHistogram.cpp.
67	* tests/colorHistogram.cpp: New test program to test retrieving
68	color histograms from the image using colorHistogram().
69	* lib/Magick++/STL.h (colorHistogram): Added new template function
70	to retrieve a color histogram into a user-provided container.
71	Verified to work when using STL <vector> and <map> as the target
72	container types.  When <map> is used, a user-specified color may
73	be used to perform lookups in the map to obtain the usage count for
74	that color.
75	* lib/Color.cpp (operator >=): Insufficient resolution was being
76	provided in order to reliably sort color objects in STL
77	containers.  The updated algorithm should be fail-safe.
78
792003-08-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
80
81	* lib/Image.cpp (channelDepth): New method to set or get the
82	modulus depth for a specified channel.
83
842003-08-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
85
86	* lib/Magick++/Include.h (Magick): Added support for
87	CopyCyanCompositeOp, CopyMagentaCompositeOp,
88	CopyYellowCompositeOp, and CopyBlackCompositeOp, composition
89	operators.
90
912003-08-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
92
93	* lib/Image.cpp (depth): Method now only updates the
94	Image/ImageInfo depth member and retrieves the value of the Image
95	depth member.
96	(modulusDepth): New method to inspect the pixels for actual
97	modulus depth, or update/reduce the pixels to a specified modulus
98	depth.  The depth method was performing this function so any code
99	which depended on the depth method to compute or set the modulus
100	depth should be updated to use modulusDepth() instead.
101
1022003-08-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
103
104	* lib/Image.cpp (matte): If a new matte channel is created,
105	initialize it to opaque.  Likewise, if the matte channel is
106	eliminated, initialize the unused channel to opaque.
107
1082003-07-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
109
110	* demo/demo.cpp (main): Don't crop logo image.  *
111	* *.h, *.cpp: Include "Magick++/Include.h" before including any
112	compiler or system header in order to ensure that LFS defines are
113	properly applied. Inspired by patch from Albert Chin-A-Young.
114
1152003-06-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
116
117	* lib/Magick++/Include.h: Needed to import ThrowLoggedException.
118	* lib/Exception.cpp (throwException): Add originating source
119	module, source line, and function name (if available) to exception
120	report. This is useful in order to determine the exact conditions
121	that lead to the exception being thrown.
122	* lib/Magick++/Exception.h: Added ErrorCoder, WarningCoder,
123	ErrorConfigure, WarningConfigure, ErrorDraw, WarningDraw,
124	ErrorImage, WarningImage, ErrorMonitor, WarningMonitor,
125	ErrorRegistry, WarningRegistry, ErrorStream, WarningStream,
126	ErrorType, and WarningType, exception classes to support the full
127	set of exceptions that ImageMagick can throw.
128
1292003-06-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
130
131	* lib/CoderInfo.cpp (CoderInfo): Applied compilation fix from
132	Mike Chiarappa to compile using Borland C++.
133
1342003-06-06  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
135
136	* lib/Geometry.cpp (string): Throw an exception if a string is
137	requested from an invalid geometry object.
138
1392003-06-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
140
141	* lib/Geometry.cpp (operator =): If GetGeometry returns NoValue,
142	then assign an invalid geometry object to cause an exception if
143	the geometry is then used.
144
1452003-06-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
146
147	* lib/Magick++/Exception.h (ErrorModule): Added class to handle
148	module errors.
149	* lib/Magick++/Exception.h (WarningModule) Added class to handle
150	module warnings.
151
1522003-05-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
153
154	* lib/Magick++/STL.h (coderInfoList): Use GetMagickInfoArray to
155	access coder list.
156
1572003-05-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
158
159	* lib/Magick++/STL.h (affineTransformImage): Add function object
160	contributed by Vladimir Lukianov to apply an affine transform to
161	the image.
162	* lib/Image.cpp (affineTransform): Added method contributed by
163	Vladimir Lukianov to apply an affine transform to the image.
164
1652003-05-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
166
167	* lib/Magick++/Include.h: Decided to back out change
168	which used the _VISUALC_ define to trigger inclusion of
169	<sys/types.h>.
170
1712003-05-14  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
172
173	* lib/Magick++/Include.h: If _VISUALC_ is defined,
174	include <sys/types.h>. This ensures that this necessary
175	header is included even if HAVE_SYS_TYPES_H is not defined
176	in magick-config.h.
177
1782003-05-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
179
180	* lib/Image.cpp (InitializeMagick): InitializeMagick is
181	now a C++ function rather than a namespace inclusion.
182	An atexit() handler is registered to invoke DestroyMagick
183	when the program exits. Relying on static deconstruction
184	to invoke DestroyMagick proved to be unreliable due to
185	translation unit destruction uncertainty.
186
1872003-04-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
188
189	* lib/Image.cpp (Image::Image (MagickCore::Image* image_)):
190	Incorporated recommended fix from Jukka Manner to avoid
191	a scenario which leaks an Options object.
192	* tests/coalesceImages.cpp: Updated to use modified
193	coalesceImages() interface.
194	* lib/Magick++/STL.h (coalesceImages): Replaced implementation
195	with one from Felix Heimbrecht. The template signature has
196	changed to return a new image sequence. This template API
197	silently ceased to funtion due to an ImageMagick CoalesceImages
198	API change.
199
2002003-03-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
201
202	* tests/readWriteBlob.cpp (main): Added check for
203	stream read failure when reading blob data.
204	(class myBlob): Use get rather than read.
205
2062003-03-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
207
208	* tests/attributes.cpp : Change in the way that Magick++
209	retrieves density caused tests to fail.  Density now defaults
210	to 72x72 (ImageMagick default) rather than invalid.
211
2122003-03-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
213
214	* demo/Makefile.am (CLEANFILES): Fix clean target to remove
215	*_out.mvg output files as well.
216	* demo/zoom.cpp: Added a command-line parser for dash
217	arguments as well as an image "resample" capability.
218	* lib/Image.cpp (density): Obtain density from Image
219	rather than ImageInfo if the Image is valid.
220
2212003-03-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
222
223	* lib/Makefile.am : Added rules to install ImageMagick++.pc.
224	* lib/ImageMagick++.pc.in : Added pkgconfig file for
225	-lImageMagick++.
226
2272003-02-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
228
229	* lib/Image.cpp (colorSpace): Pass image->colorspace to
230	TransformRGBColorspace.
231
2322003-01-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
233
234	* lib/Magick++/STL.h (writeImages): Should have been invoking
235 	WriteImages rather than WriteImage!
236
2372003-01-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
238
239	* lib/Magick++/Include.h: Add HSL and HWB colorspace
240 	transformation support.
241
2422003-01-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
243
244	* lib/Image.cpp (colorSpace): Support colorspace transforms
245	other than to and from RGB by translating to RGB as an intermediate
246	step.
247
2482002-11-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
249
250	* lib/Drawable.cpp: Added DrawablePushClipPath,
251 	DrawablePopClipPath, and DrawableClipPath.  Implementation
252 	contributed by Vladimir <lvm@integrum.ru>.
253
2542002-11-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
255
256	* lib/Image.cpp (colorMapSize): New method to set, or return
257	the colormap size.
258
2592002-11-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
260
261	* lib/Image.cpp (adaptiveThreshold): New method.
262
2632002-10-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
264
265	* lib/Magick++/STL.h (coderInfoList): Intentionally ignore missing
266 	delegate exceptions.
267
2682002-09-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
269
270	* lib/Options.cpp (textEncoding): Had forgotten to implement
271 	textEncoding!
272
2732002-09-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
274
275	* lib/Color.cpp (Color): Use of 'new' and 'delete' in inlines was
276 	causing memory allocation/deallocation problems for users of the
277 	DLL build.  Problem was identified by Marc Iwan.
278
2792002-09-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
280
281	* lib/Image.cpp (compare): New method to compare current image
282 	with a reference image.
283
2842002-08-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
285
286	* lib/Image.cpp (textEncoding): New method to allow setting the
287 	default text encoding (e.g. "UTF-8").
288
289	* lib/Drawable.cpp (DrawableText): Added an alternate constructor
290 	to allow specifying the text encoding (e.g. "UTF-8").
291
2922002-08-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
293
294	* Overall: Now compiles as a DLL using Visual C++.
295
2962002-07-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
297
298	* lib/Image.cpp (profile): Added method to store, delete, or
299 	retrieve named application profiles.
300
3012002-07-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
302
303	* lib/Image.cpp (type): Set the ImageInfo type attribute when
304 	setting the image type.  If the type attribute is set to something
305 	other than UndefinedType (implying that the user has set a desired
306 	output image type), then return that as the image type, otherwise
307 	use GetImageType() to evaluate the image type.
308
3092002-05-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
310
311	* lib/Drawable.cpp (DrawableTextUnderColor): New class to set the
312 	text undercolor.  When text undercolor is set, a rectangle of the
313 	specified color is rendered under text annotations.
314
3152002-05-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
316
317	* Magick++ library no longer depends on iostreams at all.
318
3192002-04-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
320
321	* lib/Image.cpp (throwImageException): ExceptionInfo was not being
322 	properly initialized.  This could cause some errors to cause an
323 	abort in error.c rather than throwing an exception.
324
3252002-04-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
326
327	* lib/Image.cpp (draw): Use draw.h drawing APIs to draw on image.
328  	This means that MVG output no longer comes from code in
329 	Drawable.cpp.
330
3312002-04-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
332
333	* lib/STL.cpp: Moved function object implementations from STL.h to
334 	STL.cpp.
335
3362002-04-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
337
338	* lib/Image.cpp (getConstPixels): Changed offset parameter type
339 	from 'unsigned int' to 'int'.
340	(getPixels): Changed offset parameter type from 'unsigned int' to
341 	'int'.
342	(setPixels): Changed offset parameter type from 'unsigned int' to
343 	'int'.
344	(cacheThreshold): Changed argument type from 'const long' to
345 	'const int'.
346	(matteFloodfill): Changed offset parameter type from 'const long' to
347 	'const int'.
348
349	* lib/Pixels.cpp (getConst): New method to return read-only pixels.
350	(get): Offset parameter types changed from 'unsigned int' to 'int'.
351
3522002-04-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
353
354	* lib/Magick++/Drawable.h (DrawableDashOffset): Change dashoffset
355 	type to 'double' rather than 'unsigned int' in order to match
356 	ImageMagick.
357
358	* lib/Drawable.cpp (DrawableDashArray): Change dasharray type to
359 	'double' rather than 'unsigned int' in order to match
360 	ImageMagick. Previous 'unsigned int' methods remain for
361 	compatability reasons.
362
3632002-04-14  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
364
365	* lib/Drawable.cpp (DrawableCompositeImage): Always output
366 	composite images as inlined Base64.
367
3682002-04-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
369
370	* lib/Drawable.cpp (DrawableCompositeImage): If magick attribute
371 	string is specified, then composite image is supplied to
372 	ImageMagick as inlined Base64 rather than by MPRI reference.
373
374	* lib/Blob.cpp (base64): Added methods to update Blob with data
375 	from Base64-encoded string, or to return a Base64-encoded string
376 	from Blob.  Still needs documentation.
377
3782002-04-09  Dom Lachowicz    <cinamod@hotmail.com>
379
380	* lib/Image.cpp (Image::ping): Added PingBlob function
381
3822002-04-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
383
384	* lib/Drawable.cpp (DrawableDashArray::operator=): Added missing
385 	assignment operator (fixes a bug).
386	(DrawableDashArray::DrawableDashArray): Added missing copy
387 	constructor (fixes a bug).
388
389	* lib/Image.cpp (oilPaint): Changed argument type from unsigned
390 	int to double.
391	(chromaBluePrimary): Changed argument type from float to double.
392	(chromaGreenPrimary): Changed argument type from float to double.
393	(chromaRedPrimary): Changed argument type from float to double.
394	(chromaWhitePoint): Changed argument type from float to double.
395	(getConstPixels): Changed argument type of x_ & _y from 'int' to
396 	'unsigned int'.
397	(getPixels): Changed argument type of x_ & _y from 'int' to
398 	'unsigned int'.
399
4002002-04-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
401
402	* lib/Image.cpp (debug): Added method to set ImageMagick debug
403 	flag so that it prints debugging information while it runs.
404
4052002-04-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
406
407	* lib/Drawable.cpp: Fixed a bunch of bugs related to
408 	DrawableCompositeImage, DrawableFont, and inconsistencies
409 	discovered by Gimpel lint.
410
4112002-04-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
412
413	* lib/Image.cpp (draw): Properly delimit individual drawing
414 	commands so that MVG output is correct.
415
4162002-03-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
417
418	* lib/Drawable.cpp (DrawableViewbox): MVG syntax wasn't correct.
419
420	* lib/Image.cpp (draw): Fix algorithm used to append newlines to
421 	MVG commands so that draw() may be invoked multiple times while
422 	still producing valid MVG.
423
4242002-03-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
425
426	* lib/Drawable.cpp (DrawableViewbox): New class to allow setting
427 	the MVG output size.
428
4292002-03-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
430
431	* lib/Drawable.cpp (print): Changed "mpr:" to "mpri:" in order to
432 	*finally* get DrawableCompositeImage to work as intended.
433
434	* lib/Image.cpp (registerId): Bugfix. Register using
435 	sizeof(MagickCore::Image) rather than sizeof(Image).
436
4372002-03-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
438
439	* lib/Drawable.cpp (DrawableCompositeImage): Had failed to
440 	initialize width and height in object to image width and height.
441
4422002-02-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
443
444	* lib/Magick++/STL.h (endianImage): New class to specify the
445 	endian option for formats which support this notion (e.g. TIFF).
446
447	* lib/Image.cpp (endian): New method to specify the endian option
448 	for formats which support this notion (e.g. TIFF).
449
4502002-02-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
451
452	* lib/Drawable.cpp (DrawableFont): Support specifying a font via
453 	font-family, font-style, font-weight, and font-stretch. Wildcard
454 	matches are supported.
455
4562002-02-06  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
457
458	* lib/Image.cpp (charcoal): Replace Magick++'s charcoal effect
459 	with the output of ImageMagick's CharcoalImage function in order
460 	to ensure consistency.
461
462	* lib/Magick++/CoderInfo.h (MatchType): Scope the MatchType
463 	enumeration to the CoderInfo class so these enumeration names can
464 	be re-used elsewhere without conflict.  This results in a minor
465 	API change to the coderInfoList() templated function since
466 	enumerations must be specified like "CoderInfo::TrueMatch" rather
467 	than just "TrueMatch".  Hopefully not a problem since this
468 	function and class were not documented outside of the headers
469 	until this release.
470
4712002-02-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
472
473	* lib/Magick++/STL.h (coderInfoList): Finally wrote some
474 	documentation.
475
4762002-01-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
477
478	* lib/Options.cpp : Use DestroyImageList() rather than DestroyImage().
479
480	* lib/Geometry.cpp (operator =): Use GetPageGeometry() rather than
481 	PostscriptGeometry() to parse geometry specifications containing a
482 	page size.
483
4842002-01-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
485
486       * Remove bogus cast of blob data in readImages().
487
4882002-01-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
489
490	* lib/Image.cpp (throwImageException): Throwing exceptions was
491 	leaking memory.
492
493	* lib/Exception.cpp (throwException): Throwing exceptions was
494 	leaking memory.
495
496	* lib/Image.cpp (replaceImage): Updated to properly handle
497 	registration ids.
498	(modifyImage): Updated to properly handle registration ids.
499
5002002-01-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
501
502	* lib/Drawable.cpp (Magick::DrawableGravity::print):
503 	Bugfix. Remove "Gravity" from the end of each gravity
504 	specification string.  Reported as PR#1084 by stefan@dotify.com.
505
5062002-01-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
507
508	* lib/Image.cpp, Magick++/Include.h: Use DestroyImageList() rather
509 	than DestroyImages().
510
5112002-01-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
512
513	* lib/Magick++/Options.h (antiAlias): Bugfix, set
514 	drawInfo->text_antialias to control text antialiasing.
515
5162002-01-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
517
518	* lib/Magick++/Include.h : Imported new composition operators to
519 	namespace: NoCompositeOp, DarkenCompositeOp, LightenCompositeOp,
520 	HueCompositeOp, SaturateCompositeOp, ValueCompositeOp,
521 	ColorizeCompositeOp, LuminizeCompositeOp, ScreenCompositeOp,
522 	OverlayCompositeOp.
523
5242001-12-27  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
525
526	* lib/Image.cpp (strokePattern): New method to specify image to
527 	use as pattern while drawing stroked-outlines of drawn objects.
528	(fillPattern): New method to specify image to use as pattern while
529 	filling drawn objects.
530	(penTexture): Method is officially deprecated.  Don't use anymore.
531	(penColor): Method is officially deprecated. Don't use anymore.
532
533	* lib/Drawable.cpp (DrawablePushPattern): Support pushing
534 	(starting) pattern definition.
535	(DrawablePopPattern): Support popping (terminating) pattern
536 	definition.
537
5382001-12-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
539
540	* lib/Drawable.cpp (DrawableCompositeImage): Read image
541 	immediately if provided by filename, register with peristent
542 	registry, and pass as perisistant image type.
543	(DrawableCompositeImage): Support specifying Image in memory.
544  	Passed as perisistant image type.
545
5462001-12-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
547
548	* lib/Color.cpp (operator std::string): Color string buffer was
549 	one character too short!
550
5512001-12-20  Bob Friesenhahn  <bfriesen@sun1107.ssd.usa.alcatel.com>
552
553	* lib/TypeMetric.cpp (characterWidth): Eliminate method.
554	(characterHeight): Eliminate method.
555	(all remaining methods): Change return type to 'double'.  Fix
556 	documentation in source files to reflect that units are in pixels
557 	rather than points.
558	(descent): Renamed method from 'decent' to 'descent'.
559
5602001-11-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
561
562	* lib/Image.cpp (Magick): Invoke DestroyMagick() to clean up
563 	ImageMagick allocations.
564
565	* lib/Magick++/Include.h (ImageType): Added some missing enums to
566	Magick namespace.
567
5682001-11-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
569
570	* lib/Magick++/CoderInfo.h (CoderInfo): Syntax fix.
571	ImageMagick bug #975.
572
573	* lib/Image.cpp (draw): Delete ostrstream data when it is no
574 	longer needed.  ImageMagick bug #988.
575
5762001-11-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
577
578	* lib/Image.cpp (pixelColor): Implementation didn't handle pixels
579	indexes correctly.  Now it does.
580
5812001-11-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
582
583	* lib/Image.cpp (matteFloodfill): Coordinates are long values.
584	(floodFillOpacity): New method to floodfill opacity across pixels
585	matching color (within fuzz-factor) at point. Similar to
586	matteFloodfill except that color is selected from starting point.
587
5882001-10-29  Bob Friesenhahn  <bfriesen@sun1107.ssd.usa.alcatel.com>
589
590	* lib/Image.cpp (strokeDashArray): Change to type double.
591	(strokeDashOffset): Change to type double.
592
5932001-10-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
594
595	* lib/Geometry.cpp (Geometry): Add constructor from
596 	MagickCore::RectangleInfo.
597
598	* lib/Image.cpp (boundingBox): Method to return smallest bounding
599 	box enclosing non-border pixels.
600
6012001-10-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
602
603	* lib/Image.cpp (getConstIndexes): Add method to obtain read-only
604 	pixel indexes.
605	(getIndexes): Add method to obtain read-write pixel indexes.
606	(Image::Image): Send warnings from Image constructor to cerr
607 	rather than throwing.
608
609	* lib/Color.cpp (Color(PixelPacket&)): Change argument to const
610 	PixelPacket& as it should have been from the beginning.
611
612	* lib/Image.cpp (pixelColor): Reimplemented to be a const method.
613
6142001-10-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
615
616	* lib/Image.cpp (getConstPixels): New method for returning a
617 	read-only pixel view.  Still requires documentation.
618
619	* lib/Magick++/STL.h (coderInfoList): Fixed compilation problem
620 	when compiling with Visual C++.
621
6222001-10-06  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
623
624	* lib/Magick++/Color.h (scaleQuantumToDouble): Add polymorphic
625 	version that accepts double to avoid downconversion error.
626
6272001-10-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
628
629	* lib/Magick++/Color.h (scaleQuantumToDouble): Cast Quantum to
630 	double prior to division.  Hopefully fix bug.
631
6322001-10-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
633
634	* lib/Magick++/Color.h (Color(const std::string)): Pass argument by reference.
635	* (operator=): Pass argument by const reference.
636
6372001-09-23  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
638
639	* lib/Magick++/STL.h (coderInfoList): New function to support
640 	obtaining format coder information (as a list of type CoderInfo).
641
642	* lib/CoderInfo.cpp (CoderInfo): New class to support obtaining
643 	format coder information.
644
6452001-09-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
646
647	* lib/Image.cpp (depth): Use GetImageDepth and SetImageDepth
648 	rather than just getting/setting depth attributes.
649
650	* lib/Magick++/STL.h (opacityImage): New unary function object to
651 	set, or attenuate, image pixel opacity throughout the image.
652
653	* lib/Image.cpp (opacity): New method to set, or attenuate, image
654 	pixel opacity throughout the image.
655
656	* lib/Magick++/STL.h (typeImage): New unary function object to set
657 	image type.
658
659	* lib/Image.cpp (type): Added ability to set image type.
660
6612001-09-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
662
663	* lib/Image.cpp (write(Blob)): Tell blob to use malloc allocator.
664
665	* lib/Blob.cpp (updateNoCopy): Added parameter so that user can
666 	specify the allocation system (malloc or new) the memory came
667 	from.  Defaults to C++ memory allocator.
668
6692001-09-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
670
671	* lib/Image.cpp (fileSize): Decided to change return type to off_t
672 	for increased range and portability.
673
6742001-09-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
675
676	* lib/Image.cpp (fileSize): Changed return value to double.
677
6782001-09-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
679
680	* lib/Image.cpp (colorMap): Allocate a colormap if it does not
681 	already exist.
682
683	* lib/Pixels.cpp (indexes): Don't attempt to validate image type.
684
685	* lib/Image.cpp (colorMap): Optimized more for performance.
686
6872001-09-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
688
689	* lib/Image.cpp (fontTypeMetrics): New method to support
690 	retrieving font metrics.
691
692	* lib/TypeMetric.cpp : New class to support font metrics
693 	information.
694
6952001-09-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
696
697	* lib/Magick++/Color.h (scaleDoubleToQuantum): Inline static
698 	method made from previous ScaleDoubleToQuantum #define.
699	(scaleQuantumToDouble): Inline static method made from previous
700 	ScaleQuantumToDouble #define. Helps avoid possibility of clash
701 	with user code.
702
7032001-08-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
704
705	* lib/Image.cpp (colorMap): Automagically extend colormap if
706 	specified index is past end of current colormap.  Colormap is
707 	limited to a maximum depth of QuantumRange entries.
708
7092001-08-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
710
711	* lib/Image.cpp (clipMask): New method to add a clip mask to the
712 	image.  Adds clipping to any image operation wherever the clip
713 	mask image is tranparent.
714
7152001-08-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
716
717	* lib/Drawable.cpp (print): Add single quotes around file names
718 	and font specifications.
719
7202001-07-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
721
722	* lib/Image.cpp (read): Ensure that only a single image frame is read.
723
7242001-07-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
725
726	* lib/Magick++/STL.h (flattenImages): New function to flatten a
727 	layered image.
728
729	* lib/Montage.cpp (Montage): Montage initial defaults are no
730 	longer drawn from ImageInfo.  MontageInfo structure is entirely
731 	filled out by updateMontageInfo();
732
7332001-07-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
734
735	* lib/Montage.cpp (updateMontageInfo): Bugfix; colors which were
736 	intentionally specified as invalid (unset) were being ignored.
737  	This produced unattractive label text when doing a montage.
738
7392001-07-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
740
741	* lib/Magick++/STL.h (medianFilterImage): Changed argument from
742 	unsigned int to const double.
743	(fillColorImage): New method.
744	(strokeColorImage): New method.
745	(isValidImage): New method.
746
747	* lib/Magick++/Image.h (edge): Change argument from unsigned int to double.
748	(medianFilter): Changed argument from unsigned int to const double.
749
750	* lib/Magick++/STL.h (edgeImage): Change argument from unsigned int to double.
751
752	* demo/demo.cpp (main): Updated to match PerlMagick demo.
753
7542001-06-23  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
755
756	* lib/Magick++/STL.h (shaveImage): New function to shave edges from image.
757
758	* lib/Image.cpp (shave): New method to shave edges from image.
759
7602001-06-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
761
762	* lib/Image.cpp (quantize): Remove conditions on whether
763 	quantization should be done.  Now quantization is always done.
764
7652001-06-14  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
766
767	* lib/Magick++/Image.h (blur,charcoal,emboss,sharpen): Changed
768 	radius and sigma parameters to match current ImageMagick defaults.
769
7702001-02-22  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
771
772	* lib/Options.cpp (updateDrawInfo): The updateDrawInfo() method
773 	was no longer needed.  Due to ImageMagick changes, calling it was
774 	causing some options to be lost.
775
7762001-01-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
777
778	* lib/Image.cpp (fillRule): New method to specify the rule to use when filling drawn objects.
779
7802001-01-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
781
782	* lib/Image.cpp (erase): New method to reset image to background
783 	color.
784	(strokeAntiAlias): New method to control antialiasing of stroked
785 	objects.
786
7872001-01-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
788
789	* lib/Image.cpp (channel): Renamed method from 'layer' to match
790 	equivalent change in ImageMagick (ChannelImage).  Enumeration
791 	names *Layer renamed to *Channel.
792
7932001-01-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
794
795	* lib/Magick++/Montage.h (strokeColor): New method.
796	(fillColor): New method.
797
798	* lib/Image.cpp (replaceImage): Revised logic so that an inValid
799 	image should be returned if a NULL pointer is passed.  Before this
800 	change the existing image was preserved.
801	(label): Work-around ImageMagick SetImageAttribute bug.
802
8032001-01-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
804
805	* lib/Image.cpp : Adjusted to ImageMagick animation parameter API change.
806
8072000-12-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
808
809	* lib/Drawable.cpp (DrawableCompositeImage): Support specifying
810 	composition rule.
811
8122000-12-27  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
813
814	* lib/Image.cpp (draw): Bugfix - the primitive string was not
815 	properly null terminated. It is a wonder that the code usually
816 	worked at all.  Thanks to afatela@marktest.pt for reporting it.
817
8182000-12-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
819
820	* lib/Magick++/STL.h (deconstructImages): New STL function for
821 	deconstructing an image list to assist with creating an animation.
822	(mosaicImages): New STL function for inlaying an image list to
823 	form a single coherent picture.
824
8252000-12-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
826
827	* lib/Image.cpp (convolve): New method to convolve image using
828 	user-supplied convolution matrix.
829	(unsharpmask): New method to replace image with a sharpened
830 	version of the original image using the unsharp mask algorithm.
831
8322000-12-14  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
833
834	* : Adapted to ImageMagick API change which eliminates AnnotateInfo.
835
8362000-12-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
837
838	* lib/Magick++/STL.h (annotateImage): Brought into sync with
839 	annotate methods in Image.
840
8412000-12-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
842
843	* lib/Image.cpp (annotate): Usage of Geometry parameter was
844 	incorrect. Geometry parameter is used to specify bounding area.
845  	This changes the interpretation for two of the annotate methods
846 	(which probably weren't usable before).
847
8482000-11-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
849
850	* lib/Magick++/Color.h (alphaQuantum): Bugfix.  Due to change in
851 	treatment of opacity member, alphaQuantum() was not allowing value
852 	to be set.
853
8542000-11-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
855
856	* lib/Drawable.cpp (DrawableFillRule): New class to specify fill
857 	rule (see SVG's fill-rule).
858	(DrawableDashOffset): New class to specify initial offset in dash
859 	array.
860	(DrawableDashArray): New class to specify a stroke dash pattern.
861	(DrawableStrokeLineCap): New class to specify the shape to be used
862 	at the end of open subpaths when they are stroked.
863	(DrawableStrokeLineJoin): New class to specify the shape to be
864 	used at the corners of paths (or other vector shapes) when they
865 	are stroked.
866	(DrawableMiterLimit): New class to specify extension limit for
867 	miter joins.
868
8692000-11-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
870
871	* lib/Image.cpp (annotate): Reimplement text rotation using affine
872 	member of AnnotateInfo.
873	(strokeDashOffset): New method for specifying the dash offset to use for
874 	drawing vector objects. Similar to SVG stroke-dashoffset.
875	(strokeDashArray): New method for specifying the dash pattern to use
876 	for drawing vector objects.  Similar to SVG stroke-dasharray
877	(strokeLineCap): New method to specify the shape to be used at the end
878 	of open subpaths when they are stroked. Similar to SVG
879 	stroke-linecap.
880	(strokLineJoin): New method to specify the shape to be used at the
881 	corners of paths (or other vector shapes) when they are
882 	stroked. Similar to SVG stroke-linejoin.
883	(strokeMiterLimit): New method to specify the miter limit when joining
884 	lines using MiterJoin. Similar to SVG stroke-miterlimit.
885	(strokeWidth): Renamed lineWidth method to strokeWidth.
886
8872000-10-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
888
889	* lib/Magick++/Drawable.h (DrawableCompositeImage): Add a
890 	short-form constructor to support specifying image location and
891 	name, but without specifying rendered size (use existing image
892 	size).
893
8942000-10-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
895
896	* lib/Magick++/Drawable.h (DrawablePopGraphicContext): New class
897 	to pop graphic context.
898	(DrawablePushGraphicContext): New class to push graphic context.
899
900	* lib/Drawable.cpp (DrawableStrokeAntialias): New class to set
901 	stroke antialiasing.
902	(DrawableTextAntialias): New class to set text antialiasing.
903
9042000-10-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
905
906	* lib/Image.cpp (transformOrigin): New method to set origin of
907 	coordinate system for use when annotating with text or drawing
908	(transformRotation): New method to set rotation for use when
909 	annotating with text or drawing
910	(transformScale): New method to set scale for use when annotating
911 	with text or drawing.
912	(transformSkewX): New method to set skew for use in X axis when
913 	annotating with text or drawing.
914	(transformSkewY): New method to set skew for use in Y axis when
915 	annotating with text or drawing.
916	(transformReset): New method to reset transformation to default.
917
918	* lib/Drawable.cpp (DrawablePath): New class for drawing SVG-style
919 	vector paths.
920	(PathArcArgs): New class. Argument for PathArcArgs & PathArcAbs.
921	(PathArcAbs): New class. Draw arc using absolute coordinates.
922	(PathArcRel): New class. Draw arc using relative coordinates.
923	(PathClosePath): New class. Close drawing path.
924	(PathCurvetoArgs): New class. Argument class for PathCurvetoAbs &
925 	PathCurvetoRel.
926	(PathCurvetoAbs): New class. Cubic bezier, absolute coordinates
927	(PathCurvetoRel): New class. Cubic bezier, relative coordinates
928	(PathSmoothCurvetoAbs): New class. Cubic bezier, absolute
929 	coordinates
930	(PathSmoothCurvetoRel): New class. Cubic bezier, relative
931 	coordinates
932	(PathQuadraticCurvetoArgs): New class. Argument class for
933 	PathQuadraticCurvetoAbs and PathQuadraticCurvetoRel.
934	(PathQuadraticCurvetoAbs): New class. Quadratic bezier, absolute
935 	coordinates
936	(PathQuadraticCurvetoRel): New class. Quadratic bezier, relative
937 	coordinates
938	(PathSmoothQuadraticCurvetoAbs): New class. Quadratic bezier,
939 	absolute coordinates
940	(PathSmoothQuadraticCurvetoRel): New class. Quadratic bezier,
941 	relative coordinates
942	(PathLinetoAbs): New class. Line to, absolute coordinates
943	(PathLinetoRel): New class. Line to, relative coordinates
944	(PathLinetoHorizontalAbs): New class. Horizontal lineto, absolute
945 	coordinates
946	(PathLinetoHorizontalRel): New class. Horizontal lineto, relative
947 	coordinates
948	(PathLinetoVerticalAbs): New class. Veritical lineto, absolute
949 	coordinates.
950	(PathLinetoVerticalRel): New class. Vertical lineto, relative
951 	coordinates.
952	(PathMovetoAbs): New class. Moveto, absolute coordinates
953	(PathMovetoRel): New class. Moveto, relative coordinates
954
9552000-10-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
956
957	* lib/Drawable.cpp (DrawableSkewX): New object to apply skew in X direction.
958	(DrawableSkewY): New object to apply skew in Y direction.
959
9602000-10-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
961
962	* lib/Image.cpp (edge): Change argument from 'unsigned int' to
963 	'double' in order to match ImageMagick API.
964
9652000-10-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
966
967	* lib/Drawable.cpp (DrawableCompositeImage): Renamed from
968 	DrawableImage.
969	(DrawableTextDecoration): Renamed form DrawableDecoration.
970	(all-classes): Complete re-write to write the drawing command to a
971 	stream when draw() is invoked rather than at object construction
972 	time. This may be somewhat slower for individual draw operations
973 	but should be at least as fast for lists of drawing commands,
974 	and is more flexible going into the future. Drawable classes now
975 	inherit from DrawableBase but are passed into STL lists and Image
976 	draw() methods via the surrogate class Drawable.  The upshot of
977 	all this is that the existing published API has not been altered
978 	but things work much differently under the covers.
979
9802000-10-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
981
982	* lib/Drawable.cpp (DrawableStrokeColor): Renamed from DrawableStroke
983	(DrawableFillColor): Renamed from DrawableFill
984	(DrawableRotation): New class to influence object rotation.
985	(DrawableScaling): New class to influence object scaling.
986	(DrawableTranslation): New class to influence object translation.
987
9882000-10-04  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
989
990	* lib/Drawable.cpp (DrawableAffine): New class to influence object
991 	scaling, rotation, and translation (as defined by SVG XML).
992	(DrawableAngle): New class to influence drawing angle.
993	(DrawableDecoration): New class to influence text decoration such
994 	as underline.
995	(DrawableFill): New class to set object filling color.
996	(DrawableFillOpacity): New class to set opacity to use when
997 	filling object.
998	(DrawableFont::): New class to set font.
999	(DrawableGravity): New class to set text placement gravity.
1000	(DrawablePointSize): New class to set font point size.
1001	(DrawableStroke): New class to set drawing stroke color.
1002	(DrawableStrokeOpacity): New class to set drawing stroke opacity.
1003	(DrawableStrokeWidth): New class to set drawing stroke width.
1004
10052000-10-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1006
1007	* lib/Drawable.cpp (DrawableImage): Added width and height
1008 	parameters to specify size to scale rendered image to.  This is
1009 	actually a bug-fix since it seems that the correct drawing command
1010 	was no longer being generated.
1011
10122000-09-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1013
1014	* lib/Image.cpp (read): New overloaded method to read an image
1015 	based on an array of raw pixels, of specified type and mapping, in
1016 	memory.
1017	(write): New overloaded method to write image to an array of
1018 	pixels, of specified type and mapping.
1019	(Image): New overloaded constructor to construct an image based on
1020 	an array of raw pixels, of specified type and mapping, in memory.
1021
10222000-09-27  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1023
1024	* lib/Image.cpp (colorize): API change to match change in
1025 	ImageMagick.  Now accepts percentage of red, green, and blue to
1026 	colorize with using specified pen color.
1027
10282000-09-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1029
1030	* lib/Magick++/Drawable.h: Reverted Coordinate implemenation back
1031 	from and STL pair based implementation to a simple class.  Maybe
1032 	this will improve portability.  It is more understandable anyway.
1033
10342000-09-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1035
1036	* lib/Options.cpp : Bugfix.  Some DrawInfo attributes were not
1037 	being updated.  This lead to options like fontPointsize not
1038 	changing the font.
1039
10402000-08-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1041
1042	* lib/Magick++/STL.h (blurImage, charcoalImage, embossImage,
1043 	sharpenImage): Expand order_ argument to radius_ & sigma_
1044 	arguments for more control (matches ImageMagick API change).
1045
1046	* lib/Image.cpp (blur, charcoal, emboss, sharpen): Expand order_
1047 	argument to radius_ & sigma_ arguments for more control (matches
1048 	ImageMagick API change).
1049
10502000-08-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1051
1052	* lib/Image.cpp (read): Check returned Image for embedded
1053 	exception, as well as the existing parameter check.  This fixes
1054 	the bug that warnings are not reported.
1055
10562000-07-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1057
1058	* test/*.cpp demo/*.cpp: Added call to MagickIncarnate() to set
1059 	ImageMagick install location for Windows.  Hopefully this hack can
1060 	be removed someday.
1061
10622000-07-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1063
1064	* lib/Image.cpp (colorFuzz): Changed type to 'double' from
1065	'unsigned int' to match change in ImageMagick.
1066
1067	* lib/Color.cpp (Color*): Added copy constructor from base class.
1068	(operator =): Added assignment operator from base class.
1069
10702000-06-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1071
1072	* lib/Magick++/Include.h : Changed enumeration FilterType to
1073 	FilterTypes, and QuantumTypes to QuantumType in order to match
1074 	last-minute API change in ImageMagick.
1075
10762000-06-22  Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1077
1078        * lib/Magick++/Pixels.cpp (indexes): Bugfix, use GetCacheViewIndexes()
1079        rather than GetIndexes().
1080
10812000-05-23  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1082
1083	* lib/Magick++/Montage.h (gravity): Type of gravity_ argument, and
1084 	return value changed from 'unsigned int' to GravityType.
1085
10862000-04-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1087
1088	* lib/Drawable.cpp (DrawableArc, DrawableBezier, DrawablePolyline,
1089 	RoundRectangle): Added support for new drawing objects.
1090
10912000-04-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1092
1093	* lib/Drawable.cpp: Removed all public methods which accept
1094 	Coordinate arguments except those that accept lists of
1095 	Coordinates.  Converted remaining drawable object methods into
1096 	individual classes which inherit from Drawable (e.g. "circle"
1097 	becomes "DrawableCircle"). The constructor for each class is
1098 	compatible with the original method. This results in annoying
1099 	changes to user code but provides more implementation flexibility.
1100
11012000-04-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1102
1103	* lib/Drawable.cpp
1104 	(fillEllipse,fillRectangle,fillCircle,fillPolygon): Removed
1105 	methods.  Object filling is now based on whether fillColor or
1106 	penTexture are valid or not.  This reflects ImageMagick internal
1107 	changes.
1108
1109	* lib/Image.cpp (fillColor): New method to specify fill color when
1110 	drawing objects.
1111	(strokeColor): New method to specify outline color when drawing
1112 	objects.
1113	(penColor): Setting penColor now sets fillColor and
1114 	strokeColor. Getting penColor retrieves the value of
1115 	strokeColor. This supports backwards compatability.
1116
11172000-03-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1118
1119	* lib/Image.cpp (lineWidth): Type changed from unsigned int to double.
1120
11212000-03-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1122
1123	* lib/Magick++/STL.h (Magick):
1124
11252000-03-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1126
1127	* lib/Magick++/STL.h (blurImage,charcoalImage,edgeImage,embossImage,
1128	reduceNoiseImage,sharpenImage): Modified to support order of the
1129	pixel neighborhood. Backward compatable function objects constructors
1130 	are provided for embossImage, and reduceNoiseImage.
1131
1132	* lib/Image.cpp (blur,charcoal,edge,emboss,reduceNoise,sharpen):
1133	Now accept unsigned int argument which represents the order of the
1134	pixel neighborhood (e.g. 3).  This is not a backwards compatable
1135	change, however, backward compatable methods are provided for emboss,
1136	and reduceNoise.
1137
11382000-03-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1139
1140	* lib/Magick++/Pixels.h (Pixels): Moved Image pixel methods to
1141 	Pixels class.
1142
11432000-02-29  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1144
1145	* lib/Image.cpp (annotate): Re-wrote to improve performance.
1146	(draw): Re-wrote to improve performance.
1147
11482000-02-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1149
1150	* lib/Drawable.cpp (text): Bugfix: support spaces in annotation text.
1151
11522000-02-23  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1153
1154	* lib/Magick++/STL.h (gaussianBlurImage): New function object to
1155 	Gaussian blur image.
1156
1157	* lib/Image.cpp (gaussianBlur): New method to Gaussian blur image.
1158
11592000-02-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1160
1161	* lib/Image.cpp : Call-back based LastError class is eliminated in
1162 	favor of ImageMagick 5.2's re-entrant ExceptionInfo reporting.
1163  	This should make Magick++ thread safe under Win32.
1164
11652000-02-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1166
1167	* lib/Image.cpp (floodFillTexture): Fixed bug due to pixel pointer
1168 	becoming invalid in ImageMagick function.
1169
11702000-01-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1171
1172	* lib/Image.cpp : Added locking to reference counting to ensure
1173 	thread (pthread) safety.
1174
1175	* lib/Blob.cpp : Added locking to reference counting to ensure
1176 	thread (pthread) safety.
1177
1178	* lib/LastError.cpp: Added support for thread specific data
1179 	(pthreads) so that error reporting is thread safe.
1180
1181	* lib/Magick++/Thread.h: Added thread wrapper class to provide
1182 	thread-safe locking (pthreads) to Magick++.
1183
11842000-01-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1185
1186	* lib/Image.cpp: Added methods getPixels, setPixels, syncPixels,
1187 	readPixels, and writePixels, in order to provide low-level access
1188 	to Image pixels.  This approach (direct wrapper around ImageMagick
1189 	functions) does not mean that the planned object-oriented wrapper
1190 	has been forgotten, only that this wrapper is not ready yet, and
1191 	users need to manipulate pixels *now*.
1192
11932000-01-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1194
1195	* lib/LastError.cpp: Complete re-implementation of LastError so
1196 	that it hides its implementation.  Also assures that all memory is
1197 	explicitly deallocated at program exit to avoid the appearance of
1198 	a leak.
1199
12002000-01-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1201
1202	* lib/Image.cpp (size): Bug-fix. Set image columns and rows as
1203 	well as image options columns and rows.
1204
1205	* lib/Image.cpp :Depth parameters are now all unsigned in for consistency.
1206
1207	* lib/Image.cpp (write): Parameters for writing Blobs re-arranged
1208 	again to hopefully be more sensible.
1209
1210	* lib/Magick++/STL.h: Bug-fix. Re-number scenes from zero when linking
1211 	image range in container into a list. This provides expected results.
1212
12131999-12-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1214
1215	* lib/Image.cpp
1216	(write): Additional overloaded methods for BLOBs.
1217	(read):  Additional overloaded methods for BLOBs. Re-ordered
1218 	         parameters for one existing method.
1219	(Image): Additional overloaded methods for BLOBs.  Re-ordered
1220 	         parameters for one existing method.
1221
12221999-12-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1223
1224	* lib/Image.cpp (floodFillTexture): Changed coordinates to unsigned.
1225
12261999-12-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1227
1228	* lib/Image.cpp (medianFilter): New method.
1229
12301999-12-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1231
1232	* lib/Image.cpp (density): Bug fix. Was not setting image x & y density.
1233
12341999-11-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1235
1236	* lib/Image.cpp (page): psPageSize() is renamed to page() and now
1237 	properly returns the attribute from the image.
1238
12391999-11-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1240
1241	* lib/Image.cpp: Rename transformColorSpace() to colorSpace().
1242  	Added colorSpace() accessor method.
1243
12441999-11-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1245
1246	* lib/Color.cpp: Re-implemented PixelPacket pointer so that it is
1247 	never NULL and added a 'valid' field for tracking object validity.
1248
12491999-11-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1250
1251	* lib/Image.cpp (quantizeError): Eliminated method.
1252
12531999-11-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1254
1255	* lib/Image.cpp (annotate & draw): Changed implementation to
1256 	reflect change to the way AnnotateInfo is managed by ImageMagick.
1257
12581999-11-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1259
1260	* lib/Image.cpp (cacheThreshold): New method to set the pixel
1261 	cache threshold.
1262
1263	* lib/Magick++/Include.h (Magick): Added new enumerations from
1264 	classify.h.
1265
12661999-10-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1267
1268	* lib/Magick++/Options.h (fontPointsize): Argument is now a double
1269 	to match change in ImageMagick.
1270
1271	* lib/Image.cpp (fontPointsize): Argument is now a double to match
1272 	change in ImageMagick.
1273
12741999-10-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1275
1276	* lib/Blob.cpp (BlobRef): Bugfix -- start blob reference count at
1277 	one rather than zero.
1278
12791999-10-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1280
1281	* lib/Image.cpp (Image): Fixed Image constructors from Blob.  The
1282 	image reference was not being instantiated as it should have been,
1283 	causing a crash.
1284
12851999-10-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1286
1287	* lib/Blob.cpp: All blob length parameters are now of type size_t.
1288
1289	* lib/Image.cpp (write): Length estimate is now of type size_t.
1290
12911999-09-20  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1292
1293	* lib/Image.cpp (rotate): No longer accepts a crop option since
1294 	ImageMagick no longer supports this.
1295	(shear): No longer accepts a crop option since ImageMagick no
1296 	longer supports this.
1297
12981999-09-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1299
1300	* lib/Image.cpp:
1301	(rotate): No longer accepts sharpen argument.
1302  	User must sharpen separately if desired.  This change is due to a
1303 	similar change in ImageMagick 5.0.
1304	(condense): Removed method.
1305	(uncondense): Removed method.
1306	(condensed): Removed method.
1307	(pixelColor): Adapted to 5.0.
1308
1309	* lib/Magick++/Color.h : Rewrote to efficiently use ImageMagick
1310 	5.0's PixelPacket color representation.
1311
1312	* lib/Color.cpp : Rewrote to efficiently use ImageMagick 5.0's
1313 	PixelPacket color representation.
1314
13151999-09-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1316
1317	* lib/Image.cpp (condensed): Bug fix.  The condensed() method was returning the opposite bool value than it should.  Oops!
1318
13191999-09-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1320
1321	* lib/Magick++/Include.h (MagickCore): Eliminated requirement for
1322 	including <magick/define.h>.
1323
13241999-08-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1325
1326	* lib/Image.cpp: Added accessor methods for other key ImageMagick
1327 	structs.
1328
1329	* lib/Options.cpp (penTexture): Fixed bug with removing texture
1330 	caused by change in Image constructor.
1331
1332	* lib/Image.cpp: Changed strategy such that an Image containing a
1333 	null MagickCore::Image pointer is never constructed except for
1334 	under error conditions.  Removed existing checks for null image
1335 	pointer on attribute methods.
1336
1337	Use image() and constImage() accessor methods as part of Image
1338 	implementation in order to clean-up code and ensure
1339 	const-correctness.
1340
13411999-08-03  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1342
1343	* lib/Magick++/STL.h (Magick): Added STL function readImages().
1344  	Not tested yet.
1345	(Magick): Added STL function writeImages(). Not tested yet.
1346
1347	* lib/Image.cpp: Removed support for 'text' attribute as this is
1348 	no longer present in ImageMagick as of 4.2.8.
1349
13501999-07-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1351
1352	* lib/Image.cpp (condense): Skip condensing image if already
1353 	condensed.
1354	(uncondense): Skip uncondensing image if not condensed.
1355	(condensed): New method to test if image is condensed.
1356	(classType): New method which supports conversion of the image
1357 	storage class. May result in loss of color information
1358 	(quantization is used) if a DirectClass image is converted to
1359 	PseudoClass.
1360
13611999-07-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1362
1363	* lib/Magick++/Color.h (Magick::Color): Color parameters are now
1364 	stored in a MagickCore::RunlengthPacket structure which is
1365 	referenced via a pointer.  This structure is either allocated by a
1366 	Magick::Color constructor or passed as an argument to a
1367 	Magick::Color constructor so that it may refer to a
1368 	MagickCore::Image pixel. The owner of the structure is managed so
1369 	that the structure is only deleted if it was allocated by
1370 	Magick::Color.
1371
13721999-07-09  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1373
1374	* overall : Removed 'Magick' prefix from all source file
1375 	names. Moved class headers to Magick++ subdirectory.  This should
1376 	not break any code using the documented interface (via
1377 	Magick++.h).
1378
13791999-07-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1380
1381	* lib/MagickImage.cpp (composite): Support composition placement
1382 	by gravity like PerlMagick does.
1383
13841999-07-07  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1385
1386	* lib/MagickImage.cpp (Image): Added constructors to construct an
1387 	Image from a BLOB.
1388
13891999-07-06  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1390
1391	* tests/manipulate.cpp (main): Wrote a basic sanity test for
1392 	reading and writing BLOBS.
1393
13941999-06-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1395
1396	* lib/MagickImage.cpp (read): Added support for reading an encoded
1397 	image stored in a BLOB.  Uses new ImageMagick APIs introduced on
1398 	July 21, 1999.
1399	(write): Added support for writing an encoded image to a BLOB.
1400
14011999-06-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1402
1403	* lib/MagickInclude.h : Use new <magick/api.h> interface to
1404 	ImageMagick to avoid namespace-induced problems.
1405
1406	* configure.in : CPPFLAGS and LDFLAGS specified via the
1407 	environment take precidence over flags from Magick-config.
1408
14091999-05-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1410
1411	* lib/MagickSTL.h (mapImages): New algorithm to map the sequence
1412 	of images to the color map of a provided image.
1413	(quantizeImages): New algorithm to quantize a sequence of images
1414 	to a common color map.
1415
14161999-05-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1417
1418	* lib/MagickBlob.cpp (updateNoCopy): New method to allow derived
1419 	classes to insert data into the base class without making a copy
1420 	of the data. This represents a transfer of ownership of the data
1421 	from the derived class to the base class.
1422
14231999-05-23  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1424
1425	* lib/MagickColor.cpp (operator =): Adapted to new ImageMagick
1426 	4.2.6 as of 5/23/99 which removes X11 compatability functions.
1427
1428	* lib/MagickGeometry.cpp (operator =): Adapted to new ImageMagick
1429 	4.2.6 as of 5/23/99 which removes X11 compatability functions.
1430
14311999-05-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1432
1433	* lib/MagickBlob.cpp (Blob): Support default constructor for Blob.
1434
14351999-05-16  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1436
1437	* lib/MagickSTL.h (transformColorSpaceImage): New unary function object
1438 	to invoke transformColorSpace on STL container object.
1439
1440	* lib/MagickImage.cpp (transformColorSpace): New method to
1441 	transform the image data to a new colorspace.
1442
14431999-05-15  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1444
1445	* lib/MagickImage.cpp (ping): Re-implemented to match (requested)
1446 	API change in ImageMagick 4.2.5. Method signature has changed to
1447 	be like 'read'.
1448	(annotate): Added two new overloaded methods for text annotation
1449 	in order to support the new rotated text capability in ImageMagick
1450 	4.2.5.  To accomplish this, the default for gravity had to be
1451 	removed from several methods. This may impact existing code.
1452  	Still not sure if this is the best set of method signatures.
1453
14541999-05-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1455
1456	* lib/MagickImage.cpp (ping): New method to obtain image size in
1457 	bytes and geometry without the overhead of reading the complete
1458 	image.
1459	(uncondense): New method to uncompress run-length encoded pixels
1460 	into a simple array to make them easy to operate on.
1461
14621999-05-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1463
1464	* lib/MagickImage.cpp (comment): Passing an empty string as the
1465 	comment results in no comment at all rather than a comment with no
1466 	data.
1467
14681999-05-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1469
1470	* lib/MagickImage.cpp (iccColorProfile): Implemented method to set
1471 	ICC color profile from opaque object in memory (must be formatted
1472 	outside of Magick++).
1473	(iptcProfile): Implemented method to set IPTC profile from opaque
1474 	object in memory (must be formatted outside of Magick++).
1475
1476	* lib/MagickBlob.cpp: New class to support managing user-supplied
1477 	opaque Binary Large OBjects (BLOBS) in the API. Reference counted
1478 	to improve semantics and to possibly reduce memory consumption.
1479
14801999-05-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1481
1482	* lib/Makefile.am (libMagick): Updated to use libtool 1.3 so that
1483 	shared library can be built.
1484
14851999-04-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1486
1487	* lib/MagickImage.cpp (montageGeometry): Return Magick::Geometry
1488 	rather than std::string.
1489
14901999-04-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1491
1492	* lib/MagickColor.cpp (alpha): Added support for setting alpha via
1493 	scaled-double to the Color class.  The new method name is 'alpha'.
1494
14951999-04-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1496
1497	* lib/MagickColor.cpp: Added support for setting an alpha value
1498 	(unscaled Quantum only) for use on DirectColor images that have
1499 	matte enabled.  This requires ImageMagick 4.2.2 dated April 13,
1500 	1999 or later to compile since Cristy added a special flag to
1501 	allow testing to see if the user has specified an opacity value:
1502 	"I added XColorFlags to magick/classify.h.  If DoMatte is set in
1503 	color->flags then the opacity value is valid in color->pixel."
1504
15051999-04-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1506
1507	* demo/flip.cpp (main): New file.  Demonstrates use of flipImage
1508 	function object as well as morphImages algorithm.
1509
15101999-04-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1511
1512	* tests/color.cpp : New file to support testing the Magick::Color
1513 	classes.
1514
1515	* lib/MagickOptions.cpp: The ImageInfo filter member is now
1516 	ignored by ImageMagick (as of ImageMagick 4.2.2 April 10, 1998) so
1517 	support for setting it is removed. The Image filter member is
1518 	still updated. According to Cristy, this ImageMagick version
1519 	removes automatic sharpening of resized images.  The blur member
1520 	is added to the Image structure. A blur value < 1 causes the image
1521 	to be sharpened when resizing while a value > 1 leaves the image
1522 	blurry.  Magick++ does not yet support the blur member.
1523
1524
1525