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