1 2017-07-12 7.0.6-1 Dirk Lemstra <dirk@snakeware...>
2 * For portability, Color() arguments must be Magick::Quantum (reference
3 https://github.com/ImageMagick/ImageMagick/issues/510).
5 2011-02-12 6.6.7-7 Cristy <quetzlzacatenango@image...>
6 * Add support for the strip() and stripImage() STL methods.
8 2011-02-01 6.6.7-2 Cristy <quetzlzacatenango@image...>
9 * Remove extra '+' in the geometry operator.
11 2010-06-16 6.6.2-2 Cristy <quetzlzacatenango@image...>
12 * Patch for compile problem in mapImages of the STL header.
14 2010-02-21 6.5.9-10 Cristy <quetzlzacatenango@image...>
15 * Add extent() to extend the image as defined by the geometry, gravity, and
16 image background color.
18 2009-11-14 6.5.7-8 Cristy <quetzlzacatenango@image...>
19 * Add forwardFourierTransform(), inverseFourierTransform(), and
20 inverseFourierTransformImage() methods to implement forward and inverse
21 discrete Fourier transform (DFT / IFT).
23 2009-09-28 6.5.6-6 Cristy <quetzlzacatenango@image...>
24 * Add splice() method to splice the background color into the image.
26 2009-04-01 6.5.1-1 Cristy <quetzlzacatenango@image...>
27 * Add virtualPixelMethod() method for image and options, required for
30 2008-09-09 6.4.3-7 Cristy <quetzlzacatenango@image...>
31 * Use ImagesToBlob() rather than ImageToBlob() for writeImages().
33 2007-10-02 6.3.6-7 Cristy <quetzlzacatenango@image...>
34 * Define USE_MAP for Magick++/tests/colorHistogram.cpp (patch provided by
35 albert chin <china@thewr...>).
37 2007-04-10 6.3.3-7 Cristy <quetzlzacatenango@image...>
38 * Add colorspaceType(RGBColorspace) to set RGB colorspace before an
39 image read (useful to convert CMYK Potscript to RGB).
41 2006-02-05 6.3.2-3 Cristy <quetzlzacatenango@image...>
42 * Clear exception in throwException() method.
44 2006-01-16 6.3.2-0 Cristy <quetzlzacatenango@image...>
45 * Add extent() method to extend the image as defined by the geometry.
47 2003-12-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
49 * demo/analyze.cpp (main): New program to demonstrate using the
50 'analyze' process module.
51 * demo/Makefile.am: Add rules to build analyze program.
52 * lib/Image.cpp (process): New method to execute process modules.
53 * lib/Image.cpp (attribute): New method to get and set named image
56 2003-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
58 * lib/Color.cpp: Ensure that all non-default constructors set
61 2003-09-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
63 * lib/Magick++/STL.h (colorHistogram): If map key is not const,
64 then implicit type conversion occurs. Sun's C++ compiler doesn't
65 seem to handle that. The map key is now defined as const in
68 2003-09-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
70 * tests/Makefile.am: Add build support for colorHistogram.cpp.
71 * tests/colorHistogram.cpp: New test program to test retrieving
72 color histograms from the image using colorHistogram().
73 * lib/Magick++/STL.h (colorHistogram): Added new template function
74 to retrieve a color histogram into a user-provided container.
75 Verified to work when using STL <vector> and <map> as the target
76 container types. When <map> is used, a user-specified color may
77 be used to perform lookups in the map to obtain the usage count for
79 * lib/Color.cpp (operator >=): Insufficient resolution was being
80 provided in order to reliably sort color objects in STL
81 containers. The updated algorithm should be fail-safe.
83 2003-08-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
85 * lib/Image.cpp (channelDepth): New method to set or get the
86 modulus depth for a specified channel.
88 2003-08-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
90 * lib/Magick++/Include.h (Magick): Added support for
91 CopyCyanCompositeOp, CopyMagentaCompositeOp,
92 CopyYellowCompositeOp, and CopyBlackCompositeOp, composition
95 2003-08-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
97 * lib/Image.cpp (depth): Method now only updates the
98 Image/ImageInfo depth member and retrieves the value of the Image
100 (modulusDepth): New method to inspect the pixels for actual
101 modulus depth, or update/reduce the pixels to a specified modulus
102 depth. The depth method was performing this function so any code
103 which depended on the depth method to compute or set the modulus
104 depth should be updated to use modulusDepth() instead.
106 2003-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
108 * lib/Image.cpp (matte): If a new matte channel is created,
109 initialize it to opaque. Likewise, if the matte channel is
110 eliminated, initialize the unused channel to opaque.
112 2003-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
114 * demo/demo.cpp (main): Don't crop logo image. *
115 * *.h, *.cpp: Include "Magick++/Include.h" before including any
116 compiler or system header in order to ensure that LFS defines are
117 properly applied. Inspired by patch from Albert Chin-A-Young.
119 2003-06-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
121 * lib/Magick++/Include.h: Needed to import ThrowLoggedException.
122 * lib/Exception.cpp (throwException): Add originating source
123 module, source line, and function name (if available) to exception
124 report. This is useful in order to determine the exact conditions
125 that lead to the exception being thrown.
126 * lib/Magick++/Exception.h: Added ErrorCoder, WarningCoder,
127 ErrorConfigure, WarningConfigure, ErrorDraw, WarningDraw,
128 ErrorImage, WarningImage, ErrorMonitor, WarningMonitor,
129 ErrorRegistry, WarningRegistry, ErrorStream, WarningStream,
130 ErrorType, and WarningType, exception classes to support the full
131 set of exceptions that ImageMagick can throw.
133 2003-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
135 * lib/CoderInfo.cpp (CoderInfo): Applied compilation fix from
136 Mike Chiarappa to compile using Borland C++.
138 2003-06-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
140 * lib/Geometry.cpp (string): Throw an exception if a string is
141 requested from an invalid geometry object.
143 2003-06-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
145 * lib/Geometry.cpp (operator =): If GetGeometry returns NoValue,
146 then assign an invalid geometry object to cause an exception if
147 the geometry is then used.
149 2003-06-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
151 * lib/Magick++/Exception.h (ErrorModule): Added class to handle
153 * lib/Magick++/Exception.h (WarningModule) Added class to handle
156 2003-05-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
158 * lib/Magick++/STL.h (coderInfoList): Use GetMagickInfoArray to
161 2003-05-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
163 * lib/Magick++/STL.h (affineTransformImage): Add function object
164 contributed by Vladimir Lukianov to apply an affine transform to
166 * lib/Image.cpp (affineTransform): Added method contributed by
167 Vladimir Lukianov to apply an affine transform to the image.
169 2003-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
171 * lib/Magick++/Include.h: Decided to back out change
172 which used the _VISUALC_ define to trigger inclusion of
175 2003-05-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
177 * lib/Magick++/Include.h: If _VISUALC_ is defined,
178 include <sys/types.h>. This ensures that this necessary
179 header is included even if HAVE_SYS_TYPES_H is not defined
182 2003-05-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
184 * lib/Image.cpp (InitializeMagick): InitializeMagick is
185 now a C++ function rather than a namespace inclusion.
186 An atexit() handler is registered to invoke DestroyMagick
187 when the program exits. Relying on static deconstruction
188 to invoke DestroyMagick proved to be unreliable due to
189 translation unit destruction uncertainty.
191 2003-04-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
193 * lib/Image.cpp (Image::Image (MagickCore::Image* image_)):
194 Incorporated recommended fix from Jukka Manner to avoid
195 a scenario which leaks an Options object.
196 * tests/coalesceImages.cpp: Updated to use modified
197 coalesceImages() interface.
198 * lib/Magick++/STL.h (coalesceImages): Replaced implementation
199 with one from Felix Heimbrecht. The template signature has
200 changed to return a new image sequence. This template API
201 silently ceased to funtion due to an ImageMagick CoalesceImages
204 2003-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
206 * tests/readWriteBlob.cpp (main): Added check for
207 stream read failure when reading blob data.
208 (class myBlob): Use get rather than read.
210 2003-03-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
212 * tests/attributes.cpp : Change in the way that Magick++
213 retrieves density caused tests to fail. Density now defaults
214 to 72x72 (ImageMagick default) rather than invalid.
216 2003-03-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
218 * demo/Makefile.am (CLEANFILES): Fix clean target to remove
219 *_out.mvg output files as well.
220 * demo/zoom.cpp: Added a command-line parser for dash
221 arguments as well as an image "resample" capability.
222 * lib/Image.cpp (density): Obtain density from Image
223 rather than ImageInfo if the Image is valid.
225 2003-03-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
227 * lib/Makefile.am : Added rules to install ImageMagick++.pc.
228 * lib/ImageMagick++.pc.in : Added pkgconfig file for
231 2003-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
233 * lib/Image.cpp (colorSpace): Pass image->colorspace to
234 TransformRGBColorspace.
236 2003-01-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
238 * lib/Magick++/STL.h (writeImages): Should have been invoking
239 WriteImages rather than WriteImage!
241 2003-01-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
243 * lib/Magick++/Include.h: Add HSL and HWB colorspace
244 transformation support.
246 2003-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
248 * lib/Image.cpp (colorSpace): Support colorspace transforms
249 other than to and from RGB by translating to RGB as an intermediate
252 2002-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
254 * lib/Drawable.cpp: Added DrawablePushClipPath,
255 DrawablePopClipPath, and DrawableClipPath. Implementation
256 contributed by Vladimir <lvm@integrum.ru>.
258 2002-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
260 * lib/Image.cpp (colorMapSize): New method to set, or return
263 2002-11-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
265 * lib/Image.cpp (adaptiveThreshold): New method.
267 2002-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
269 * lib/Magick++/STL.h (coderInfoList): Intentionally ignore missing
272 2002-09-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
274 * lib/Options.cpp (textEncoding): Had forgotten to implement
277 2002-09-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
279 * lib/Color.cpp (Color): Use of 'new' and 'delete' in inlines was
280 causing memory allocation/deallocation problems for users of the
281 DLL build. Problem was identified by Marc Iwan.
283 2002-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
285 * lib/Image.cpp (compare): New method to compare current image
286 with a reference image.
288 2002-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
290 * lib/Image.cpp (textEncoding): New method to allow setting the
291 default text encoding (e.g. "UTF-8").
293 * lib/Drawable.cpp (DrawableText): Added an alternate constructor
294 to allow specifying the text encoding (e.g. "UTF-8").
296 2002-08-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
298 * Overall: Now compiles as a DLL using Visual C++.
300 2002-07-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
302 * lib/Image.cpp (profile): Added method to store, delete, or
303 retrieve named application profiles.
305 2002-07-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
307 * lib/Image.cpp (type): Set the ImageInfo type attribute when
308 setting the image type. If the type attribute is set to something
309 other than UndefinedType (implying that the user has set a desired
310 output image type), then return that as the image type, otherwise
311 use GetImageType() to evaluate the image type.
313 2002-05-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
315 * lib/Drawable.cpp (DrawableTextUnderColor): New class to set the
316 text undercolor. When text undercolor is set, a rectangle of the
317 specified color is rendered under text annotations.
319 2002-05-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
321 * Magick++ library no longer depends on iostreams at all.
323 2002-04-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
325 * lib/Image.cpp (throwImageException): ExceptionInfo was not being
326 properly initialized. This could cause some errors to cause an
327 abort in error.c rather than throwing an exception.
329 2002-04-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
331 * lib/Image.cpp (draw): Use draw.h drawing APIs to draw on image.
332 This means that MVG output no longer comes from code in
335 2002-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
337 * lib/STL.cpp: Moved function object implementations from STL.h to
340 2002-04-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
342 * lib/Image.cpp (getConstPixels): Changed offset parameter type
343 from 'unsigned int' to 'int'.
344 (getPixels): Changed offset parameter type from 'unsigned int' to
346 (setPixels): Changed offset parameter type from 'unsigned int' to
348 (cacheThreshold): Changed argument type from 'const long' to
350 (matteFloodfill): Changed offset parameter type from 'const long' to
353 * lib/Pixels.cpp (getConst): New method to return read-only pixels.
354 (get): Offset parameter types changed from 'unsigned int' to 'int'.
356 2002-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
358 * lib/Magick++/Drawable.h (DrawableDashOffset): Change dashoffset
359 type to 'double' rather than 'unsigned int' in order to match
362 * lib/Drawable.cpp (DrawableDashArray): Change dasharray type to
363 'double' rather than 'unsigned int' in order to match
364 ImageMagick. Previous 'unsigned int' methods remain for
365 compatability reasons.
367 2002-04-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
369 * lib/Drawable.cpp (DrawableCompositeImage): Always output
370 composite images as inlined Base64.
372 2002-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
374 * lib/Drawable.cpp (DrawableCompositeImage): If magick attribute
375 string is specified, then composite image is supplied to
376 ImageMagick as inlined Base64 rather than by MPRI reference.
378 * lib/Blob.cpp (base64): Added methods to update Blob with data
379 from Base64-encoded string, or to return a Base64-encoded string
380 from Blob. Still needs documentation.
382 2002-04-09 Dom Lachowicz <cinamod@hotmail.com>
384 * lib/Image.cpp (Image::ping): Added PingBlob function
386 2002-04-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
388 * lib/Drawable.cpp (DrawableDashArray::operator=): Added missing
389 assignment operator (fixes a bug).
390 (DrawableDashArray::DrawableDashArray): Added missing copy
391 constructor (fixes a bug).
393 * lib/Image.cpp (oilPaint): Changed argument type from unsigned
395 (chromaBluePrimary): Changed argument type from float to double.
396 (chromaGreenPrimary): Changed argument type from float to double.
397 (chromaRedPrimary): Changed argument type from float to double.
398 (chromaWhitePoint): Changed argument type from float to double.
399 (getConstPixels): Changed argument type of x_ & _y from 'int' to
401 (getPixels): Changed argument type of x_ & _y from 'int' to
404 2002-04-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
406 * lib/Image.cpp (debug): Added method to set ImageMagick debug
407 flag so that it prints debugging information while it runs.
409 2002-04-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
411 * lib/Drawable.cpp: Fixed a bunch of bugs related to
412 DrawableCompositeImage, DrawableFont, and inconsistencies
413 discovered by Gimpel lint.
415 2002-04-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
417 * lib/Image.cpp (draw): Properly delimit individual drawing
418 commands so that MVG output is correct.
420 2002-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
422 * lib/Drawable.cpp (DrawableViewbox): MVG syntax wasn't correct.
424 * lib/Image.cpp (draw): Fix algorithm used to append newlines to
425 MVG commands so that draw() may be invoked multiple times while
426 still producing valid MVG.
428 2002-03-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
430 * lib/Drawable.cpp (DrawableViewbox): New class to allow setting
433 2002-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
435 * lib/Drawable.cpp (print): Changed "mpr:" to "mpri:" in order to
436 *finally* get DrawableCompositeImage to work as intended.
438 * lib/Image.cpp (registerId): Bugfix. Register using
439 sizeof(MagickCore::Image) rather than sizeof(Image).
441 2002-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
443 * lib/Drawable.cpp (DrawableCompositeImage): Had failed to
444 initialize width and height in object to image width and height.
446 2002-02-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
448 * lib/Magick++/STL.h (endianImage): New class to specify the
449 endian option for formats which support this notion (e.g. TIFF).
451 * lib/Image.cpp (endian): New method to specify the endian option
452 for formats which support this notion (e.g. TIFF).
454 2002-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
456 * lib/Drawable.cpp (DrawableFont): Support specifying a font via
457 font-family, font-style, font-weight, and font-stretch. Wildcard
458 matches are supported.
460 2002-02-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
462 * lib/Image.cpp (charcoal): Replace Magick++'s charcoal effect
463 with the output of ImageMagick's CharcoalImage function in order
464 to ensure consistency.
466 * lib/Magick++/CoderInfo.h (MatchType): Scope the MatchType
467 enumeration to the CoderInfo class so these enumeration names can
468 be re-used elsewhere without conflict. This results in a minor
469 API change to the coderInfoList() templated function since
470 enumerations must be specified like "CoderInfo::TrueMatch" rather
471 than just "TrueMatch". Hopefully not a problem since this
472 function and class were not documented outside of the headers
475 2002-02-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
477 * lib/Magick++/STL.h (coderInfoList): Finally wrote some
480 2002-01-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
482 * lib/Options.cpp : Use DestroyImageList() rather than DestroyImage().
484 * lib/Geometry.cpp (operator =): Use GetPageGeometry() rather than
485 PostscriptGeometry() to parse geometry specifications containing a
488 2002-01-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
490 * Remove bogus cast of blob data in readImages().
492 2002-01-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
494 * lib/Image.cpp (throwImageException): Throwing exceptions was
497 * lib/Exception.cpp (throwException): Throwing exceptions was
500 * lib/Image.cpp (replaceImage): Updated to properly handle
502 (modifyImage): Updated to properly handle registration ids.
504 2002-01-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
506 * lib/Drawable.cpp (Magick::DrawableGravity::print):
507 Bugfix. Remove "Gravity" from the end of each gravity
508 specification string. Reported as PR#1084 by stefan@dotify.com.
510 2002-01-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
512 * lib/Image.cpp, Magick++/Include.h: Use DestroyImageList() rather
513 than DestroyImages().
515 2002-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
517 * lib/Magick++/Options.h (antiAlias): Bugfix, set
518 drawInfo->text_antialias to control text antialiasing.
520 2002-01-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
522 * lib/Magick++/Include.h : Imported new composition operators to
523 namespace: NoCompositeOp, DarkenCompositeOp, LightenCompositeOp,
524 HueCompositeOp, SaturateCompositeOp, ValueCompositeOp,
525 ColorizeCompositeOp, LuminizeCompositeOp, ScreenCompositeOp,
528 2001-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
530 * lib/Image.cpp (strokePattern): New method to specify image to
531 use as pattern while drawing stroked-outlines of drawn objects.
532 (fillPattern): New method to specify image to use as pattern while
533 filling drawn objects.
534 (penTexture): Method is officially deprecated. Don't use anymore.
535 (penColor): Method is officially deprecated. Don't use anymore.
537 * lib/Drawable.cpp (DrawablePushPattern): Support pushing
538 (starting) pattern definition.
539 (DrawablePopPattern): Support popping (terminating) pattern
542 2001-12-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
544 * lib/Drawable.cpp (DrawableCompositeImage): Read image
545 immediately if provided by filename, register with peristent
546 registry, and pass as perisistant image type.
547 (DrawableCompositeImage): Support specifying Image in memory.
548 Passed as perisistant image type.
550 2001-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
552 * lib/Color.cpp (operator std::string): Color string buffer was
553 one character too short!
555 2001-12-20 Bob Friesenhahn <bfriesen@sun1107.ssd.usa.alcatel.com>
557 * lib/TypeMetric.cpp (characterWidth): Eliminate method.
558 (characterHeight): Eliminate method.
559 (all remaining methods): Change return type to 'double'. Fix
560 documentation in source files to reflect that units are in pixels
562 (descent): Renamed method from 'decent' to 'descent'.
564 2001-11-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
566 * lib/Image.cpp (Magick): Invoke DestroyMagick() to clean up
567 ImageMagick allocations.
569 * lib/Magick++/Include.h (ImageType): Added some missing enums to
572 2001-11-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
574 * lib/Magick++/CoderInfo.h (CoderInfo): Syntax fix.
575 ImageMagick bug #975.
577 * lib/Image.cpp (draw): Delete ostrstream data when it is no
578 longer needed. ImageMagick bug #988.
580 2001-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
582 * lib/Image.cpp (pixelColor): Implementation didn't handle pixels
583 indexes correctly. Now it does.
585 2001-11-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
587 * lib/Image.cpp (matteFloodfill): Coordinates are long values.
588 (floodFillOpacity): New method to floodfill opacity across pixels
589 matching color (within fuzz-factor) at point. Similar to
590 matteFloodfill except that color is selected from starting point.
592 2001-10-29 Bob Friesenhahn <bfriesen@sun1107.ssd.usa.alcatel.com>
594 * lib/Image.cpp (strokeDashArray): Change to type double.
595 (strokeDashOffset): Change to type double.
597 2001-10-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
599 * lib/Geometry.cpp (Geometry): Add constructor from
600 MagickCore::RectangleInfo.
602 * lib/Image.cpp (boundingBox): Method to return smallest bounding
603 box enclosing non-border pixels.
605 2001-10-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
607 * lib/Image.cpp (getConstIndexes): Add method to obtain read-only
609 (getIndexes): Add method to obtain read-write pixel indexes.
610 (Image::Image): Send warnings from Image constructor to cerr
611 rather than throwing.
613 * lib/Color.cpp (Color(PixelPacket&)): Change argument to const
614 PixelPacket& as it should have been from the beginning.
616 * lib/Image.cpp (pixelColor): Reimplemented to be a const method.
618 2001-10-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
620 * lib/Image.cpp (getConstPixels): New method for returning a
621 read-only pixel view. Still requires documentation.
623 * lib/Magick++/STL.h (coderInfoList): Fixed compilation problem
624 when compiling with Visual C++.
626 2001-10-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
628 * lib/Magick++/Color.h (scaleQuantumToDouble): Add polymorphic
629 version that accepts double to avoid downconversion error.
631 2001-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
633 * lib/Magick++/Color.h (scaleQuantumToDouble): Cast Quantum to
634 double prior to division. Hopefully fix bug.
636 2001-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
638 * lib/Magick++/Color.h (Color(const std::string)): Pass argument by reference.
639 * (operator=): Pass argument by const reference.
641 2001-09-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
643 * lib/Magick++/STL.h (coderInfoList): New function to support
644 obtaining format coder information (as a list of type CoderInfo).
646 * lib/CoderInfo.cpp (CoderInfo): New class to support obtaining
647 format coder information.
649 2001-09-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
651 * lib/Image.cpp (depth): Use GetImageDepth and SetImageDepth
652 rather than just getting/setting depth attributes.
654 * lib/Magick++/STL.h (opacityImage): New unary function object to
655 set, or attenuate, image pixel opacity throughout the image.
657 * lib/Image.cpp (opacity): New method to set, or attenuate, image
658 pixel opacity throughout the image.
660 * lib/Magick++/STL.h (typeImage): New unary function object to set
663 * lib/Image.cpp (type): Added ability to set image type.
665 2001-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
667 * lib/Image.cpp (write(Blob)): Tell blob to use malloc allocator.
669 * lib/Blob.cpp (updateNoCopy): Added parameter so that user can
670 specify the allocation system (malloc or new) the memory came
671 from. Defaults to C++ memory allocator.
673 2001-09-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
675 * lib/Image.cpp (fileSize): Decided to change return type to off_t
676 for increased range and portability.
678 2001-09-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
680 * lib/Image.cpp (fileSize): Changed return value to double.
682 2001-09-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
684 * lib/Image.cpp (colorMap): Allocate a colormap if it does not
687 * lib/Pixels.cpp (indexes): Don't attempt to validate image type.
689 * lib/Image.cpp (colorMap): Optimized more for performance.
691 2001-09-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
693 * lib/Image.cpp (fontTypeMetrics): New method to support
694 retrieving font metrics.
696 * lib/TypeMetric.cpp : New class to support font metrics
699 2001-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
701 * lib/Magick++/Color.h (scaleDoubleToQuantum): Inline static
702 method made from previous ScaleDoubleToQuantum #define.
703 (scaleQuantumToDouble): Inline static method made from previous
704 ScaleQuantumToDouble #define. Helps avoid possibility of clash
707 2001-08-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
709 * lib/Image.cpp (colorMap): Automagically extend colormap if
710 specified index is past end of current colormap. Colormap is
711 limited to a maximum depth of QuantumRange entries.
713 2001-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
715 * lib/Image.cpp (clipMask): New method to add a clip mask to the
716 image. Adds clipping to any image operation wherever the clip
717 mask image is tranparent.
719 2001-08-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
721 * lib/Drawable.cpp (print): Add single quotes around file names
722 and font specifications.
724 2001-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
726 * lib/Image.cpp (read): Ensure that only a single image frame is read.
728 2001-07-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
730 * lib/Magick++/STL.h (flattenImages): New function to flatten a
733 * lib/Montage.cpp (Montage): Montage initial defaults are no
734 longer drawn from ImageInfo. MontageInfo structure is entirely
735 filled out by updateMontageInfo();
737 2001-07-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
739 * lib/Montage.cpp (updateMontageInfo): Bugfix; colors which were
740 intentionally specified as invalid (unset) were being ignored.
741 This produced unattractive label text when doing a montage.
743 2001-07-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
745 * lib/Magick++/STL.h (medianFilterImage): Changed argument from
746 unsigned int to const double.
747 (fillColorImage): New method.
748 (strokeColorImage): New method.
749 (isValidImage): New method.
751 * lib/Magick++/Image.h (edge): Change argument from unsigned int to double.
752 (medianFilter): Changed argument from unsigned int to const double.
754 * lib/Magick++/STL.h (edgeImage): Change argument from unsigned int to double.
756 * demo/demo.cpp (main): Updated to match PerlMagick demo.
758 2001-06-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
760 * lib/Magick++/STL.h (shaveImage): New function to shave edges from image.
762 * lib/Image.cpp (shave): New method to shave edges from image.
764 2001-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
766 * lib/Image.cpp (quantize): Remove conditions on whether
767 quantization should be done. Now quantization is always done.
769 2001-06-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
771 * lib/Magick++/Image.h (blur,charcoal,emboss,sharpen): Changed
772 radius and sigma parameters to match current ImageMagick defaults.
774 2001-02-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
776 * lib/Options.cpp (updateDrawInfo): The updateDrawInfo() method
777 was no longer needed. Due to ImageMagick changes, calling it was
778 causing some options to be lost.
780 2001-01-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
782 * lib/Image.cpp (fillRule): New method to specify the rule to use when filling drawn objects.
784 2001-01-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
786 * lib/Image.cpp (erase): New method to reset image to background
788 (strokeAntiAlias): New method to control antialiasing of stroked
791 2001-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
793 * lib/Image.cpp (channel): Renamed method from 'layer' to match
794 equivalent change in ImageMagick (ChannelImage). Enumeration
795 names *Layer renamed to *Channel.
797 2001-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
799 * lib/Magick++/Montage.h (strokeColor): New method.
800 (fillColor): New method.
802 * lib/Image.cpp (replaceImage): Revised logic so that an inValid
803 image should be returned if a NULL pointer is passed. Before this
804 change the existing image was preserved.
805 (label): Work-around ImageMagick SetImageAttribute bug.
807 2001-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
809 * lib/Image.cpp : Adjusted to ImageMagick animation parameter API change.
811 2000-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
813 * lib/Drawable.cpp (DrawableCompositeImage): Support specifying
816 2000-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
818 * lib/Image.cpp (draw): Bugfix - the primitive string was not
819 properly null terminated. It is a wonder that the code usually
820 worked at all. Thanks to afatela@marktest.pt for reporting it.
822 2000-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
824 * lib/Magick++/STL.h (deconstructImages): New STL function for
825 deconstructing an image list to assist with creating an animation.
826 (mosaicImages): New STL function for inlaying an image list to
827 form a single coherent picture.
829 2000-12-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
831 * lib/Image.cpp (convolve): New method to convolve image using
832 user-supplied convolution matrix.
833 (unsharpmask): New method to replace image with a sharpened
834 version of the original image using the unsharp mask algorithm.
836 2000-12-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
838 * : Adapted to ImageMagick API change which eliminates AnnotateInfo.
840 2000-12-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
842 * lib/Magick++/STL.h (annotateImage): Brought into sync with
843 annotate methods in Image.
845 2000-12-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
847 * lib/Image.cpp (annotate): Usage of Geometry parameter was
848 incorrect. Geometry parameter is used to specify bounding area.
849 This changes the interpretation for two of the annotate methods
850 (which probably weren't usable before).
852 2000-11-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
854 * lib/Magick++/Color.h (alphaQuantum): Bugfix. Due to change in
855 treatment of opacity member, alphaQuantum() was not allowing value
858 2000-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
860 * lib/Drawable.cpp (DrawableFillRule): New class to specify fill
861 rule (see SVG's fill-rule).
862 (DrawableDashOffset): New class to specify initial offset in dash
864 (DrawableDashArray): New class to specify a stroke dash pattern.
865 (DrawableStrokeLineCap): New class to specify the shape to be used
866 at the end of open subpaths when they are stroked.
867 (DrawableStrokeLineJoin): New class to specify the shape to be
868 used at the corners of paths (or other vector shapes) when they
870 (DrawableMiterLimit): New class to specify extension limit for
873 2000-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
875 * lib/Image.cpp (annotate): Reimplement text rotation using affine
876 member of AnnotateInfo.
877 (strokeDashOffset): New method for specifying the dash offset to use for
878 drawing vector objects. Similar to SVG stroke-dashoffset.
879 (strokeDashArray): New method for specifying the dash pattern to use
880 for drawing vector objects. Similar to SVG stroke-dasharray
881 (strokeLineCap): New method to specify the shape to be used at the end
882 of open subpaths when they are stroked. Similar to SVG
884 (strokLineJoin): New method to specify the shape to be used at the
885 corners of paths (or other vector shapes) when they are
886 stroked. Similar to SVG stroke-linejoin.
887 (strokeMiterLimit): New method to specify the miter limit when joining
888 lines using MiterJoin. Similar to SVG stroke-miterlimit.
889 (strokeWidth): Renamed lineWidth method to strokeWidth.
891 2000-10-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
893 * lib/Magick++/Drawable.h (DrawableCompositeImage): Add a
894 short-form constructor to support specifying image location and
895 name, but without specifying rendered size (use existing image
898 2000-10-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
900 * lib/Magick++/Drawable.h (DrawablePopGraphicContext): New class
901 to pop graphic context.
902 (DrawablePushGraphicContext): New class to push graphic context.
904 * lib/Drawable.cpp (DrawableStrokeAntialias): New class to set
906 (DrawableTextAntialias): New class to set text antialiasing.
908 2000-10-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
910 * lib/Image.cpp (transformOrigin): New method to set origin of
911 coordinate system for use when annotating with text or drawing
912 (transformRotation): New method to set rotation for use when
913 annotating with text or drawing
914 (transformScale): New method to set scale for use when annotating
915 with text or drawing.
916 (transformSkewX): New method to set skew for use in X axis when
917 annotating with text or drawing.
918 (transformSkewY): New method to set skew for use in Y axis when
919 annotating with text or drawing.
920 (transformReset): New method to reset transformation to default.
922 * lib/Drawable.cpp (DrawablePath): New class for drawing SVG-style
924 (PathArcArgs): New class. Argument for PathArcArgs & PathArcAbs.
925 (PathArcAbs): New class. Draw arc using absolute coordinates.
926 (PathArcRel): New class. Draw arc using relative coordinates.
927 (PathClosePath): New class. Close drawing path.
928 (PathCurvetoArgs): New class. Argument class for PathCurvetoAbs &
930 (PathCurvetoAbs): New class. Cubic bezier, absolute coordinates
931 (PathCurvetoRel): New class. Cubic bezier, relative coordinates
932 (PathSmoothCurvetoAbs): New class. Cubic bezier, absolute
934 (PathSmoothCurvetoRel): New class. Cubic bezier, relative
936 (PathQuadraticCurvetoArgs): New class. Argument class for
937 PathQuadraticCurvetoAbs and PathQuadraticCurvetoRel.
938 (PathQuadraticCurvetoAbs): New class. Quadratic bezier, absolute
940 (PathQuadraticCurvetoRel): New class. Quadratic bezier, relative
942 (PathSmoothQuadraticCurvetoAbs): New class. Quadratic bezier,
944 (PathSmoothQuadraticCurvetoRel): New class. Quadratic bezier,
946 (PathLinetoAbs): New class. Line to, absolute coordinates
947 (PathLinetoRel): New class. Line to, relative coordinates
948 (PathLinetoHorizontalAbs): New class. Horizontal lineto, absolute
950 (PathLinetoHorizontalRel): New class. Horizontal lineto, relative
952 (PathLinetoVerticalAbs): New class. Veritical lineto, absolute
954 (PathLinetoVerticalRel): New class. Vertical lineto, relative
956 (PathMovetoAbs): New class. Moveto, absolute coordinates
957 (PathMovetoRel): New class. Moveto, relative coordinates
959 2000-10-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
961 * lib/Drawable.cpp (DrawableSkewX): New object to apply skew in X direction.
962 (DrawableSkewY): New object to apply skew in Y direction.
964 2000-10-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
966 * lib/Image.cpp (edge): Change argument from 'unsigned int' to
967 'double' in order to match ImageMagick API.
969 2000-10-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
971 * lib/Drawable.cpp (DrawableCompositeImage): Renamed from
973 (DrawableTextDecoration): Renamed form DrawableDecoration.
974 (all-classes): Complete re-write to write the drawing command to a
975 stream when draw() is invoked rather than at object construction
976 time. This may be somewhat slower for individual draw operations
977 but should be at least as fast for lists of drawing commands,
978 and is more flexible going into the future. Drawable classes now
979 inherit from DrawableBase but are passed into STL lists and Image
980 draw() methods via the surrogate class Drawable. The upshot of
981 all this is that the existing published API has not been altered
982 but things work much differently under the covers.
984 2000-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
986 * lib/Drawable.cpp (DrawableStrokeColor): Renamed from DrawableStroke
987 (DrawableFillColor): Renamed from DrawableFill
988 (DrawableRotation): New class to influence object rotation.
989 (DrawableScaling): New class to influence object scaling.
990 (DrawableTranslation): New class to influence object translation.
992 2000-10-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
994 * lib/Drawable.cpp (DrawableAffine): New class to influence object
995 scaling, rotation, and translation (as defined by SVG XML).
996 (DrawableAngle): New class to influence drawing angle.
997 (DrawableDecoration): New class to influence text decoration such
999 (DrawableFill): New class to set object filling color.
1000 (DrawableFillOpacity): New class to set opacity to use when
1002 (DrawableFont::): New class to set font.
1003 (DrawableGravity): New class to set text placement gravity.
1004 (DrawablePointSize): New class to set font point size.
1005 (DrawableStroke): New class to set drawing stroke color.
1006 (DrawableStrokeOpacity): New class to set drawing stroke opacity.
1007 (DrawableStrokeWidth): New class to set drawing stroke width.
1009 2000-10-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1011 * lib/Drawable.cpp (DrawableImage): Added width and height
1012 parameters to specify size to scale rendered image to. This is
1013 actually a bug-fix since it seems that the correct drawing command
1014 was no longer being generated.
1016 2000-09-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1018 * lib/Image.cpp (read): New overloaded method to read an image
1019 based on an array of raw pixels, of specified type and mapping, in
1021 (write): New overloaded method to write image to an array of
1022 pixels, of specified type and mapping.
1023 (Image): New overloaded constructor to construct an image based on
1024 an array of raw pixels, of specified type and mapping, in memory.
1026 2000-09-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1028 * lib/Image.cpp (colorize): API change to match change in
1029 ImageMagick. Now accepts percentage of red, green, and blue to
1030 colorize with using specified pen color.
1032 2000-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1034 * lib/Magick++/Drawable.h: Reverted Coordinate implemenation back
1035 from and STL pair based implementation to a simple class. Maybe
1036 this will improve portability. It is more understandable anyway.
1038 2000-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1040 * lib/Options.cpp : Bugfix. Some DrawInfo attributes were not
1041 being updated. This lead to options like fontPointsize not
1044 2000-08-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1046 * lib/Magick++/STL.h (blurImage, charcoalImage, embossImage,
1047 sharpenImage): Expand order_ argument to radius_ & sigma_
1048 arguments for more control (matches ImageMagick API change).
1050 * lib/Image.cpp (blur, charcoal, emboss, sharpen): Expand order_
1051 argument to radius_ & sigma_ arguments for more control (matches
1052 ImageMagick API change).
1054 2000-08-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1056 * lib/Image.cpp (read): Check returned Image for embedded
1057 exception, as well as the existing parameter check. This fixes
1058 the bug that warnings are not reported.
1060 2000-07-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1062 * test/*.cpp demo/*.cpp: Added call to MagickIncarnate() to set
1063 ImageMagick install location for Windows. Hopefully this hack can
1066 2000-07-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1068 * lib/Image.cpp (colorFuzz): Changed type to 'double' from
1069 'unsigned int' to match change in ImageMagick.
1071 * lib/Color.cpp (Color*): Added copy constructor from base class.
1072 (operator =): Added assignment operator from base class.
1074 2000-06-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1076 * lib/Magick++/Include.h : Changed enumeration FilterType to
1077 FilterTypes, and QuantumTypes to QuantumType in order to match
1078 last-minute API change in ImageMagick.
1080 2000-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1082 * lib/Magick++/Pixels.cpp (indexes): Bugfix, use GetCacheViewIndexes()
1083 rather than GetIndexes().
1085 2000-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1087 * lib/Magick++/Montage.h (gravity): Type of gravity_ argument, and
1088 return value changed from 'unsigned int' to GravityType.
1090 2000-04-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1092 * lib/Drawable.cpp (DrawableArc, DrawableBezier, DrawablePolyline,
1093 RoundRectangle): Added support for new drawing objects.
1095 2000-04-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1097 * lib/Drawable.cpp: Removed all public methods which accept
1098 Coordinate arguments except those that accept lists of
1099 Coordinates. Converted remaining drawable object methods into
1100 individual classes which inherit from Drawable (e.g. "circle"
1101 becomes "DrawableCircle"). The constructor for each class is
1102 compatible with the original method. This results in annoying
1103 changes to user code but provides more implementation flexibility.
1105 2000-04-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1108 (fillEllipse,fillRectangle,fillCircle,fillPolygon): Removed
1109 methods. Object filling is now based on whether fillColor or
1110 penTexture are valid or not. This reflects ImageMagick internal
1113 * lib/Image.cpp (fillColor): New method to specify fill color when
1115 (strokeColor): New method to specify outline color when drawing
1117 (penColor): Setting penColor now sets fillColor and
1118 strokeColor. Getting penColor retrieves the value of
1119 strokeColor. This supports backwards compatability.
1121 2000-03-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1123 * lib/Image.cpp (lineWidth): Type changed from unsigned int to double.
1125 2000-03-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1127 * lib/Magick++/STL.h (Magick):
1129 2000-03-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1131 * lib/Magick++/STL.h (blurImage,charcoalImage,edgeImage,embossImage,
1132 reduceNoiseImage,sharpenImage): Modified to support order of the
1133 pixel neighborhood. Backward compatable function objects constructors
1134 are provided for embossImage, and reduceNoiseImage.
1136 * lib/Image.cpp (blur,charcoal,edge,emboss,reduceNoise,sharpen):
1137 Now accept unsigned int argument which represents the order of the
1138 pixel neighborhood (e.g. 3). This is not a backwards compatable
1139 change, however, backward compatable methods are provided for emboss,
1142 2000-03-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1144 * lib/Magick++/Pixels.h (Pixels): Moved Image pixel methods to
1147 2000-02-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1149 * lib/Image.cpp (annotate): Re-wrote to improve performance.
1150 (draw): Re-wrote to improve performance.
1152 2000-02-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1154 * lib/Drawable.cpp (text): Bugfix: support spaces in annotation text.
1156 2000-02-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1158 * lib/Magick++/STL.h (gaussianBlurImage): New function object to
1159 Gaussian blur image.
1161 * lib/Image.cpp (gaussianBlur): New method to Gaussian blur image.
1163 2000-02-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1165 * lib/Image.cpp : Call-back based LastError class is eliminated in
1166 favor of ImageMagick 5.2's re-entrant ExceptionInfo reporting.
1167 This should make Magick++ thread safe under Win32.
1169 2000-02-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1171 * lib/Image.cpp (floodFillTexture): Fixed bug due to pixel pointer
1172 becoming invalid in ImageMagick function.
1174 2000-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1176 * lib/Image.cpp : Added locking to reference counting to ensure
1177 thread (pthread) safety.
1179 * lib/Blob.cpp : Added locking to reference counting to ensure
1180 thread (pthread) safety.
1182 * lib/LastError.cpp: Added support for thread specific data
1183 (pthreads) so that error reporting is thread safe.
1185 * lib/Magick++/Thread.h: Added thread wrapper class to provide
1186 thread-safe locking (pthreads) to Magick++.
1188 2000-01-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1190 * lib/Image.cpp: Added methods getPixels, setPixels, syncPixels,
1191 readPixels, and writePixels, in order to provide low-level access
1192 to Image pixels. This approach (direct wrapper around ImageMagick
1193 functions) does not mean that the planned object-oriented wrapper
1194 has been forgotten, only that this wrapper is not ready yet, and
1195 users need to manipulate pixels *now*.
1197 2000-01-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1199 * lib/LastError.cpp: Complete re-implementation of LastError so
1200 that it hides its implementation. Also assures that all memory is
1201 explicitly deallocated at program exit to avoid the appearance of
1204 2000-01-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1206 * lib/Image.cpp (size): Bug-fix. Set image columns and rows as
1207 well as image options columns and rows.
1209 * lib/Image.cpp :Depth parameters are now all unsigned in for consistency.
1211 * lib/Image.cpp (write): Parameters for writing Blobs re-arranged
1212 again to hopefully be more sensible.
1214 * lib/Magick++/STL.h: Bug-fix. Re-number scenes from zero when linking
1215 image range in container into a list. This provides expected results.
1217 1999-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1220 (write): Additional overloaded methods for BLOBs.
1221 (read): Additional overloaded methods for BLOBs. Re-ordered
1222 parameters for one existing method.
1223 (Image): Additional overloaded methods for BLOBs. Re-ordered
1224 parameters for one existing method.
1226 1999-12-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1228 * lib/Image.cpp (floodFillTexture): Changed coordinates to unsigned.
1230 1999-12-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1232 * lib/Image.cpp (medianFilter): New method.
1234 1999-12-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1236 * lib/Image.cpp (density): Bug fix. Was not setting image x & y density.
1238 1999-11-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1240 * lib/Image.cpp (page): psPageSize() is renamed to page() and now
1241 properly returns the attribute from the image.
1243 1999-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1245 * lib/Image.cpp: Rename transformColorSpace() to colorSpace().
1246 Added colorSpace() accessor method.
1248 1999-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1250 * lib/Color.cpp: Re-implemented PixelPacket pointer so that it is
1251 never NULL and added a 'valid' field for tracking object validity.
1253 1999-11-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1255 * lib/Image.cpp (quantizeError): Eliminated method.
1257 1999-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1259 * lib/Image.cpp (annotate & draw): Changed implementation to
1260 reflect change to the way AnnotateInfo is managed by ImageMagick.
1262 1999-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1264 * lib/Image.cpp (cacheThreshold): New method to set the pixel
1267 * lib/Magick++/Include.h (Magick): Added new enumerations from
1270 1999-10-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1272 * lib/Magick++/Options.h (fontPointsize): Argument is now a double
1273 to match change in ImageMagick.
1275 * lib/Image.cpp (fontPointsize): Argument is now a double to match
1276 change in ImageMagick.
1278 1999-10-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1280 * lib/Blob.cpp (BlobRef): Bugfix -- start blob reference count at
1281 one rather than zero.
1283 1999-10-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1285 * lib/Image.cpp (Image): Fixed Image constructors from Blob. The
1286 image reference was not being instantiated as it should have been,
1289 1999-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1291 * lib/Blob.cpp: All blob length parameters are now of type size_t.
1293 * lib/Image.cpp (write): Length estimate is now of type size_t.
1295 1999-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1297 * lib/Image.cpp (rotate): No longer accepts a crop option since
1298 ImageMagick no longer supports this.
1299 (shear): No longer accepts a crop option since ImageMagick no
1300 longer supports this.
1302 1999-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1305 (rotate): No longer accepts sharpen argument.
1306 User must sharpen separately if desired. This change is due to a
1307 similar change in ImageMagick 5.0.
1308 (condense): Removed method.
1309 (uncondense): Removed method.
1310 (condensed): Removed method.
1311 (pixelColor): Adapted to 5.0.
1313 * lib/Magick++/Color.h : Rewrote to efficiently use ImageMagick
1314 5.0's PixelPacket color representation.
1316 * lib/Color.cpp : Rewrote to efficiently use ImageMagick 5.0's
1317 PixelPacket color representation.
1319 1999-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1321 * lib/Image.cpp (condensed): Bug fix. The condensed() method was returning the opposite bool value than it should. Oops!
1323 1999-09-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1325 * lib/Magick++/Include.h (MagickCore): Eliminated requirement for
1326 including <magick/define.h>.
1328 1999-08-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1330 * lib/Image.cpp: Added accessor methods for other key ImageMagick
1333 * lib/Options.cpp (penTexture): Fixed bug with removing texture
1334 caused by change in Image constructor.
1336 * lib/Image.cpp: Changed strategy such that an Image containing a
1337 null MagickCore::Image pointer is never constructed except for
1338 under error conditions. Removed existing checks for null image
1339 pointer on attribute methods.
1341 Use image() and constImage() accessor methods as part of Image
1342 implementation in order to clean-up code and ensure
1345 1999-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1347 * lib/Magick++/STL.h (Magick): Added STL function readImages().
1349 (Magick): Added STL function writeImages(). Not tested yet.
1351 * lib/Image.cpp: Removed support for 'text' attribute as this is
1352 no longer present in ImageMagick as of 4.2.8.
1354 1999-07-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1356 * lib/Image.cpp (condense): Skip condensing image if already
1358 (uncondense): Skip uncondensing image if not condensed.
1359 (condensed): New method to test if image is condensed.
1360 (classType): New method which supports conversion of the image
1361 storage class. May result in loss of color information
1362 (quantization is used) if a DirectClass image is converted to
1365 1999-07-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1367 * lib/Magick++/Color.h (Magick::Color): Color parameters are now
1368 stored in a MagickCore::RunlengthPacket structure which is
1369 referenced via a pointer. This structure is either allocated by a
1370 Magick::Color constructor or passed as an argument to a
1371 Magick::Color constructor so that it may refer to a
1372 MagickCore::Image pixel. The owner of the structure is managed so
1373 that the structure is only deleted if it was allocated by
1376 1999-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1378 * overall : Removed 'Magick' prefix from all source file
1379 names. Moved class headers to Magick++ subdirectory. This should
1380 not break any code using the documented interface (via
1383 1999-07-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1385 * lib/MagickImage.cpp (composite): Support composition placement
1386 by gravity like PerlMagick does.
1388 1999-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1390 * lib/MagickImage.cpp (Image): Added constructors to construct an
1393 1999-07-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1395 * tests/manipulate.cpp (main): Wrote a basic sanity test for
1396 reading and writing BLOBS.
1398 1999-06-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1400 * lib/MagickImage.cpp (read): Added support for reading an encoded
1401 image stored in a BLOB. Uses new ImageMagick APIs introduced on
1403 (write): Added support for writing an encoded image to a BLOB.
1405 1999-06-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1407 * lib/MagickInclude.h : Use new <magick/api.h> interface to
1408 ImageMagick to avoid namespace-induced problems.
1410 * configure.in : CPPFLAGS and LDFLAGS specified via the
1411 environment take precidence over flags from Magick-config.
1413 1999-05-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1415 * lib/MagickSTL.h (mapImages): New algorithm to map the sequence
1416 of images to the color map of a provided image.
1417 (quantizeImages): New algorithm to quantize a sequence of images
1418 to a common color map.
1420 1999-05-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1422 * lib/MagickBlob.cpp (updateNoCopy): New method to allow derived
1423 classes to insert data into the base class without making a copy
1424 of the data. This represents a transfer of ownership of the data
1425 from the derived class to the base class.
1427 1999-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1429 * lib/MagickColor.cpp (operator =): Adapted to new ImageMagick
1430 4.2.6 as of 5/23/99 which removes X11 compatability functions.
1432 * lib/MagickGeometry.cpp (operator =): Adapted to new ImageMagick
1433 4.2.6 as of 5/23/99 which removes X11 compatability functions.
1435 1999-05-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1437 * lib/MagickBlob.cpp (Blob): Support default constructor for Blob.
1439 1999-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1441 * lib/MagickSTL.h (transformColorSpaceImage): New unary function object
1442 to invoke transformColorSpace on STL container object.
1444 * lib/MagickImage.cpp (transformColorSpace): New method to
1445 transform the image data to a new colorspace.
1447 1999-05-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1449 * lib/MagickImage.cpp (ping): Re-implemented to match (requested)
1450 API change in ImageMagick 4.2.5. Method signature has changed to
1452 (annotate): Added two new overloaded methods for text annotation
1453 in order to support the new rotated text capability in ImageMagick
1454 4.2.5. To accomplish this, the default for gravity had to be
1455 removed from several methods. This may impact existing code.
1456 Still not sure if this is the best set of method signatures.
1458 1999-05-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1460 * lib/MagickImage.cpp (ping): New method to obtain image size in
1461 bytes and geometry without the overhead of reading the complete
1463 (uncondense): New method to uncompress run-length encoded pixels
1464 into a simple array to make them easy to operate on.
1466 1999-05-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1468 * lib/MagickImage.cpp (comment): Passing an empty string as the
1469 comment results in no comment at all rather than a comment with no
1472 1999-05-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1474 * lib/MagickImage.cpp (iccColorProfile): Implemented method to set
1475 ICC color profile from opaque object in memory (must be formatted
1476 outside of Magick++).
1477 (iptcProfile): Implemented method to set IPTC profile from opaque
1478 object in memory (must be formatted outside of Magick++).
1480 * lib/MagickBlob.cpp: New class to support managing user-supplied
1481 opaque Binary Large OBjects (BLOBS) in the API. Reference counted
1482 to improve semantics and to possibly reduce memory consumption.
1484 1999-05-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1486 * lib/Makefile.am (libMagick): Updated to use libtool 1.3 so that
1487 shared library can be built.
1489 1999-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1491 * lib/MagickImage.cpp (montageGeometry): Return Magick::Geometry
1492 rather than std::string.
1494 1999-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1496 * lib/MagickColor.cpp (alpha): Added support for setting alpha via
1497 scaled-double to the Color class. The new method name is 'alpha'.
1499 1999-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1501 * lib/MagickColor.cpp: Added support for setting an alpha value
1502 (unscaled Quantum only) for use on DirectColor images that have
1503 matte enabled. This requires ImageMagick 4.2.2 dated April 13,
1504 1999 or later to compile since Cristy added a special flag to
1505 allow testing to see if the user has specified an opacity value:
1506 "I added XColorFlags to magick/classify.h. If DoMatte is set in
1507 color->flags then the opacity value is valid in color->pixel."
1509 1999-04-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1511 * demo/flip.cpp (main): New file. Demonstrates use of flipImage
1512 function object as well as morphImages algorithm.
1514 1999-04-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1516 * tests/color.cpp : New file to support testing the Magick::Color
1519 * lib/MagickOptions.cpp: The ImageInfo filter member is now
1520 ignored by ImageMagick (as of ImageMagick 4.2.2 April 10, 1998) so
1521 support for setting it is removed. The Image filter member is
1522 still updated. According to Cristy, this ImageMagick version
1523 removes automatic sharpening of resized images. The blur member
1524 is added to the Image structure. A blur value < 1 causes the image
1525 to be sharpened when resizing while a value > 1 leaves the image
1526 blurry. Magick++ does not yet support the blur member.