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