root/ImageMagick/trunk/Magick++/ChangeLog

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