1 2011-02-12 6.6.7-7 Cristy <quetzlzacatenango@image...>
2 * Add support for the strip() and stripImage() STL methods.
4 2011-02-01 6.6.7-2 Cristy <quetzlzacatenango@image...>
5 * Remove extra '+' in the geometry operator.
7 2010-06-16 6.6.2-2 Cristy <quetzlzacatenango@image...>
8 * Patch for compile problem in mapImages of the STL header.
10 2010-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.
14 2009-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).
19 2009-09-28 6.5.6-6 Cristy <quetzlzacatenango@image...>
20 * Add splice() method to splice the background color into the image.
22 2009-04-01 6.5.1-1 Cristy <quetzlzacatenango@image...>
23 * Add virtualPixelMethod() method for image and options, required for
26 2008-09-09 6.4.3-7 Cristy <quetzlzacatenango@image...>
27 * Use ImagesToBlob() rather than ImageToBlob() for writeImages().
29 2007-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...>).
33 2007-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).
37 2006-02-05 6.3.2-3 Cristy <quetzlzacatenango@image...>
38 * Clear exception in throwException() method.
40 2006-01-16 6.3.2-0 Cristy <quetzlzacatenango@image...>
41 * Add extent() method to extend the image as defined by the geometry.
43 2003-12-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
52 2003-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
54 * lib/Color.cpp: Ensure that all non-default constructors set
57 2003-09-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
64 2003-09-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
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.
79 2003-08-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
81 * lib/Image.cpp (channelDepth): New method to set or get the
82 modulus depth for a specified channel.
84 2003-08-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
86 * lib/Magick++/Include.h (Magick): Added support for
87 CopyCyanCompositeOp, CopyMagentaCompositeOp,
88 CopyYellowCompositeOp, and CopyBlackCompositeOp, composition
91 2003-08-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
93 * lib/Image.cpp (depth): Method now only updates the
94 Image/ImageInfo depth member and retrieves the value of the Image
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.
102 2003-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
108 2003-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
115 2003-06-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
129 2003-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
131 * lib/CoderInfo.cpp (CoderInfo): Applied compilation fix from
132 Mike Chiarappa to compile using Borland C++.
134 2003-06-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
136 * lib/Geometry.cpp (string): Throw an exception if a string is
137 requested from an invalid geometry object.
139 2003-06-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
145 2003-06-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
147 * lib/Magick++/Exception.h (ErrorModule): Added class to handle
149 * lib/Magick++/Exception.h (WarningModule) Added class to handle
152 2003-05-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
154 * lib/Magick++/STL.h (coderInfoList): Use GetMagickInfoArray to
157 2003-05-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
159 * lib/Magick++/STL.h (affineTransformImage): Add function object
160 contributed by Vladimir Lukianov to apply an affine transform to
162 * lib/Image.cpp (affineTransform): Added method contributed by
163 Vladimir Lukianov to apply an affine transform to the image.
165 2003-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
167 * lib/Magick++/Include.h: Decided to back out change
168 which used the _VISUALC_ define to trigger inclusion of
171 2003-05-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
178 2003-05-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
187 2003-04-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
200 2003-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
202 * tests/readWriteBlob.cpp (main): Added check for
203 stream read failure when reading blob data.
204 (class myBlob): Use get rather than read.
206 2003-03-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
212 2003-03-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
221 2003-03-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
223 * lib/Makefile.am : Added rules to install ImageMagick++.pc.
224 * lib/ImageMagick++.pc.in : Added pkgconfig file for
227 2003-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
229 * lib/Image.cpp (colorSpace): Pass image->colorspace to
230 TransformRGBColorspace.
232 2003-01-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
234 * lib/Magick++/STL.h (writeImages): Should have been invoking
235 WriteImages rather than WriteImage!
237 2003-01-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
239 * lib/Magick++/Include.h: Add HSL and HWB colorspace
240 transformation support.
242 2003-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
244 * lib/Image.cpp (colorSpace): Support colorspace transforms
245 other than to and from RGB by translating to RGB as an intermediate
248 2002-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
250 * lib/Drawable.cpp: Added DrawablePushClipPath,
251 DrawablePopClipPath, and DrawableClipPath. Implementation
252 contributed by Vladimir <lvm@integrum.ru>.
254 2002-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
256 * lib/Image.cpp (colorMapSize): New method to set, or return
259 2002-11-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
261 * lib/Image.cpp (adaptiveThreshold): New method.
263 2002-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
265 * lib/Magick++/STL.h (coderInfoList): Intentionally ignore missing
268 2002-09-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
270 * lib/Options.cpp (textEncoding): Had forgotten to implement
273 2002-09-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
279 2002-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
281 * lib/Image.cpp (compare): New method to compare current image
282 with a reference image.
284 2002-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
286 * lib/Image.cpp (textEncoding): New method to allow setting the
287 default text encoding (e.g. "UTF-8").
289 * lib/Drawable.cpp (DrawableText): Added an alternate constructor
290 to allow specifying the text encoding (e.g. "UTF-8").
292 2002-08-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
294 * Overall: Now compiles as a DLL using Visual C++.
296 2002-07-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
298 * lib/Image.cpp (profile): Added method to store, delete, or
299 retrieve named application profiles.
301 2002-07-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
309 2002-05-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
315 2002-05-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
317 * Magick++ library no longer depends on iostreams at all.
319 2002-04-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
325 2002-04-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
331 2002-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
333 * lib/STL.cpp: Moved function object implementations from STL.h to
336 2002-04-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
342 (setPixels): Changed offset parameter type from 'unsigned int' to
344 (cacheThreshold): Changed argument type from 'const long' to
346 (matteFloodfill): Changed offset parameter type from 'const long' to
349 * lib/Pixels.cpp (getConst): New method to return read-only pixels.
350 (get): Offset parameter types changed from 'unsigned int' to 'int'.
352 2002-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
354 * lib/Magick++/Drawable.h (DrawableDashOffset): Change dashoffset
355 type to 'double' rather than 'unsigned int' in order to match
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.
363 2002-04-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
365 * lib/Drawable.cpp (DrawableCompositeImage): Always output
366 composite images as inlined Base64.
368 2002-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
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.
378 2002-04-09 Dom Lachowicz <cinamod@hotmail.com>
380 * lib/Image.cpp (Image::ping): Added PingBlob function
382 2002-04-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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).
389 * lib/Image.cpp (oilPaint): Changed argument type from unsigned
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
397 (getPixels): Changed argument type of x_ & _y from 'int' to
400 2002-04-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
402 * lib/Image.cpp (debug): Added method to set ImageMagick debug
403 flag so that it prints debugging information while it runs.
405 2002-04-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
407 * lib/Drawable.cpp: Fixed a bunch of bugs related to
408 DrawableCompositeImage, DrawableFont, and inconsistencies
409 discovered by Gimpel lint.
411 2002-04-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
413 * lib/Image.cpp (draw): Properly delimit individual drawing
414 commands so that MVG output is correct.
416 2002-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
418 * lib/Drawable.cpp (DrawableViewbox): MVG syntax wasn't correct.
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.
424 2002-03-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
426 * lib/Drawable.cpp (DrawableViewbox): New class to allow setting
429 2002-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
431 * lib/Drawable.cpp (print): Changed "mpr:" to "mpri:" in order to
432 *finally* get DrawableCompositeImage to work as intended.
434 * lib/Image.cpp (registerId): Bugfix. Register using
435 sizeof(MagickCore::Image) rather than sizeof(Image).
437 2002-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
439 * lib/Drawable.cpp (DrawableCompositeImage): Had failed to
440 initialize width and height in object to image width and height.
442 2002-02-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
444 * lib/Magick++/STL.h (endianImage): New class to specify the
445 endian option for formats which support this notion (e.g. TIFF).
447 * lib/Image.cpp (endian): New method to specify the endian option
448 for formats which support this notion (e.g. TIFF).
450 2002-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
456 2002-02-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
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
471 2002-02-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
473 * lib/Magick++/STL.h (coderInfoList): Finally wrote some
476 2002-01-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
478 * lib/Options.cpp : Use DestroyImageList() rather than DestroyImage().
480 * lib/Geometry.cpp (operator =): Use GetPageGeometry() rather than
481 PostscriptGeometry() to parse geometry specifications containing a
484 2002-01-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
486 * Remove bogus cast of blob data in readImages().
488 2002-01-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
490 * lib/Image.cpp (throwImageException): Throwing exceptions was
493 * lib/Exception.cpp (throwException): Throwing exceptions was
496 * lib/Image.cpp (replaceImage): Updated to properly handle
498 (modifyImage): Updated to properly handle registration ids.
500 2002-01-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
506 2002-01-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
508 * lib/Image.cpp, Magick++/Include.h: Use DestroyImageList() rather
509 than DestroyImages().
511 2002-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
513 * lib/Magick++/Options.h (antiAlias): Bugfix, set
514 drawInfo->text_antialias to control text antialiasing.
516 2002-01-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
518 * lib/Magick++/Include.h : Imported new composition operators to
519 namespace: NoCompositeOp, DarkenCompositeOp, LightenCompositeOp,
520 HueCompositeOp, SaturateCompositeOp, ValueCompositeOp,
521 ColorizeCompositeOp, LuminizeCompositeOp, ScreenCompositeOp,
524 2001-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
533 * lib/Drawable.cpp (DrawablePushPattern): Support pushing
534 (starting) pattern definition.
535 (DrawablePopPattern): Support popping (terminating) pattern
538 2001-12-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
546 2001-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
548 * lib/Color.cpp (operator std::string): Color string buffer was
549 one character too short!
551 2001-12-20 Bob Friesenhahn <bfriesen@sun1107.ssd.usa.alcatel.com>
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
558 (descent): Renamed method from 'decent' to 'descent'.
560 2001-11-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
562 * lib/Image.cpp (Magick): Invoke DestroyMagick() to clean up
563 ImageMagick allocations.
565 * lib/Magick++/Include.h (ImageType): Added some missing enums to
568 2001-11-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
570 * lib/Magick++/CoderInfo.h (CoderInfo): Syntax fix.
571 ImageMagick bug #975.
573 * lib/Image.cpp (draw): Delete ostrstream data when it is no
574 longer needed. ImageMagick bug #988.
576 2001-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
578 * lib/Image.cpp (pixelColor): Implementation didn't handle pixels
579 indexes correctly. Now it does.
581 2001-11-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
588 2001-10-29 Bob Friesenhahn <bfriesen@sun1107.ssd.usa.alcatel.com>
590 * lib/Image.cpp (strokeDashArray): Change to type double.
591 (strokeDashOffset): Change to type double.
593 2001-10-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
595 * lib/Geometry.cpp (Geometry): Add constructor from
596 MagickCore::RectangleInfo.
598 * lib/Image.cpp (boundingBox): Method to return smallest bounding
599 box enclosing non-border pixels.
601 2001-10-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
603 * lib/Image.cpp (getConstIndexes): Add method to obtain read-only
605 (getIndexes): Add method to obtain read-write pixel indexes.
606 (Image::Image): Send warnings from Image constructor to cerr
607 rather than throwing.
609 * lib/Color.cpp (Color(PixelPacket&)): Change argument to const
610 PixelPacket& as it should have been from the beginning.
612 * lib/Image.cpp (pixelColor): Reimplemented to be a const method.
614 2001-10-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
616 * lib/Image.cpp (getConstPixels): New method for returning a
617 read-only pixel view. Still requires documentation.
619 * lib/Magick++/STL.h (coderInfoList): Fixed compilation problem
620 when compiling with Visual C++.
622 2001-10-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
624 * lib/Magick++/Color.h (scaleQuantumToDouble): Add polymorphic
625 version that accepts double to avoid downconversion error.
627 2001-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
629 * lib/Magick++/Color.h (scaleQuantumToDouble): Cast Quantum to
630 double prior to division. Hopefully fix bug.
632 2001-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
634 * lib/Magick++/Color.h (Color(const std::string)): Pass argument by reference.
635 * (operator=): Pass argument by const reference.
637 2001-09-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
639 * lib/Magick++/STL.h (coderInfoList): New function to support
640 obtaining format coder information (as a list of type CoderInfo).
642 * lib/CoderInfo.cpp (CoderInfo): New class to support obtaining
643 format coder information.
645 2001-09-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
647 * lib/Image.cpp (depth): Use GetImageDepth and SetImageDepth
648 rather than just getting/setting depth attributes.
650 * lib/Magick++/STL.h (opacityImage): New unary function object to
651 set, or attenuate, image pixel opacity throughout the image.
653 * lib/Image.cpp (opacity): New method to set, or attenuate, image
654 pixel opacity throughout the image.
656 * lib/Magick++/STL.h (typeImage): New unary function object to set
659 * lib/Image.cpp (type): Added ability to set image type.
661 2001-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
663 * lib/Image.cpp (write(Blob)): Tell blob to use malloc allocator.
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.
669 2001-09-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
671 * lib/Image.cpp (fileSize): Decided to change return type to off_t
672 for increased range and portability.
674 2001-09-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
676 * lib/Image.cpp (fileSize): Changed return value to double.
678 2001-09-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
680 * lib/Image.cpp (colorMap): Allocate a colormap if it does not
683 * lib/Pixels.cpp (indexes): Don't attempt to validate image type.
685 * lib/Image.cpp (colorMap): Optimized more for performance.
687 2001-09-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
689 * lib/Image.cpp (fontTypeMetrics): New method to support
690 retrieving font metrics.
692 * lib/TypeMetric.cpp : New class to support font metrics
695 2001-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
703 2001-08-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
709 2001-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
715 2001-08-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
717 * lib/Drawable.cpp (print): Add single quotes around file names
718 and font specifications.
720 2001-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
722 * lib/Image.cpp (read): Ensure that only a single image frame is read.
724 2001-07-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
726 * lib/Magick++/STL.h (flattenImages): New function to flatten a
729 * lib/Montage.cpp (Montage): Montage initial defaults are no
730 longer drawn from ImageInfo. MontageInfo structure is entirely
731 filled out by updateMontageInfo();
733 2001-07-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
739 2001-07-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
747 * lib/Magick++/Image.h (edge): Change argument from unsigned int to double.
748 (medianFilter): Changed argument from unsigned int to const double.
750 * lib/Magick++/STL.h (edgeImage): Change argument from unsigned int to double.
752 * demo/demo.cpp (main): Updated to match PerlMagick demo.
754 2001-06-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
756 * lib/Magick++/STL.h (shaveImage): New function to shave edges from image.
758 * lib/Image.cpp (shave): New method to shave edges from image.
760 2001-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
762 * lib/Image.cpp (quantize): Remove conditions on whether
763 quantization should be done. Now quantization is always done.
765 2001-06-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
767 * lib/Magick++/Image.h (blur,charcoal,emboss,sharpen): Changed
768 radius and sigma parameters to match current ImageMagick defaults.
770 2001-02-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
776 2001-01-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
778 * lib/Image.cpp (fillRule): New method to specify the rule to use when filling drawn objects.
780 2001-01-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
782 * lib/Image.cpp (erase): New method to reset image to background
784 (strokeAntiAlias): New method to control antialiasing of stroked
787 2001-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
789 * lib/Image.cpp (channel): Renamed method from 'layer' to match
790 equivalent change in ImageMagick (ChannelImage). Enumeration
791 names *Layer renamed to *Channel.
793 2001-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
795 * lib/Magick++/Montage.h (strokeColor): New method.
796 (fillColor): New method.
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.
803 2001-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
805 * lib/Image.cpp : Adjusted to ImageMagick animation parameter API change.
807 2000-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
809 * lib/Drawable.cpp (DrawableCompositeImage): Support specifying
812 2000-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
818 2000-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
825 2000-12-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
832 2000-12-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
834 * : Adapted to ImageMagick API change which eliminates AnnotateInfo.
836 2000-12-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
838 * lib/Magick++/STL.h (annotateImage): Brought into sync with
839 annotate methods in Image.
841 2000-12-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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).
848 2000-11-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
850 * lib/Magick++/Color.h (alphaQuantum): Bugfix. Due to change in
851 treatment of opacity member, alphaQuantum() was not allowing value
854 2000-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
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
866 (DrawableMiterLimit): New class to specify extension limit for
869 2000-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
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.
887 2000-10-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
894 2000-10-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
896 * lib/Magick++/Drawable.h (DrawablePopGraphicContext): New class
897 to pop graphic context.
898 (DrawablePushGraphicContext): New class to push graphic context.
900 * lib/Drawable.cpp (DrawableStrokeAntialias): New class to set
902 (DrawableTextAntialias): New class to set text antialiasing.
904 2000-10-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
918 * lib/Drawable.cpp (DrawablePath): New class for drawing SVG-style
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 &
926 (PathCurvetoAbs): New class. Cubic bezier, absolute coordinates
927 (PathCurvetoRel): New class. Cubic bezier, relative coordinates
928 (PathSmoothCurvetoAbs): New class. Cubic bezier, absolute
930 (PathSmoothCurvetoRel): New class. Cubic bezier, relative
932 (PathQuadraticCurvetoArgs): New class. Argument class for
933 PathQuadraticCurvetoAbs and PathQuadraticCurvetoRel.
934 (PathQuadraticCurvetoAbs): New class. Quadratic bezier, absolute
936 (PathQuadraticCurvetoRel): New class. Quadratic bezier, relative
938 (PathSmoothQuadraticCurvetoAbs): New class. Quadratic bezier,
940 (PathSmoothQuadraticCurvetoRel): New class. Quadratic bezier,
942 (PathLinetoAbs): New class. Line to, absolute coordinates
943 (PathLinetoRel): New class. Line to, relative coordinates
944 (PathLinetoHorizontalAbs): New class. Horizontal lineto, absolute
946 (PathLinetoHorizontalRel): New class. Horizontal lineto, relative
948 (PathLinetoVerticalAbs): New class. Veritical lineto, absolute
950 (PathLinetoVerticalRel): New class. Vertical lineto, relative
952 (PathMovetoAbs): New class. Moveto, absolute coordinates
953 (PathMovetoRel): New class. Moveto, relative coordinates
955 2000-10-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
957 * lib/Drawable.cpp (DrawableSkewX): New object to apply skew in X direction.
958 (DrawableSkewY): New object to apply skew in Y direction.
960 2000-10-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
962 * lib/Image.cpp (edge): Change argument from 'unsigned int' to
963 'double' in order to match ImageMagick API.
965 2000-10-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
967 * lib/Drawable.cpp (DrawableCompositeImage): Renamed from
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.
980 2000-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
988 2000-10-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
995 (DrawableFill): New class to set object filling color.
996 (DrawableFillOpacity): New class to set opacity to use when
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.
1005 2000-10-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
1012 2000-09-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
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.
1022 2000-09-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
1028 2000-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
1034 2000-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1036 * lib/Options.cpp : Bugfix. Some DrawInfo attributes were not
1037 being updated. This lead to options like fontPointsize not
1040 2000-08-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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).
1046 * lib/Image.cpp (blur, charcoal, emboss, sharpen): Expand order_
1047 argument to radius_ & sigma_ arguments for more control (matches
1048 ImageMagick API change).
1050 2000-08-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
1056 2000-07-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1058 * test/*.cpp demo/*.cpp: Added call to MagickIncarnate() to set
1059 ImageMagick install location for Windows. Hopefully this hack can
1062 2000-07-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1064 * lib/Image.cpp (colorFuzz): Changed type to 'double' from
1065 'unsigned int' to match change in ImageMagick.
1067 * lib/Color.cpp (Color*): Added copy constructor from base class.
1068 (operator =): Added assignment operator from base class.
1070 2000-06-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
1076 2000-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1078 * lib/Magick++/Pixels.cpp (indexes): Bugfix, use GetCacheViewIndexes()
1079 rather than GetIndexes().
1081 2000-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1083 * lib/Magick++/Montage.h (gravity): Type of gravity_ argument, and
1084 return value changed from 'unsigned int' to GravityType.
1086 2000-04-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1088 * lib/Drawable.cpp (DrawableArc, DrawableBezier, DrawablePolyline,
1089 RoundRectangle): Added support for new drawing objects.
1091 2000-04-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
1101 2000-04-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
1109 * lib/Image.cpp (fillColor): New method to specify fill color when
1111 (strokeColor): New method to specify outline color when drawing
1113 (penColor): Setting penColor now sets fillColor and
1114 strokeColor. Getting penColor retrieves the value of
1115 strokeColor. This supports backwards compatability.
1117 2000-03-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1119 * lib/Image.cpp (lineWidth): Type changed from unsigned int to double.
1121 2000-03-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1123 * lib/Magick++/STL.h (Magick):
1125 2000-03-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
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,
1138 2000-03-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1140 * lib/Magick++/Pixels.h (Pixels): Moved Image pixel methods to
1143 2000-02-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1145 * lib/Image.cpp (annotate): Re-wrote to improve performance.
1146 (draw): Re-wrote to improve performance.
1148 2000-02-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1150 * lib/Drawable.cpp (text): Bugfix: support spaces in annotation text.
1152 2000-02-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1154 * lib/Magick++/STL.h (gaussianBlurImage): New function object to
1155 Gaussian blur image.
1157 * lib/Image.cpp (gaussianBlur): New method to Gaussian blur image.
1159 2000-02-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
1165 2000-02-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1167 * lib/Image.cpp (floodFillTexture): Fixed bug due to pixel pointer
1168 becoming invalid in ImageMagick function.
1170 2000-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1172 * lib/Image.cpp : Added locking to reference counting to ensure
1173 thread (pthread) safety.
1175 * lib/Blob.cpp : Added locking to reference counting to ensure
1176 thread (pthread) safety.
1178 * lib/LastError.cpp: Added support for thread specific data
1179 (pthreads) so that error reporting is thread safe.
1181 * lib/Magick++/Thread.h: Added thread wrapper class to provide
1182 thread-safe locking (pthreads) to Magick++.
1184 2000-01-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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*.
1193 2000-01-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
1200 2000-01-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1202 * lib/Image.cpp (size): Bug-fix. Set image columns and rows as
1203 well as image options columns and rows.
1205 * lib/Image.cpp :Depth parameters are now all unsigned in for consistency.
1207 * lib/Image.cpp (write): Parameters for writing Blobs re-arranged
1208 again to hopefully be more sensible.
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.
1213 1999-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
1222 1999-12-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1224 * lib/Image.cpp (floodFillTexture): Changed coordinates to unsigned.
1226 1999-12-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1228 * lib/Image.cpp (medianFilter): New method.
1230 1999-12-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1232 * lib/Image.cpp (density): Bug fix. Was not setting image x & y density.
1234 1999-11-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1236 * lib/Image.cpp (page): psPageSize() is renamed to page() and now
1237 properly returns the attribute from the image.
1239 1999-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1241 * lib/Image.cpp: Rename transformColorSpace() to colorSpace().
1242 Added colorSpace() accessor method.
1244 1999-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1246 * lib/Color.cpp: Re-implemented PixelPacket pointer so that it is
1247 never NULL and added a 'valid' field for tracking object validity.
1249 1999-11-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1251 * lib/Image.cpp (quantizeError): Eliminated method.
1253 1999-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1255 * lib/Image.cpp (annotate & draw): Changed implementation to
1256 reflect change to the way AnnotateInfo is managed by ImageMagick.
1258 1999-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1260 * lib/Image.cpp (cacheThreshold): New method to set the pixel
1263 * lib/Magick++/Include.h (Magick): Added new enumerations from
1266 1999-10-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1268 * lib/Magick++/Options.h (fontPointsize): Argument is now a double
1269 to match change in ImageMagick.
1271 * lib/Image.cpp (fontPointsize): Argument is now a double to match
1272 change in ImageMagick.
1274 1999-10-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1276 * lib/Blob.cpp (BlobRef): Bugfix -- start blob reference count at
1277 one rather than zero.
1279 1999-10-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1281 * lib/Image.cpp (Image): Fixed Image constructors from Blob. The
1282 image reference was not being instantiated as it should have been,
1285 1999-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1287 * lib/Blob.cpp: All blob length parameters are now of type size_t.
1289 * lib/Image.cpp (write): Length estimate is now of type size_t.
1291 1999-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
1298 1999-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
1309 * lib/Magick++/Color.h : Rewrote to efficiently use ImageMagick
1310 5.0's PixelPacket color representation.
1312 * lib/Color.cpp : Rewrote to efficiently use ImageMagick 5.0's
1313 PixelPacket color representation.
1315 1999-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1317 * lib/Image.cpp (condensed): Bug fix. The condensed() method was returning the opposite bool value than it should. Oops!
1319 1999-09-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1321 * lib/Magick++/Include.h (MagickCore): Eliminated requirement for
1322 including <magick/define.h>.
1324 1999-08-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1326 * lib/Image.cpp: Added accessor methods for other key ImageMagick
1329 * lib/Options.cpp (penTexture): Fixed bug with removing texture
1330 caused by change in Image constructor.
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.
1337 Use image() and constImage() accessor methods as part of Image
1338 implementation in order to clean-up code and ensure
1341 1999-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1343 * lib/Magick++/STL.h (Magick): Added STL function readImages().
1345 (Magick): Added STL function writeImages(). Not tested yet.
1347 * lib/Image.cpp: Removed support for 'text' attribute as this is
1348 no longer present in ImageMagick as of 4.2.8.
1350 1999-07-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1352 * lib/Image.cpp (condense): Skip condensing image if already
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
1361 1999-07-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
1372 1999-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
1379 1999-07-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1381 * lib/MagickImage.cpp (composite): Support composition placement
1382 by gravity like PerlMagick does.
1384 1999-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1386 * lib/MagickImage.cpp (Image): Added constructors to construct an
1389 1999-07-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1391 * tests/manipulate.cpp (main): Wrote a basic sanity test for
1392 reading and writing BLOBS.
1394 1999-06-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1396 * lib/MagickImage.cpp (read): Added support for reading an encoded
1397 image stored in a BLOB. Uses new ImageMagick APIs introduced on
1399 (write): Added support for writing an encoded image to a BLOB.
1401 1999-06-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1403 * lib/MagickInclude.h : Use new <magick/api.h> interface to
1404 ImageMagick to avoid namespace-induced problems.
1406 * configure.in : CPPFLAGS and LDFLAGS specified via the
1407 environment take precidence over flags from Magick-config.
1409 1999-05-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
1416 1999-05-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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.
1423 1999-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1425 * lib/MagickColor.cpp (operator =): Adapted to new ImageMagick
1426 4.2.6 as of 5/23/99 which removes X11 compatability functions.
1428 * lib/MagickGeometry.cpp (operator =): Adapted to new ImageMagick
1429 4.2.6 as of 5/23/99 which removes X11 compatability functions.
1431 1999-05-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1433 * lib/MagickBlob.cpp (Blob): Support default constructor for Blob.
1435 1999-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1437 * lib/MagickSTL.h (transformColorSpaceImage): New unary function object
1438 to invoke transformColorSpace on STL container object.
1440 * lib/MagickImage.cpp (transformColorSpace): New method to
1441 transform the image data to a new colorspace.
1443 1999-05-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1445 * lib/MagickImage.cpp (ping): Re-implemented to match (requested)
1446 API change in ImageMagick 4.2.5. Method signature has changed to
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.
1454 1999-05-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1456 * lib/MagickImage.cpp (ping): New method to obtain image size in
1457 bytes and geometry without the overhead of reading the complete
1459 (uncondense): New method to uncompress run-length encoded pixels
1460 into a simple array to make them easy to operate on.
1462 1999-05-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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
1468 1999-05-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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++).
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.
1480 1999-05-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1482 * lib/Makefile.am (libMagick): Updated to use libtool 1.3 so that
1483 shared library can be built.
1485 1999-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1487 * lib/MagickImage.cpp (montageGeometry): Return Magick::Geometry
1488 rather than std::string.
1490 1999-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1492 * lib/MagickColor.cpp (alpha): Added support for setting alpha via
1493 scaled-double to the Color class. The new method name is 'alpha'.
1495 1999-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
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."
1505 1999-04-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1507 * demo/flip.cpp (main): New file. Demonstrates use of flipImage
1508 function object as well as morphImages algorithm.
1510 1999-04-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1512 * tests/color.cpp : New file to support testing the Magick::Color
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.