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