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