1 2010-06-16 6.6.2-2 Cristy <quetzlzacatenango@image...>
2 * Patch for compile problem in mapImages of the STL header.
4 2010-02-21 6.5.9-10 Cristy <quetzlzacatenango@image...>
5 * Add extent() to extend the image as defined by the geometry, gravity, and
6 image background color.
8 2009-11-14 6.5.7-8 Cristy <quetzlzacatenango@image...>
9 * Add forwardFourierTransform(), inverseFourierTransform(), and
10 inverseFourierTransformImage() methods to implement forward and inverse
11 discrete Fourier transform (DFT / IFT).
13 2009-09-28 6.5.6-6 Cristy <quetzlzacatenango@image...>
14 * Add splice() method to splice the background color into the image.
16 2009-04-01 6.5.1-1 Cristy <quetzlzacatenango@image...>
17 * Add virtualPixelMethod() method for image and options, required for
20 2008-09-09 6.4.3-7 Cristy <quetzlzacatenango@image...>
21 * Use ImagesToBlob() rather than ImageToBlob() for writeImages().
23 2007-10-02 6.3.6-7 Cristy <quetzlzacatenango@image...>
24 * Define USE_MAP for Magick++/tests/colorHistogram.cpp (patch provided by
25 albert chin <china@thewr...>).
27 2007-04-10 6.3.3-7 Cristy <quetzlzacatenango@image...>
28 * Add colorspaceType(RGBColorspace) to set RGB colorspace before an
29 image read (useful to convert CMYK Potscript to RGB).
31 2006-02-05 6.3.2-3 Cristy <quetzlzacatenango@image...>
32 * Clear exception in throwException() method.
34 2006-01-16 6.3.2-0 Cristy <quetzlzacatenango@image...>
35 * Add extent() method to extend the image as defined by the geometry.
37 2003-12-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
39 * demo/analyze.cpp (main): New program to demonstrate using the
40 'analyze' process module.
41 * demo/Makefile.am: Add rules to build analyze program.
42 * lib/Image.cpp (process): New method to execute process modules.
43 * lib/Image.cpp (attribute): New method to get and set named image
46 2003-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
48 * lib/Color.cpp: Ensure that all non-default constructors set
51 2003-09-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
53 * lib/Magick++/STL.h (colorHistogram): If map key is not const,
54 then implicit type conversion occurs. Sun's C++ compiler doesn't
55 seem to handle that. The map key is now defined as const in
58 2003-09-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
60 * tests/Makefile.am: Add build support for colorHistogram.cpp.
61 * tests/colorHistogram.cpp: New test program to test retrieving
62 color histograms from the image using colorHistogram().
63 * lib/Magick++/STL.h (colorHistogram): Added new template function
64 to retrieve a color histogram into a user-provided container.
65 Verified to work when using STL <vector> and <map> as the target
66 container types. When <map> is used, a user-specified color may
67 be used to perform lookups in the map to obtain the usage count for
69 * lib/Color.cpp (operator >=): Insufficient resolution was being
70 provided in order to reliably sort color objects in STL
71 containers. The updated algorithm should be fail-safe.
73 2003-08-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
75 * lib/Image.cpp (channelDepth): New method to set or get the
76 modulus depth for a specified channel.
78 2003-08-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
80 * lib/Magick++/Include.h (Magick): Added support for
81 CopyCyanCompositeOp, CopyMagentaCompositeOp,
82 CopyYellowCompositeOp, and CopyBlackCompositeOp, composition
85 2003-08-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
87 * lib/Image.cpp (depth): Method now only updates the
88 Image/ImageInfo depth member and retrieves the value of the Image
90 (modulusDepth): New method to inspect the pixels for actual
91 modulus depth, or update/reduce the pixels to a specified modulus
92 depth. The depth method was performing this function so any code
93 which depended on the depth method to compute or set the modulus
94 depth should be updated to use modulusDepth() instead.
96 2003-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
98 * lib/Image.cpp (matte): If a new matte channel is created,
99 initialize it to opaque. Likewise, if the matte channel is
100 eliminated, initialize the unused channel to opaque.
102 2003-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
104 * demo/demo.cpp (main): Don't crop logo image. *
105 * *.h, *.cpp: Include "Magick++/Include.h" before including any
106 compiler or system header in order to ensure that LFS defines are
107 properly applied. Inspired by patch from Albert Chin-A-Young.
109 2003-06-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
111 * lib/Magick++/Include.h: Needed to import ThrowLoggedException.
112 * lib/Exception.cpp (throwException): Add originating source
113 module, source line, and function name (if available) to exception
114 report. This is useful in order to determine the exact conditions
115 that lead to the exception being thrown.
116 * lib/Magick++/Exception.h: Added ErrorCoder, WarningCoder,
117 ErrorConfigure, WarningConfigure, ErrorDraw, WarningDraw,
118 ErrorImage, WarningImage, ErrorMonitor, WarningMonitor,
119 ErrorRegistry, WarningRegistry, ErrorStream, WarningStream,
120 ErrorType, and WarningType, exception classes to support the full
121 set of exceptions that ImageMagick can throw.
123 2003-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
125 * lib/CoderInfo.cpp (CoderInfo): Applied compilation fix from
126 Mike Chiarappa to compile using Borland C++.
128 2003-06-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
130 * lib/Geometry.cpp (string): Throw an exception if a string is
131 requested from an invalid geometry object.
133 2003-06-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
135 * lib/Geometry.cpp (operator =): If GetGeometry returns NoValue,
136 then assign an invalid geometry object to cause an exception if
137 the geometry is then used.
139 2003-06-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
141 * lib/Magick++/Exception.h (ErrorModule): Added class to handle
143 * lib/Magick++/Exception.h (WarningModule) Added class to handle
146 2003-05-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
148 * lib/Magick++/STL.h (coderInfoList): Use GetMagickInfoArray to
151 2003-05-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
153 * lib/Magick++/STL.h (affineTransformImage): Add function object
154 contributed by Vladimir Lukianov to apply an affine transform to
156 * lib/Image.cpp (affineTransform): Added method contributed by
157 Vladimir Lukianov to apply an affine transform to the image.
159 2003-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
161 * lib/Magick++/Include.h: Decided to back out change
162 which used the _VISUALC_ define to trigger inclusion of
165 2003-05-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
167 * lib/Magick++/Include.h: If _VISUALC_ is defined,
168 include <sys/types.h>. This ensures that this necessary
169 header is included even if HAVE_SYS_TYPES_H is not defined
172 2003-05-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
174 * lib/Image.cpp (InitializeMagick): InitializeMagick is
175 now a C++ function rather than a namespace inclusion.
176 An atexit() handler is registered to invoke DestroyMagick
177 when the program exits. Relying on static deconstruction
178 to invoke DestroyMagick proved to be unreliable due to
179 translation unit destruction uncertainty.
181 2003-04-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
183 * lib/Image.cpp (Image::Image (MagickCore::Image* image_)):
184 Incorporated recommended fix from Jukka Manner to avoid
185 a scenario which leaks an Options object.
186 * tests/coalesceImages.cpp: Updated to use modified
187 coalesceImages() interface.
188 * lib/Magick++/STL.h (coalesceImages): Replaced implementation
189 with one from Felix Heimbrecht. The template signature has
190 changed to return a new image sequence. This template API
191 silently ceased to funtion due to an ImageMagick CoalesceImages
194 2003-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
196 * tests/readWriteBlob.cpp (main): Added check for
197 stream read failure when reading blob data.
198 (class myBlob): Use get rather than read.
200 2003-03-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
202 * tests/attributes.cpp : Change in the way that Magick++
203 retrieves density caused tests to fail. Density now defaults
204 to 72x72 (ImageMagick default) rather than invalid.
206 2003-03-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
208 * demo/Makefile.am (CLEANFILES): Fix clean target to remove
209 *_out.mvg output files as well.
210 * demo/zoom.cpp: Added a command-line parser for dash
211 arguments as well as an image "resample" capability.
212 * lib/Image.cpp (density): Obtain density from Image
213 rather than ImageInfo if the Image is valid.
215 2003-03-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
217 * lib/Makefile.am : Added rules to install ImageMagick++.pc.
218 * lib/ImageMagick++.pc.in : Added pkgconfig file for
221 2003-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
223 * lib/Image.cpp (colorSpace): Pass image->colorspace to
224 TransformRGBColorspace.
226 2003-01-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
228 * lib/Magick++/STL.h (writeImages): Should have been invoking
229 WriteImages rather than WriteImage!
231 2003-01-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
233 * lib/Magick++/Include.h: Add HSL and HWB colorspace
234 transformation support.
236 2003-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
238 * lib/Image.cpp (colorSpace): Support colorspace transforms
239 other than to and from RGB by translating to RGB as an intermediate
242 2002-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
244 * lib/Drawable.cpp: Added DrawablePushClipPath,
245 DrawablePopClipPath, and DrawableClipPath. Implementation
246 contributed by Vladimir <lvm@integrum.ru>.
248 2002-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
250 * lib/Image.cpp (colorMapSize): New method to set, or return
253 2002-11-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
255 * lib/Image.cpp (adaptiveThreshold): New method.
257 2002-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
259 * lib/Magick++/STL.h (coderInfoList): Intentionally ignore missing
262 2002-09-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
264 * lib/Options.cpp (textEncoding): Had forgotten to implement
267 2002-09-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
269 * lib/Color.cpp (Color): Use of 'new' and 'delete' in inlines was
270 causing memory allocation/deallocation problems for users of the
271 DLL build. Problem was identified by Marc Iwan.
273 2002-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
275 * lib/Image.cpp (compare): New method to compare current image
276 with a reference image.
278 2002-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
280 * lib/Image.cpp (textEncoding): New method to allow setting the
281 default text encoding (e.g. "UTF-8").
283 * lib/Drawable.cpp (DrawableText): Added an alternate constructor
284 to allow specifying the text encoding (e.g. "UTF-8").
286 2002-08-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
288 * Overall: Now compiles as a DLL using Visual C++.
290 2002-07-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
292 * lib/Image.cpp (profile): Added method to store, delete, or
293 retrieve named application profiles.
295 2002-07-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
297 * lib/Image.cpp (type): Set the ImageInfo type attribute when
298 setting the image type. If the type attribute is set to something
299 other than UndefinedType (implying that the user has set a desired
300 output image type), then return that as the image type, otherwise
301 use GetImageType() to evaluate the image type.
303 2002-05-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
305 * lib/Drawable.cpp (DrawableTextUnderColor): New class to set the
306 text undercolor. When text undercolor is set, a rectangle of the
307 specified color is rendered under text annotations.
309 2002-05-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
311 * Magick++ library no longer depends on iostreams at all.
313 2002-04-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
315 * lib/Image.cpp (throwImageException): ExceptionInfo was not being
316 properly initialized. This could cause some errors to cause an
317 abort in error.c rather than throwing an exception.
319 2002-04-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
321 * lib/Image.cpp (draw): Use draw.h drawing APIs to draw on image.
322 This means that MVG output no longer comes from code in
325 2002-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
327 * lib/STL.cpp: Moved function object implementations from STL.h to
330 2002-04-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
332 * lib/Image.cpp (getConstPixels): Changed offset parameter type
333 from 'unsigned int' to 'int'.
334 (getPixels): Changed offset parameter type from 'unsigned int' to
336 (setPixels): Changed offset parameter type from 'unsigned int' to
338 (cacheThreshold): Changed argument type from 'const long' to
340 (matteFloodfill): Changed offset parameter type from 'const long' to
343 * lib/Pixels.cpp (getConst): New method to return read-only pixels.
344 (get): Offset parameter types changed from 'unsigned int' to 'int'.
346 2002-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
348 * lib/Magick++/Drawable.h (DrawableDashOffset): Change dashoffset
349 type to 'double' rather than 'unsigned int' in order to match
352 * lib/Drawable.cpp (DrawableDashArray): Change dasharray type to
353 'double' rather than 'unsigned int' in order to match
354 ImageMagick. Previous 'unsigned int' methods remain for
355 compatability reasons.
357 2002-04-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
359 * lib/Drawable.cpp (DrawableCompositeImage): Always output
360 composite images as inlined Base64.
362 2002-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
364 * lib/Drawable.cpp (DrawableCompositeImage): If magick attribute
365 string is specified, then composite image is supplied to
366 ImageMagick as inlined Base64 rather than by MPRI reference.
368 * lib/Blob.cpp (base64): Added methods to update Blob with data
369 from Base64-encoded string, or to return a Base64-encoded string
370 from Blob. Still needs documentation.
372 2002-04-09 Dom Lachowicz <cinamod@hotmail.com>
374 * lib/Image.cpp (Image::ping): Added PingBlob function
376 2002-04-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
378 * lib/Drawable.cpp (DrawableDashArray::operator=): Added missing
379 assignment operator (fixes a bug).
380 (DrawableDashArray::DrawableDashArray): Added missing copy
381 constructor (fixes a bug).
383 * lib/Image.cpp (oilPaint): Changed argument type from unsigned
385 (chromaBluePrimary): Changed argument type from float to double.
386 (chromaGreenPrimary): Changed argument type from float to double.
387 (chromaRedPrimary): Changed argument type from float to double.
388 (chromaWhitePoint): Changed argument type from float to double.
389 (getConstPixels): Changed argument type of x_ & _y from 'int' to
391 (getPixels): Changed argument type of x_ & _y from 'int' to
394 2002-04-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
396 * lib/Image.cpp (debug): Added method to set ImageMagick debug
397 flag so that it prints debugging information while it runs.
399 2002-04-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
401 * lib/Drawable.cpp: Fixed a bunch of bugs related to
402 DrawableCompositeImage, DrawableFont, and inconsistencies
403 discovered by Gimpel lint.
405 2002-04-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
407 * lib/Image.cpp (draw): Properly delimit individual drawing
408 commands so that MVG output is correct.
410 2002-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
412 * lib/Drawable.cpp (DrawableViewbox): MVG syntax wasn't correct.
414 * lib/Image.cpp (draw): Fix algorithm used to append newlines to
415 MVG commands so that draw() may be invoked multiple times while
416 still producing valid MVG.
418 2002-03-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
420 * lib/Drawable.cpp (DrawableViewbox): New class to allow setting
423 2002-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
425 * lib/Drawable.cpp (print): Changed "mpr:" to "mpri:" in order to
426 *finally* get DrawableCompositeImage to work as intended.
428 * lib/Image.cpp (registerId): Bugfix. Register using
429 sizeof(MagickCore::Image) rather than sizeof(Image).
431 2002-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
433 * lib/Drawable.cpp (DrawableCompositeImage): Had failed to
434 initialize width and height in object to image width and height.
436 2002-02-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
438 * lib/Magick++/STL.h (endianImage): New class to specify the
439 endian option for formats which support this notion (e.g. TIFF).
441 * lib/Image.cpp (endian): New method to specify the endian option
442 for formats which support this notion (e.g. TIFF).
444 2002-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
446 * lib/Drawable.cpp (DrawableFont): Support specifying a font via
447 font-family, font-style, font-weight, and font-stretch. Wildcard
448 matches are supported.
450 2002-02-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
452 * lib/Image.cpp (charcoal): Replace Magick++'s charcoal effect
453 with the output of ImageMagick's CharcoalImage function in order
454 to ensure consistency.
456 * lib/Magick++/CoderInfo.h (MatchType): Scope the MatchType
457 enumeration to the CoderInfo class so these enumeration names can
458 be re-used elsewhere without conflict. This results in a minor
459 API change to the coderInfoList() templated function since
460 enumerations must be specified like "CoderInfo::TrueMatch" rather
461 than just "TrueMatch". Hopefully not a problem since this
462 function and class were not documented outside of the headers
465 2002-02-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
467 * lib/Magick++/STL.h (coderInfoList): Finally wrote some
470 2002-01-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
472 * lib/Options.cpp : Use DestroyImageList() rather than DestroyImage().
474 * lib/Geometry.cpp (operator =): Use GetPageGeometry() rather than
475 PostscriptGeometry() to parse geometry specifications containing a
478 2002-01-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
480 * Remove bogus cast of blob data in readImages().
482 2002-01-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
484 * lib/Image.cpp (throwImageException): Throwing exceptions was
487 * lib/Exception.cpp (throwException): Throwing exceptions was
490 * lib/Image.cpp (replaceImage): Updated to properly handle
492 (modifyImage): Updated to properly handle registration ids.
494 2002-01-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
496 * lib/Drawable.cpp (Magick::DrawableGravity::print):
497 Bugfix. Remove "Gravity" from the end of each gravity
498 specification string. Reported as PR#1084 by stefan@dotify.com.
500 2002-01-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
502 * lib/Image.cpp, Magick++/Include.h: Use DestroyImageList() rather
503 than DestroyImages().
505 2002-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
507 * lib/Magick++/Options.h (antiAlias): Bugfix, set
508 drawInfo->text_antialias to control text antialiasing.
510 2002-01-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
512 * lib/Magick++/Include.h : Imported new composition operators to
513 namespace: NoCompositeOp, DarkenCompositeOp, LightenCompositeOp,
514 HueCompositeOp, SaturateCompositeOp, ValueCompositeOp,
515 ColorizeCompositeOp, LuminizeCompositeOp, ScreenCompositeOp,
518 2001-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
520 * lib/Image.cpp (strokePattern): New method to specify image to
521 use as pattern while drawing stroked-outlines of drawn objects.
522 (fillPattern): New method to specify image to use as pattern while
523 filling drawn objects.
524 (penTexture): Method is officially deprecated. Don't use anymore.
525 (penColor): Method is officially deprecated. Don't use anymore.
527 * lib/Drawable.cpp (DrawablePushPattern): Support pushing
528 (starting) pattern definition.
529 (DrawablePopPattern): Support popping (terminating) pattern
532 2001-12-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
534 * lib/Drawable.cpp (DrawableCompositeImage): Read image
535 immediately if provided by filename, register with peristent
536 registry, and pass as perisistant image type.
537 (DrawableCompositeImage): Support specifying Image in memory.
538 Passed as perisistant image type.
540 2001-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
542 * lib/Color.cpp (operator std::string): Color string buffer was
543 one character too short!
545 2001-12-20 Bob Friesenhahn <bfriesen@sun1107.ssd.usa.alcatel.com>
547 * lib/TypeMetric.cpp (characterWidth): Eliminate method.
548 (characterHeight): Eliminate method.
549 (all remaining methods): Change return type to 'double'. Fix
550 documentation in source files to reflect that units are in pixels
552 (descent): Renamed method from 'decent' to 'descent'.
554 2001-11-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
556 * lib/Image.cpp (Magick): Invoke DestroyMagick() to clean up
557 ImageMagick allocations.
559 * lib/Magick++/Include.h (ImageType): Added some missing enums to
562 2001-11-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
564 * lib/Magick++/CoderInfo.h (CoderInfo): Syntax fix.
565 ImageMagick bug #975.
567 * lib/Image.cpp (draw): Delete ostrstream data when it is no
568 longer needed. ImageMagick bug #988.
570 2001-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
572 * lib/Image.cpp (pixelColor): Implementation didn't handle pixels
573 indexes correctly. Now it does.
575 2001-11-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
577 * lib/Image.cpp (matteFloodfill): Coordinates are long values.
578 (floodFillOpacity): New method to floodfill opacity across pixels
579 matching color (within fuzz-factor) at point. Similar to
580 matteFloodfill except that color is selected from starting point.
582 2001-10-29 Bob Friesenhahn <bfriesen@sun1107.ssd.usa.alcatel.com>
584 * lib/Image.cpp (strokeDashArray): Change to type double.
585 (strokeDashOffset): Change to type double.
587 2001-10-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
589 * lib/Geometry.cpp (Geometry): Add constructor from
590 MagickCore::RectangleInfo.
592 * lib/Image.cpp (boundingBox): Method to return smallest bounding
593 box enclosing non-border pixels.
595 2001-10-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
597 * lib/Image.cpp (getConstIndexes): Add method to obtain read-only
599 (getIndexes): Add method to obtain read-write pixel indexes.
600 (Image::Image): Send warnings from Image constructor to cerr
601 rather than throwing.
603 * lib/Color.cpp (Color(PixelPacket&)): Change argument to const
604 PixelPacket& as it should have been from the beginning.
606 * lib/Image.cpp (pixelColor): Reimplemented to be a const method.
608 2001-10-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
610 * lib/Image.cpp (getConstPixels): New method for returning a
611 read-only pixel view. Still requires documentation.
613 * lib/Magick++/STL.h (coderInfoList): Fixed compilation problem
614 when compiling with Visual C++.
616 2001-10-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
618 * lib/Magick++/Color.h (scaleQuantumToDouble): Add polymorphic
619 version that accepts double to avoid downconversion error.
621 2001-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
623 * lib/Magick++/Color.h (scaleQuantumToDouble): Cast Quantum to
624 double prior to division. Hopefully fix bug.
626 2001-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
628 * lib/Magick++/Color.h (Color(const std::string)): Pass argument by reference.
629 * (operator=): Pass argument by const reference.
631 2001-09-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
633 * lib/Magick++/STL.h (coderInfoList): New function to support
634 obtaining format coder information (as a list of type CoderInfo).
636 * lib/CoderInfo.cpp (CoderInfo): New class to support obtaining
637 format coder information.
639 2001-09-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
641 * lib/Image.cpp (depth): Use GetImageDepth and SetImageDepth
642 rather than just getting/setting depth attributes.
644 * lib/Magick++/STL.h (opacityImage): New unary function object to
645 set, or attenuate, image pixel opacity throughout the image.
647 * lib/Image.cpp (opacity): New method to set, or attenuate, image
648 pixel opacity throughout the image.
650 * lib/Magick++/STL.h (typeImage): New unary function object to set
653 * lib/Image.cpp (type): Added ability to set image type.
655 2001-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
657 * lib/Image.cpp (write(Blob)): Tell blob to use malloc allocator.
659 * lib/Blob.cpp (updateNoCopy): Added parameter so that user can
660 specify the allocation system (malloc or new) the memory came
661 from. Defaults to C++ memory allocator.
663 2001-09-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
665 * lib/Image.cpp (fileSize): Decided to change return type to off_t
666 for increased range and portability.
668 2001-09-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
670 * lib/Image.cpp (fileSize): Changed return value to double.
672 2001-09-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
674 * lib/Image.cpp (colorMap): Allocate a colormap if it does not
677 * lib/Pixels.cpp (indexes): Don't attempt to validate image type.
679 * lib/Image.cpp (colorMap): Optimized more for performance.
681 2001-09-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
683 * lib/Image.cpp (fontTypeMetrics): New method to support
684 retrieving font metrics.
686 * lib/TypeMetric.cpp : New class to support font metrics
689 2001-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
691 * lib/Magick++/Color.h (scaleDoubleToQuantum): Inline static
692 method made from previous ScaleDoubleToQuantum #define.
693 (scaleQuantumToDouble): Inline static method made from previous
694 ScaleQuantumToDouble #define. Helps avoid possibility of clash
697 2001-08-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
699 * lib/Image.cpp (colorMap): Automagically extend colormap if
700 specified index is past end of current colormap. Colormap is
701 limited to a maximum depth of QuantumRange entries.
703 2001-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
705 * lib/Image.cpp (clipMask): New method to add a clip mask to the
706 image. Adds clipping to any image operation wherever the clip
707 mask image is tranparent.
709 2001-08-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
711 * lib/Drawable.cpp (print): Add single quotes around file names
712 and font specifications.
714 2001-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
716 * lib/Image.cpp (read): Ensure that only a single image frame is read.
718 2001-07-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
720 * lib/Magick++/STL.h (flattenImages): New function to flatten a
723 * lib/Montage.cpp (Montage): Montage initial defaults are no
724 longer drawn from ImageInfo. MontageInfo structure is entirely
725 filled out by updateMontageInfo();
727 2001-07-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
729 * lib/Montage.cpp (updateMontageInfo): Bugfix; colors which were
730 intentionally specified as invalid (unset) were being ignored.
731 This produced unattractive label text when doing a montage.
733 2001-07-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
735 * lib/Magick++/STL.h (medianFilterImage): Changed argument from
736 unsigned int to const double.
737 (fillColorImage): New method.
738 (strokeColorImage): New method.
739 (isValidImage): New method.
741 * lib/Magick++/Image.h (edge): Change argument from unsigned int to double.
742 (medianFilter): Changed argument from unsigned int to const double.
744 * lib/Magick++/STL.h (edgeImage): Change argument from unsigned int to double.
746 * demo/demo.cpp (main): Updated to match PerlMagick demo.
748 2001-06-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
750 * lib/Magick++/STL.h (shaveImage): New function to shave edges from image.
752 * lib/Image.cpp (shave): New method to shave edges from image.
754 2001-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
756 * lib/Image.cpp (quantize): Remove conditions on whether
757 quantization should be done. Now quantization is always done.
759 2001-06-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
761 * lib/Magick++/Image.h (blur,charcoal,emboss,sharpen): Changed
762 radius and sigma parameters to match current ImageMagick defaults.
764 2001-02-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
766 * lib/Options.cpp (updateDrawInfo): The updateDrawInfo() method
767 was no longer needed. Due to ImageMagick changes, calling it was
768 causing some options to be lost.
770 2001-01-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
772 * lib/Image.cpp (fillRule): New method to specify the rule to use when filling drawn objects.
774 2001-01-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
776 * lib/Image.cpp (erase): New method to reset image to background
778 (strokeAntiAlias): New method to control antialiasing of stroked
781 2001-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
783 * lib/Image.cpp (channel): Renamed method from 'layer' to match
784 equivalent change in ImageMagick (ChannelImage). Enumeration
785 names *Layer renamed to *Channel.
787 2001-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
789 * lib/Magick++/Montage.h (strokeColor): New method.
790 (fillColor): New method.
792 * lib/Image.cpp (replaceImage): Revised logic so that an inValid
793 image should be returned if a NULL pointer is passed. Before this
794 change the existing image was preserved.
795 (label): Work-around ImageMagick SetImageAttribute bug.
797 2001-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
799 * lib/Image.cpp : Adjusted to ImageMagick animation parameter API change.
801 2000-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
803 * lib/Drawable.cpp (DrawableCompositeImage): Support specifying
806 2000-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
808 * lib/Image.cpp (draw): Bugfix - the primitive string was not
809 properly null terminated. It is a wonder that the code usually
810 worked at all. Thanks to afatela@marktest.pt for reporting it.
812 2000-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
814 * lib/Magick++/STL.h (deconstructImages): New STL function for
815 deconstructing an image list to assist with creating an animation.
816 (mosaicImages): New STL function for inlaying an image list to
817 form a single coherent picture.
819 2000-12-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
821 * lib/Image.cpp (convolve): New method to convolve image using
822 user-supplied convolution matrix.
823 (unsharpmask): New method to replace image with a sharpened
824 version of the original image using the unsharp mask algorithm.
826 2000-12-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
828 * : Adapted to ImageMagick API change which eliminates AnnotateInfo.
830 2000-12-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
832 * lib/Magick++/STL.h (annotateImage): Brought into sync with
833 annotate methods in Image.
835 2000-12-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
837 * lib/Image.cpp (annotate): Usage of Geometry parameter was
838 incorrect. Geometry parameter is used to specify bounding area.
839 This changes the interpretation for two of the annotate methods
840 (which probably weren't usable before).
842 2000-11-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
844 * lib/Magick++/Color.h (alphaQuantum): Bugfix. Due to change in
845 treatment of opacity member, alphaQuantum() was not allowing value
848 2000-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
850 * lib/Drawable.cpp (DrawableFillRule): New class to specify fill
851 rule (see SVG's fill-rule).
852 (DrawableDashOffset): New class to specify initial offset in dash
854 (DrawableDashArray): New class to specify a stroke dash pattern.
855 (DrawableStrokeLineCap): New class to specify the shape to be used
856 at the end of open subpaths when they are stroked.
857 (DrawableStrokeLineJoin): New class to specify the shape to be
858 used at the corners of paths (or other vector shapes) when they
860 (DrawableMiterLimit): New class to specify extension limit for
863 2000-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
865 * lib/Image.cpp (annotate): Reimplement text rotation using affine
866 member of AnnotateInfo.
867 (strokeDashOffset): New method for specifying the dash offset to use for
868 drawing vector objects. Similar to SVG stroke-dashoffset.
869 (strokeDashArray): New method for specifying the dash pattern to use
870 for drawing vector objects. Similar to SVG stroke-dasharray
871 (strokeLineCap): New method to specify the shape to be used at the end
872 of open subpaths when they are stroked. Similar to SVG
874 (strokLineJoin): New method to specify the shape to be used at the
875 corners of paths (or other vector shapes) when they are
876 stroked. Similar to SVG stroke-linejoin.
877 (strokeMiterLimit): New method to specify the miter limit when joining
878 lines using MiterJoin. Similar to SVG stroke-miterlimit.
879 (strokeWidth): Renamed lineWidth method to strokeWidth.
881 2000-10-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
883 * lib/Magick++/Drawable.h (DrawableCompositeImage): Add a
884 short-form constructor to support specifying image location and
885 name, but without specifying rendered size (use existing image
888 2000-10-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
890 * lib/Magick++/Drawable.h (DrawablePopGraphicContext): New class
891 to pop graphic context.
892 (DrawablePushGraphicContext): New class to push graphic context.
894 * lib/Drawable.cpp (DrawableStrokeAntialias): New class to set
896 (DrawableTextAntialias): New class to set text antialiasing.
898 2000-10-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
900 * lib/Image.cpp (transformOrigin): New method to set origin of
901 coordinate system for use when annotating with text or drawing
902 (transformRotation): New method to set rotation for use when
903 annotating with text or drawing
904 (transformScale): New method to set scale for use when annotating
905 with text or drawing.
906 (transformSkewX): New method to set skew for use in X axis when
907 annotating with text or drawing.
908 (transformSkewY): New method to set skew for use in Y axis when
909 annotating with text or drawing.
910 (transformReset): New method to reset transformation to default.
912 * lib/Drawable.cpp (DrawablePath): New class for drawing SVG-style
914 (PathArcArgs): New class. Argument for PathArcArgs & PathArcAbs.
915 (PathArcAbs): New class. Draw arc using absolute coordinates.
916 (PathArcRel): New class. Draw arc using relative coordinates.
917 (PathClosePath): New class. Close drawing path.
918 (PathCurvetoArgs): New class. Argument class for PathCurvetoAbs &
920 (PathCurvetoAbs): New class. Cubic bezier, absolute coordinates
921 (PathCurvetoRel): New class. Cubic bezier, relative coordinates
922 (PathSmoothCurvetoAbs): New class. Cubic bezier, absolute
924 (PathSmoothCurvetoRel): New class. Cubic bezier, relative
926 (PathQuadraticCurvetoArgs): New class. Argument class for
927 PathQuadraticCurvetoAbs and PathQuadraticCurvetoRel.
928 (PathQuadraticCurvetoAbs): New class. Quadratic bezier, absolute
930 (PathQuadraticCurvetoRel): New class. Quadratic bezier, relative
932 (PathSmoothQuadraticCurvetoAbs): New class. Quadratic bezier,
934 (PathSmoothQuadraticCurvetoRel): New class. Quadratic bezier,
936 (PathLinetoAbs): New class. Line to, absolute coordinates
937 (PathLinetoRel): New class. Line to, relative coordinates
938 (PathLinetoHorizontalAbs): New class. Horizontal lineto, absolute
940 (PathLinetoHorizontalRel): New class. Horizontal lineto, relative
942 (PathLinetoVerticalAbs): New class. Veritical lineto, absolute
944 (PathLinetoVerticalRel): New class. Vertical lineto, relative
946 (PathMovetoAbs): New class. Moveto, absolute coordinates
947 (PathMovetoRel): New class. Moveto, relative coordinates
949 2000-10-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
951 * lib/Drawable.cpp (DrawableSkewX): New object to apply skew in X direction.
952 (DrawableSkewY): New object to apply skew in Y direction.
954 2000-10-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
956 * lib/Image.cpp (edge): Change argument from 'unsigned int' to
957 'double' in order to match ImageMagick API.
959 2000-10-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
961 * lib/Drawable.cpp (DrawableCompositeImage): Renamed from
963 (DrawableTextDecoration): Renamed form DrawableDecoration.
964 (all-classes): Complete re-write to write the drawing command to a
965 stream when draw() is invoked rather than at object construction
966 time. This may be somewhat slower for individual draw operations
967 but should be at least as fast for lists of drawing commands,
968 and is more flexible going into the future. Drawable classes now
969 inherit from DrawableBase but are passed into STL lists and Image
970 draw() methods via the surrogate class Drawable. The upshot of
971 all this is that the existing published API has not been altered
972 but things work much differently under the covers.
974 2000-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
976 * lib/Drawable.cpp (DrawableStrokeColor): Renamed from DrawableStroke
977 (DrawableFillColor): Renamed from DrawableFill
978 (DrawableRotation): New class to influence object rotation.
979 (DrawableScaling): New class to influence object scaling.
980 (DrawableTranslation): New class to influence object translation.
982 2000-10-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
984 * lib/Drawable.cpp (DrawableAffine): New class to influence object
985 scaling, rotation, and translation (as defined by SVG XML).
986 (DrawableAngle): New class to influence drawing angle.
987 (DrawableDecoration): New class to influence text decoration such
989 (DrawableFill): New class to set object filling color.
990 (DrawableFillOpacity): New class to set opacity to use when
992 (DrawableFont::): New class to set font.
993 (DrawableGravity): New class to set text placement gravity.
994 (DrawablePointSize): New class to set font point size.
995 (DrawableStroke): New class to set drawing stroke color.
996 (DrawableStrokeOpacity): New class to set drawing stroke opacity.
997 (DrawableStrokeWidth): New class to set drawing stroke width.
999 2000-10-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1001 * lib/Drawable.cpp (DrawableImage): Added width and height
1002 parameters to specify size to scale rendered image to. This is
1003 actually a bug-fix since it seems that the correct drawing command
1004 was no longer being generated.
1006 2000-09-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1008 * lib/Image.cpp (read): New overloaded method to read an image
1009 based on an array of raw pixels, of specified type and mapping, in
1011 (write): New overloaded method to write image to an array of
1012 pixels, of specified type and mapping.
1013 (Image): New overloaded constructor to construct an image based on
1014 an array of raw pixels, of specified type and mapping, in memory.
1016 2000-09-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1018 * lib/Image.cpp (colorize): API change to match change in
1019 ImageMagick. Now accepts percentage of red, green, and blue to
1020 colorize with using specified pen color.
1022 2000-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1024 * lib/Magick++/Drawable.h: Reverted Coordinate implemenation back
1025 from and STL pair based implementation to a simple class. Maybe
1026 this will improve portability. It is more understandable anyway.
1028 2000-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1030 * lib/Options.cpp : Bugfix. Some DrawInfo attributes were not
1031 being updated. This lead to options like fontPointsize not
1034 2000-08-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1036 * lib/Magick++/STL.h (blurImage, charcoalImage, embossImage,
1037 sharpenImage): Expand order_ argument to radius_ & sigma_
1038 arguments for more control (matches ImageMagick API change).
1040 * lib/Image.cpp (blur, charcoal, emboss, sharpen): Expand order_
1041 argument to radius_ & sigma_ arguments for more control (matches
1042 ImageMagick API change).
1044 2000-08-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1046 * lib/Image.cpp (read): Check returned Image for embedded
1047 exception, as well as the existing parameter check. This fixes
1048 the bug that warnings are not reported.
1050 2000-07-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1052 * test/*.cpp demo/*.cpp: Added call to MagickIncarnate() to set
1053 ImageMagick install location for Windows. Hopefully this hack can
1056 2000-07-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1058 * lib/Image.cpp (colorFuzz): Changed type to 'double' from
1059 'unsigned int' to match change in ImageMagick.
1061 * lib/Color.cpp (Color*): Added copy constructor from base class.
1062 (operator =): Added assignment operator from base class.
1064 2000-06-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1066 * lib/Magick++/Include.h : Changed enumeration FilterType to
1067 FilterTypes, and QuantumTypes to QuantumType in order to match
1068 last-minute API change in ImageMagick.
1070 2000-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1072 * lib/Magick++/Pixels.cpp (indexes): Bugfix, use GetCacheViewIndexes()
1073 rather than GetIndexes().
1075 2000-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1077 * lib/Magick++/Montage.h (gravity): Type of gravity_ argument, and
1078 return value changed from 'unsigned int' to GravityType.
1080 2000-04-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1082 * lib/Drawable.cpp (DrawableArc, DrawableBezier, DrawablePolyline,
1083 RoundRectangle): Added support for new drawing objects.
1085 2000-04-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1087 * lib/Drawable.cpp: Removed all public methods which accept
1088 Coordinate arguments except those that accept lists of
1089 Coordinates. Converted remaining drawable object methods into
1090 individual classes which inherit from Drawable (e.g. "circle"
1091 becomes "DrawableCircle"). The constructor for each class is
1092 compatible with the original method. This results in annoying
1093 changes to user code but provides more implementation flexibility.
1095 2000-04-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1098 (fillEllipse,fillRectangle,fillCircle,fillPolygon): Removed
1099 methods. Object filling is now based on whether fillColor or
1100 penTexture are valid or not. This reflects ImageMagick internal
1103 * lib/Image.cpp (fillColor): New method to specify fill color when
1105 (strokeColor): New method to specify outline color when drawing
1107 (penColor): Setting penColor now sets fillColor and
1108 strokeColor. Getting penColor retrieves the value of
1109 strokeColor. This supports backwards compatability.
1111 2000-03-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1113 * lib/Image.cpp (lineWidth): Type changed from unsigned int to double.
1115 2000-03-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1117 * lib/Magick++/STL.h (Magick):
1119 2000-03-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1121 * lib/Magick++/STL.h (blurImage,charcoalImage,edgeImage,embossImage,
1122 reduceNoiseImage,sharpenImage): Modified to support order of the
1123 pixel neighborhood. Backward compatable function objects constructors
1124 are provided for embossImage, and reduceNoiseImage.
1126 * lib/Image.cpp (blur,charcoal,edge,emboss,reduceNoise,sharpen):
1127 Now accept unsigned int argument which represents the order of the
1128 pixel neighborhood (e.g. 3). This is not a backwards compatable
1129 change, however, backward compatable methods are provided for emboss,
1132 2000-03-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1134 * lib/Magick++/Pixels.h (Pixels): Moved Image pixel methods to
1137 2000-02-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1139 * lib/Image.cpp (annotate): Re-wrote to improve performance.
1140 (draw): Re-wrote to improve performance.
1142 2000-02-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1144 * lib/Drawable.cpp (text): Bugfix: support spaces in annotation text.
1146 2000-02-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1148 * lib/Magick++/STL.h (gaussianBlurImage): New function object to
1149 Gaussian blur image.
1151 * lib/Image.cpp (gaussianBlur): New method to Gaussian blur image.
1153 2000-02-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1155 * lib/Image.cpp : Call-back based LastError class is eliminated in
1156 favor of ImageMagick 5.2's re-entrant ExceptionInfo reporting.
1157 This should make Magick++ thread safe under Win32.
1159 2000-02-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1161 * lib/Image.cpp (floodFillTexture): Fixed bug due to pixel pointer
1162 becoming invalid in ImageMagick function.
1164 2000-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1166 * lib/Image.cpp : Added locking to reference counting to ensure
1167 thread (pthread) safety.
1169 * lib/Blob.cpp : Added locking to reference counting to ensure
1170 thread (pthread) safety.
1172 * lib/LastError.cpp: Added support for thread specific data
1173 (pthreads) so that error reporting is thread safe.
1175 * lib/Magick++/Thread.h: Added thread wrapper class to provide
1176 thread-safe locking (pthreads) to Magick++.
1178 2000-01-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1180 * lib/Image.cpp: Added methods getPixels, setPixels, syncPixels,
1181 readPixels, and writePixels, in order to provide low-level access
1182 to Image pixels. This approach (direct wrapper around ImageMagick
1183 functions) does not mean that the planned object-oriented wrapper
1184 has been forgotten, only that this wrapper is not ready yet, and
1185 users need to manipulate pixels *now*.
1187 2000-01-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1189 * lib/LastError.cpp: Complete re-implementation of LastError so
1190 that it hides its implementation. Also assures that all memory is
1191 explicitly deallocated at program exit to avoid the appearance of
1194 2000-01-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1196 * lib/Image.cpp (size): Bug-fix. Set image columns and rows as
1197 well as image options columns and rows.
1199 * lib/Image.cpp :Depth parameters are now all unsigned in for consistency.
1201 * lib/Image.cpp (write): Parameters for writing Blobs re-arranged
1202 again to hopefully be more sensible.
1204 * lib/Magick++/STL.h: Bug-fix. Re-number scenes from zero when linking
1205 image range in container into a list. This provides expected results.
1207 1999-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1210 (write): Additional overloaded methods for BLOBs.
1211 (read): Additional overloaded methods for BLOBs. Re-ordered
1212 parameters for one existing method.
1213 (Image): Additional overloaded methods for BLOBs. Re-ordered
1214 parameters for one existing method.
1216 1999-12-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1218 * lib/Image.cpp (floodFillTexture): Changed coordinates to unsigned.
1220 1999-12-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1222 * lib/Image.cpp (medianFilter): New method.
1224 1999-12-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1226 * lib/Image.cpp (density): Bug fix. Was not setting image x & y density.
1228 1999-11-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1230 * lib/Image.cpp (page): psPageSize() is renamed to page() and now
1231 properly returns the attribute from the image.
1233 1999-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1235 * lib/Image.cpp: Rename transformColorSpace() to colorSpace().
1236 Added colorSpace() accessor method.
1238 1999-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1240 * lib/Color.cpp: Re-implemented PixelPacket pointer so that it is
1241 never NULL and added a 'valid' field for tracking object validity.
1243 1999-11-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1245 * lib/Image.cpp (quantizeError): Eliminated method.
1247 1999-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1249 * lib/Image.cpp (annotate & draw): Changed implementation to
1250 reflect change to the way AnnotateInfo is managed by ImageMagick.
1252 1999-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1254 * lib/Image.cpp (cacheThreshold): New method to set the pixel
1257 * lib/Magick++/Include.h (Magick): Added new enumerations from
1260 1999-10-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1262 * lib/Magick++/Options.h (fontPointsize): Argument is now a double
1263 to match change in ImageMagick.
1265 * lib/Image.cpp (fontPointsize): Argument is now a double to match
1266 change in ImageMagick.
1268 1999-10-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1270 * lib/Blob.cpp (BlobRef): Bugfix -- start blob reference count at
1271 one rather than zero.
1273 1999-10-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1275 * lib/Image.cpp (Image): Fixed Image constructors from Blob. The
1276 image reference was not being instantiated as it should have been,
1279 1999-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1281 * lib/Blob.cpp: All blob length parameters are now of type size_t.
1283 * lib/Image.cpp (write): Length estimate is now of type size_t.
1285 1999-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1287 * lib/Image.cpp (rotate): No longer accepts a crop option since
1288 ImageMagick no longer supports this.
1289 (shear): No longer accepts a crop option since ImageMagick no
1290 longer supports this.
1292 1999-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1295 (rotate): No longer accepts sharpen argument.
1296 User must sharpen seperately if desired. This change is due to a
1297 similar change in ImageMagick 5.0.
1298 (condense): Removed method.
1299 (uncondense): Removed method.
1300 (condensed): Removed method.
1301 (pixelColor): Adapted to 5.0.
1303 * lib/Magick++/Color.h : Rewrote to efficiently use ImageMagick
1304 5.0's PixelPacket color representation.
1306 * lib/Color.cpp : Rewrote to efficiently use ImageMagick 5.0's
1307 PixelPacket color representation.
1309 1999-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1311 * lib/Image.cpp (condensed): Bug fix. The condensed() method was returning the opposite bool value than it should. Oops!
1313 1999-09-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1315 * lib/Magick++/Include.h (MagickCore): Eliminated requirement for
1316 including <magick/define.h>.
1318 1999-08-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1320 * lib/Image.cpp: Added accessor methods for other key ImageMagick
1323 * lib/Options.cpp (penTexture): Fixed bug with removing texture
1324 caused by change in Image constructor.
1326 * lib/Image.cpp: Changed strategy such that an Image containing a
1327 null MagickCore::Image pointer is never constructed except for
1328 under error conditions. Removed existing checks for null image
1329 pointer on attribute methods.
1331 Use image() and constImage() accessor methods as part of Image
1332 implementation in order to clean-up code and ensure
1335 1999-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1337 * lib/Magick++/STL.h (Magick): Added STL function readImages().
1339 (Magick): Added STL function writeImages(). Not tested yet.
1341 * lib/Image.cpp: Removed support for 'text' attribute as this is
1342 no longer present in ImageMagick as of 4.2.8.
1344 1999-07-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1346 * lib/Image.cpp (condense): Skip condensing image if already
1348 (uncondense): Skip uncondensing image if not condensed.
1349 (condensed): New method to test if image is condensed.
1350 (classType): New method which supports conversion of the image
1351 storage class. May result in loss of color information
1352 (quantization is used) if a DirectClass image is converted to
1355 1999-07-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1357 * lib/Magick++/Color.h (Magick::Color): Color parameters are now
1358 stored in a MagickCore::RunlengthPacket structure which is
1359 referenced via a pointer. This structure is either allocated by a
1360 Magick::Color constructor or passed as an argument to a
1361 Magick::Color constructor so that it may refer to a
1362 MagickCore::Image pixel. The owner of the structure is managed so
1363 that the structure is only deleted if it was allocated by
1366 1999-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1368 * overall : Removed 'Magick' prefix from all source file
1369 names. Moved class headers to Magick++ subdirectory. This should
1370 not break any code using the documented interface (via
1373 1999-07-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1375 * lib/MagickImage.cpp (composite): Support composition placement
1376 by gravity like PerlMagick does.
1378 1999-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1380 * lib/MagickImage.cpp (Image): Added constructors to construct an
1383 1999-07-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1385 * tests/manipulate.cpp (main): Wrote a basic sanity test for
1386 reading and writing BLOBS.
1388 1999-06-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1390 * lib/MagickImage.cpp (read): Added support for reading an encoded
1391 image stored in a BLOB. Uses new ImageMagick APIs introduced on
1393 (write): Added support for writing an encoded image to a BLOB.
1395 1999-06-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1397 * lib/MagickInclude.h : Use new <magick/api.h> interface to
1398 ImageMagick to avoid namespace-induced problems.
1400 * configure.in : CPPFLAGS and LDFLAGS specified via the
1401 environment take precidence over flags from Magick-config.
1403 1999-05-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1405 * lib/MagickSTL.h (mapImages): New algorithm to map the sequence
1406 of images to the color map of a provided image.
1407 (quantizeImages): New algorithm to quantize a sequence of images
1408 to a common color map.
1410 1999-05-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1412 * lib/MagickBlob.cpp (updateNoCopy): New method to allow derived
1413 classes to insert data into the base class without making a copy
1414 of the data. This represents a transfer of ownership of the data
1415 from the derived class to the base class.
1417 1999-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1419 * lib/MagickColor.cpp (operator =): Adapted to new ImageMagick
1420 4.2.6 as of 5/23/99 which removes X11 compatability functions.
1422 * lib/MagickGeometry.cpp (operator =): Adapted to new ImageMagick
1423 4.2.6 as of 5/23/99 which removes X11 compatability functions.
1425 1999-05-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1427 * lib/MagickBlob.cpp (Blob): Support default constructor for Blob.
1429 1999-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1431 * lib/MagickSTL.h (transformColorSpaceImage): New unary function object
1432 to invoke transformColorSpace on STL container object.
1434 * lib/MagickImage.cpp (transformColorSpace): New method to
1435 transform the image data to a new colorspace.
1437 1999-05-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1439 * lib/MagickImage.cpp (ping): Re-implemented to match (requested)
1440 API change in ImageMagick 4.2.5. Method signature has changed to
1442 (annotate): Added two new overloaded methods for text annotation
1443 in order to support the new rotated text capability in ImageMagick
1444 4.2.5. To accomplish this, the default for gravity had to be
1445 removed from several methods. This may impact existing code.
1446 Still not sure if this is the best set of method signatures.
1448 1999-05-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1450 * lib/MagickImage.cpp (ping): New method to obtain image size in
1451 bytes and geometry without the overhead of reading the complete
1453 (uncondense): New method to uncompress run-length encoded pixels
1454 into a simple array to make them easy to operate on.
1456 1999-05-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1458 * lib/MagickImage.cpp (comment): Passing an empty string as the
1459 comment results in no comment at all rather than a comment with no
1462 1999-05-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1464 * lib/MagickImage.cpp (iccColorProfile): Implemented method to set
1465 ICC color profile from opaque object in memory (must be formatted
1466 outside of Magick++).
1467 (iptcProfile): Implemented method to set IPTC profile from opaque
1468 object in memory (must be formatted outside of Magick++).
1470 * lib/MagickBlob.cpp: New class to support managing user-supplied
1471 opaque Binary Large OBjects (BLOBS) in the API. Reference counted
1472 to improve semantics and to possibly reduce memory consumption.
1474 1999-05-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1476 * lib/Makefile.am (libMagick): Updated to use libtool 1.3 so that
1477 shared library can be built.
1479 1999-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1481 * lib/MagickImage.cpp (montageGeometry): Return Magick::Geometry
1482 rather than std::string.
1484 1999-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1486 * lib/MagickColor.cpp (alpha): Added support for setting alpha via
1487 scaled-double to the Color class. The new method name is 'alpha'.
1489 1999-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1491 * lib/MagickColor.cpp: Added support for setting an alpha value
1492 (unscaled Quantum only) for use on DirectColor images that have
1493 matte enabled. This requires ImageMagick 4.2.2 dated April 13,
1494 1999 or later to compile since Cristy added a special flag to
1495 allow testing to see if the user has specified an opacity value:
1496 "I added XColorFlags to magick/classify.h. If DoMatte is set in
1497 color->flags then the opacity value is valid in color->pixel."
1499 1999-04-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1501 * demo/flip.cpp (main): New file. Demonstrates use of flipImage
1502 function object as well as morphImages algorithm.
1504 1999-04-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1506 * tests/color.cpp : New file to support testing the Magick::Color
1509 * lib/MagickOptions.cpp: The ImageInfo filter member is now
1510 ignored by ImageMagick (as of ImageMagick 4.2.2 April 10, 1998) so
1511 support for setting it is removed. The Image filter member is
1512 still updated. According to Cristy, this ImageMagick version
1513 removes automatic sharpening of resized images. The blur member
1514 is added to the Image structure. A blur value < 1 causes the image
1515 to be sharpened when resizing while a value > 1 leaves the image
1516 blurry. Magick++ does not yet support the blur member.