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