]> granicus.if.org Git - imagemagick/blob - Magick++/ChangeLog
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9923
[imagemagick] / Magick++ / ChangeLog
1 2017-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
5 2011-02-12  6.6.7-7 Cristy  <quetzlzacatenango@image...>
6   * Add support for the strip() and stripImage() STL methods.
7
8 2011-02-01  6.6.7-2 Cristy  <quetzlzacatenango@image...>
9   * Remove extra '+' in the geometry operator.
10
11 2010-06-16  6.6.2-2 Cristy  <quetzlzacatenango@image...>
12   * Patch for compile problem in mapImages of the STL header.
13
14 2010-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
18 2009-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
23 2009-09-28  6.5.6-6 Cristy  <quetzlzacatenango@image...>
24   * Add splice() method to splice the background color into the image.
25
26 2009-04-01  6.5.1-1 Cristy  <quetzlzacatenango@image...>
27   * Add virtualPixelMethod() method for image and options, required for
28     distort().
29
30 2008-09-09  6.4.3-7 Cristy  <quetzlzacatenango@image...>
31   * Use ImagesToBlob() rather than ImageToBlob() for writeImages().
32
33 2007-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
37 2007-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
41 2006-02-05  6.3.2-3 Cristy  <quetzlzacatenango@image...>
42   * Clear exception in throwException() method.
43
44 2006-01-16  6.3.2-0 Cristy  <quetzlzacatenango@image...>
45   * Add extent() method to extend the image as defined by the geometry.
46
47 2003-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
56 2003-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
61 2003-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
68 2003-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
83 2003-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
88 2003-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
95 2003-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
106 2003-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
112 2003-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
119 2003-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
133 2003-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
138 2003-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
143 2003-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
149 2003-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
156 2003-05-30  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
157
158         * lib/Magick++/STL.h (coderInfoList): Use GetMagickInfoArray to
159         access coder list.
160
161 2003-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
169 2003-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
175 2003-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
182 2003-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
191 2003-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
204 2003-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
210 2003-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
216 2003-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
225 2003-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
231 2003-02-11  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
232
233         * lib/Image.cpp (colorSpace): Pass image->colorspace to
234         TransformRGBColorspace.
235
236 2003-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
241 2003-01-18  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
242
243         * lib/Magick++/Include.h: Add HSL and HWB colorspace
244         transformation support.
245
246 2003-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
252 2002-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
258 2002-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
263 2002-11-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
264
265         * lib/Image.cpp (adaptiveThreshold): New method.
266
267 2002-10-01  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
268
269         * lib/Magick++/STL.h (coderInfoList): Intentionally ignore missing
270         delegate exceptions.
271
272 2002-09-24  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
273
274         * lib/Options.cpp (textEncoding): Had forgotten to implement
275         textEncoding!
276
277 2002-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
283 2002-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
288 2002-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
296 2002-08-02  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
297
298         * Overall: Now compiles as a DLL using Visual C++.
299
300 2002-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
305 2002-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
313 2002-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
319 2002-05-19  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
320
321         * Magick++ library no longer depends on iostreams at all.
322
323 2002-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
329 2002-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
335 2002-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
340 2002-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
356 2002-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
367 2002-04-14  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
368
369         * lib/Drawable.cpp (DrawableCompositeImage): Always output
370         composite images as inlined Base64.
371
372 2002-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
382 2002-04-09  Dom Lachowicz    <cinamod@hotmail.com>
383
384         * lib/Image.cpp (Image::ping): Added PingBlob function
385         
386 2002-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
404 2002-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
409 2002-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
415 2002-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
420 2002-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
428 2002-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
433 2002-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
441 2002-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
446 2002-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
454 2002-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
460 2002-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
475 2002-02-05  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
476
477         * lib/Magick++/STL.h (coderInfoList): Finally wrote some
478         documentation.
479
480 2002-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
488 2002-01-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
489
490        * Remove bogus cast of blob data in readImages().
491
492 2002-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
504 2002-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
510 2002-01-12  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
511
512         * lib/Image.cpp, Magick++/Include.h: Use DestroyImageList() rather
513         than DestroyImages().
514
515 2002-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
520 2002-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
528 2001-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
542 2001-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
550 2001-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
555 2001-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
564 2001-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
572 2001-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
580 2001-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
585 2001-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
592 2001-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
597 2001-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
605 2001-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
618 2001-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
626 2001-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
631 2001-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
636 2001-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         
641 2001-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
649 2001-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
665 2001-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
673 2001-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
678 2001-09-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
679
680         * lib/Image.cpp (fileSize): Changed return value to double.
681
682 2001-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
691 2001-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
699 2001-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
707 2001-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
713 2001-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
719 2001-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
724 2001-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
728 2001-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
737 2001-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
743 2001-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
758 2001-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
764 2001-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
769 2001-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
774 2001-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
780 2001-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
784 2001-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
791 2001-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
797 2001-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
807 2001-01-10  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
808
809         * lib/Image.cpp : Adjusted to ImageMagick animation parameter API change.
810
811 2000-12-31  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
812
813         * lib/Drawable.cpp (DrawableCompositeImage): Support specifying
814         composition rule.
815
816 2000-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
822 2000-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
829 2000-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
836 2000-12-14  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
837
838         * : Adapted to ImageMagick API change which eliminates AnnotateInfo.
839
840 2000-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
845 2000-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
852 2000-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
858 2000-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
873 2000-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
891 2000-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
898 2000-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
908 2000-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         
959 2000-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
964 2000-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
969 2000-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
984 2000-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
992 2000-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
1009 2000-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
1016 2000-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
1026 2000-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
1032 2000-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
1038 2000-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
1044 2000-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
1054 2000-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
1060 2000-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
1066 2000-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
1074 2000-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
1080 2000-06-22  Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1081
1082         * lib/Magick++/Pixels.cpp (indexes): Bugfix, use GetCacheViewIndexes()
1083         rather than GetIndexes().
1084
1085 2000-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
1090 2000-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
1095 2000-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
1105 2000-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
1121 2000-03-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1122
1123         * lib/Image.cpp (lineWidth): Type changed from unsigned int to double.
1124
1125 2000-03-08  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1126
1127         * lib/Magick++/STL.h (Magick): 
1128
1129 2000-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
1142 2000-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
1147 2000-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
1152 2000-02-26  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1153
1154         * lib/Drawable.cpp (text): Bugfix: support spaces in annotation text.
1155
1156 2000-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
1163 2000-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
1169 2000-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
1174 2000-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
1188 2000-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
1197 2000-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
1204 2000-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
1217 1999-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
1226 1999-12-28  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1227
1228         * lib/Image.cpp (floodFillTexture): Changed coordinates to unsigned.
1229
1230 1999-12-21  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1231
1232         * lib/Image.cpp (medianFilter): New method.
1233
1234 1999-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
1238 1999-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
1243 1999-11-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1244
1245         * lib/Image.cpp: Rename transformColorSpace() to colorSpace().
1246         Added colorSpace() accessor method.
1247
1248 1999-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
1253 1999-11-13  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1254
1255         * lib/Image.cpp (quantizeError): Eliminated method.
1256
1257 1999-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
1262 1999-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
1270 1999-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
1278 1999-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
1283 1999-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
1289 1999-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
1295 1999-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
1302 1999-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
1319 1999-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
1323 1999-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
1328 1999-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         
1345 1999-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
1354 1999-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
1365 1999-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
1376 1999-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
1383 1999-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
1388 1999-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
1393 1999-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
1398 1999-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
1405 1999-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
1413 1999-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
1420 1999-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
1427 1999-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
1435 1999-05-17  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1436
1437         * lib/MagickBlob.cpp (Blob): Support default constructor for Blob.
1438
1439 1999-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
1447 1999-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
1458 1999-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
1466 1999-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
1472 1999-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
1484 1999-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
1489 1999-04-25  Bob Friesenhahn  <bfriesen@simple.dallas.tx.us>
1490
1491         * lib/MagickImage.cpp (montageGeometry): Return Magick::Geometry
1492         rather than std::string.
1493
1494 1999-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
1499 1999-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
1509 1999-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
1514 1999-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