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