blob: 734c6b4a97a0cd35130adbd64fbcf8ddef124a03 [file] [log] [blame]
cristy529fcc22009-11-14 18:15:08 +000012009-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
cristyd50017c2009-09-29 00:00:10 +000062009-09-28 6.5.6-6 Cristy <quetzlzacatenango@image...>
7 * Add splice() method to splice the background color into the image.
8
cristy3ed852e2009-09-05 21:47:34 +000092009-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