12017-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). 4 52011-02-12 6.6.7-7 Cristy <quetzlzacatenango@image...> 6 * Add support for the strip() and stripImage() STL methods. 7 82011-02-01 6.6.7-2 Cristy <quetzlzacatenango@image...> 9 * Remove extra '+' in the geometry operator. 10 112010-06-16 6.6.2-2 Cristy <quetzlzacatenango@image...> 12 * Patch for compile problem in mapImages of the STL header. 13 142010-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. 17 182009-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). 22 232009-09-28 6.5.6-6 Cristy <quetzlzacatenango@image...> 24 * Add splice() method to splice the background color into the image. 25 262009-04-01 6.5.1-1 Cristy <quetzlzacatenango@image...> 27 * Add virtualPixelMethod() method for image and options, required for 28 distort(). 29 302008-09-09 6.4.3-7 Cristy <quetzlzacatenango@image...> 31 * Use ImagesToBlob() rather than ImageToBlob() for writeImages(). 32 332007-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...>). 36 372007-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). 40 412006-02-05 6.3.2-3 Cristy <quetzlzacatenango@image...> 42 * Clear exception in throwException() method. 43 442006-01-16 6.3.2-0 Cristy <quetzlzacatenango@image...> 45 * Add extent() method to extend the image as defined by the geometry. 46 472003-12-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 48 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 54 attributes. 55 562003-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 57 58 * lib/Color.cpp: Ensure that all non-default constructors set 59 opacity to opaque. 60 612003-09-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 62 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 66 the insert arguments. 67 682003-09-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 69 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 78 that color. 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. 82 832003-08-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 84 85 * lib/Image.cpp (channelDepth): New method to set or get the 86 modulus depth for a specified channel. 87 882003-08-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 89 90 * lib/Magick++/Include.h (Magick): Added support for 91 CopyCyanCompositeOp, CopyMagentaCompositeOp, 92 CopyYellowCompositeOp, and CopyBlackCompositeOp, composition 93 operators. 94 952003-08-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 96 97 * lib/Image.cpp (depth): Method now only updates the 98 Image/ImageInfo depth member and retrieves the value of the Image 99 depth member. 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. 105 1062003-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 107 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. 111 1122003-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 113 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. 118 1192003-06-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 120 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. 132 1332003-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 134 135 * lib/CoderInfo.cpp (CoderInfo): Applied compilation fix from 136 Mike Chiarappa to compile using Borland C++. 137 1382003-06-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 139 140 * lib/Geometry.cpp (string): Throw an exception if a string is 141 requested from an invalid geometry object. 142 1432003-06-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 144 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. 148 1492003-06-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 150 151 * lib/Magick++/Exception.h (ErrorModule): Added class to handle 152 module errors. 153 * lib/Magick++/Exception.h (WarningModule) Added class to handle 154 module warnings. 155 1562003-05-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 157 158 * lib/Magick++/STL.h (coderInfoList): Use GetMagickInfoArray to 159 access coder list. 160 1612003-05-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 162 163 * lib/Magick++/STL.h (affineTransformImage): Add function object 164 contributed by Vladimir Lukianov to apply an affine transform to 165 the image. 166 * lib/Image.cpp (affineTransform): Added method contributed by 167 Vladimir Lukianov to apply an affine transform to the image. 168 1692003-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 170 171 * lib/Magick++/Include.h: Decided to back out change 172 which used the _VISUALC_ define to trigger inclusion of 173 <sys/types.h>. 174 1752003-05-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 176 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 180 in magick-config.h. 181 1822003-05-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 183 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. 190 1912003-04-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 192 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 202 API change. 203 2042003-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 205 206 * tests/readWriteBlob.cpp (main): Added check for 207 stream read failure when reading blob data. 208 (class myBlob): Use get rather than read. 209 2102003-03-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 211 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. 215 2162003-03-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 217 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. 224 2252003-03-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 226 227 * lib/Makefile.am : Added rules to install ImageMagick++.pc. 228 * lib/ImageMagick++.pc.in : Added pkgconfig file for 229 -lImageMagick++. 230 2312003-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 232 233 * lib/Image.cpp (colorSpace): Pass image->colorspace to 234 TransformRGBColorspace. 235 2362003-01-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 237 238 * lib/Magick++/STL.h (writeImages): Should have been invoking 239 WriteImages rather than WriteImage! 240 2412003-01-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 242 243 * lib/Magick++/Include.h: Add HSL and HWB colorspace 244 transformation support. 245 2462003-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 247 248 * lib/Image.cpp (colorSpace): Support colorspace transforms 249 other than to and from RGB by translating to RGB as an intermediate 250 step. 251 2522002-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 253 254 * lib/Drawable.cpp: Added DrawablePushClipPath, 255 DrawablePopClipPath, and DrawableClipPath. Implementation 256 contributed by Vladimir <lvm@integrum.ru>. 257 2582002-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 259 260 * lib/Image.cpp (colorMapSize): New method to set, or return 261 the colormap size. 262 2632002-11-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 264 265 * lib/Image.cpp (adaptiveThreshold): New method. 266 2672002-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 268 269 * lib/Magick++/STL.h (coderInfoList): Intentionally ignore missing 270 delegate exceptions. 271 2722002-09-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 273 274 * lib/Options.cpp (textEncoding): Had forgotten to implement 275 textEncoding! 276 2772002-09-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 278 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. 282 2832002-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 284 285 * lib/Image.cpp (compare): New method to compare current image 286 with a reference image. 287 2882002-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 289 290 * lib/Image.cpp (textEncoding): New method to allow setting the 291 default text encoding (e.g. "UTF-8"). 292 293 * lib/Drawable.cpp (DrawableText): Added an alternate constructor 294 to allow specifying the text encoding (e.g. "UTF-8"). 295 2962002-08-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 297 298 * Overall: Now compiles as a DLL using Visual C++. 299 3002002-07-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 301 302 * lib/Image.cpp (profile): Added method to store, delete, or 303 retrieve named application profiles. 304 3052002-07-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 306 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. 312 3132002-05-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 314 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. 318 3192002-05-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 320 321 * Magick++ library no longer depends on iostreams at all. 322 3232002-04-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 324 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. 328 3292002-04-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 330 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 333 Drawable.cpp. 334 3352002-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 336 337 * lib/STL.cpp: Moved function object implementations from STL.h to 338 STL.cpp. 339 3402002-04-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 341 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 345 'int'. 346 (setPixels): Changed offset parameter type from 'unsigned int' to 347 'int'. 348 (cacheThreshold): Changed argument type from 'const long' to 349 'const int'. 350 (matteFloodfill): Changed offset parameter type from 'const long' to 351 'const int'. 352 353 * lib/Pixels.cpp (getConst): New method to return read-only pixels. 354 (get): Offset parameter types changed from 'unsigned int' to 'int'. 355 3562002-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 357 358 * lib/Magick++/Drawable.h (DrawableDashOffset): Change dashoffset 359 type to 'double' rather than 'unsigned int' in order to match 360 ImageMagick. 361 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. 366 3672002-04-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 368 369 * lib/Drawable.cpp (DrawableCompositeImage): Always output 370 composite images as inlined Base64. 371 3722002-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 373 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. 377 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. 381 3822002-04-09 Dom Lachowicz <cinamod@hotmail.com> 383 384 * lib/Image.cpp (Image::ping): Added PingBlob function 385 3862002-04-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 387 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). 392 393 * lib/Image.cpp (oilPaint): Changed argument type from unsigned 394 int to double. 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 400 'unsigned int'. 401 (getPixels): Changed argument type of x_ & _y from 'int' to 402 'unsigned int'. 403 4042002-04-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 405 406 * lib/Image.cpp (debug): Added method to set ImageMagick debug 407 flag so that it prints debugging information while it runs. 408 4092002-04-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 410 411 * lib/Drawable.cpp: Fixed a bunch of bugs related to 412 DrawableCompositeImage, DrawableFont, and inconsistencies 413 discovered by Gimpel lint. 414 4152002-04-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 416 417 * lib/Image.cpp (draw): Properly delimit individual drawing 418 commands so that MVG output is correct. 419 4202002-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 421 422 * lib/Drawable.cpp (DrawableViewbox): MVG syntax wasn't correct. 423 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. 427 4282002-03-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 429 430 * lib/Drawable.cpp (DrawableViewbox): New class to allow setting 431 the MVG output size. 432 4332002-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 434 435 * lib/Drawable.cpp (print): Changed "mpr:" to "mpri:" in order to 436 *finally* get DrawableCompositeImage to work as intended. 437 438 * lib/Image.cpp (registerId): Bugfix. Register using 439 sizeof(MagickCore::Image) rather than sizeof(Image). 440 4412002-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 442 443 * lib/Drawable.cpp (DrawableCompositeImage): Had failed to 444 initialize width and height in object to image width and height. 445 4462002-02-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 447 448 * lib/Magick++/STL.h (endianImage): New class to specify the 449 endian option for formats which support this notion (e.g. TIFF). 450 451 * lib/Image.cpp (endian): New method to specify the endian option 452 for formats which support this notion (e.g. TIFF). 453 4542002-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 455 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. 459 4602002-02-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 461 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. 465 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 473 until this release. 474 4752002-02-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 476 477 * lib/Magick++/STL.h (coderInfoList): Finally wrote some 478 documentation. 479 4802002-01-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 481 482 * lib/Options.cpp : Use DestroyImageList() rather than DestroyImage(). 483 484 * lib/Geometry.cpp (operator =): Use GetPageGeometry() rather than 485 PostscriptGeometry() to parse geometry specifications containing a 486 page size. 487 4882002-01-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 489 490 * Remove bogus cast of blob data in readImages(). 491 4922002-01-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 493 494 * lib/Image.cpp (throwImageException): Throwing exceptions was 495 leaking memory. 496 497 * lib/Exception.cpp (throwException): Throwing exceptions was 498 leaking memory. 499 500 * lib/Image.cpp (replaceImage): Updated to properly handle 501 registration ids. 502 (modifyImage): Updated to properly handle registration ids. 503 5042002-01-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 505 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. 509 5102002-01-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 511 512 * lib/Image.cpp, Magick++/Include.h: Use DestroyImageList() rather 513 than DestroyImages(). 514 5152002-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 516 517 * lib/Magick++/Options.h (antiAlias): Bugfix, set 518 drawInfo->text_antialias to control text antialiasing. 519 5202002-01-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 521 522 * lib/Magick++/Include.h : Imported new composition operators to 523 namespace: NoCompositeOp, DarkenCompositeOp, LightenCompositeOp, 524 HueCompositeOp, SaturateCompositeOp, ValueCompositeOp, 525 ColorizeCompositeOp, LuminizeCompositeOp, ScreenCompositeOp, 526 OverlayCompositeOp. 527 5282001-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 529 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. 536 537 * lib/Drawable.cpp (DrawablePushPattern): Support pushing 538 (starting) pattern definition. 539 (DrawablePopPattern): Support popping (terminating) pattern 540 definition. 541 5422001-12-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 543 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. 549 5502001-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 551 552 * lib/Color.cpp (operator std::string): Color string buffer was 553 one character too short! 554 5552001-12-20 Bob Friesenhahn <bfriesen@sun1107.ssd.usa.alcatel.com> 556 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 561 rather than points. 562 (descent): Renamed method from 'decent' to 'descent'. 563 5642001-11-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 565 566 * lib/Image.cpp (Magick): Invoke DestroyMagick() to clean up 567 ImageMagick allocations. 568 569 * lib/Magick++/Include.h (ImageType): Added some missing enums to 570 Magick namespace. 571 5722001-11-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 573 574 * lib/Magick++/CoderInfo.h (CoderInfo): Syntax fix. 575 ImageMagick bug #975. 576 577 * lib/Image.cpp (draw): Delete ostrstream data when it is no 578 longer needed. ImageMagick bug #988. 579 5802001-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 581 582 * lib/Image.cpp (pixelColor): Implementation didn't handle pixels 583 indexes correctly. Now it does. 584 5852001-11-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 586 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. 591 5922001-10-29 Bob Friesenhahn <bfriesen@sun1107.ssd.usa.alcatel.com> 593 594 * lib/Image.cpp (strokeDashArray): Change to type double. 595 (strokeDashOffset): Change to type double. 596 5972001-10-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 598 599 * lib/Geometry.cpp (Geometry): Add constructor from 600 MagickCore::RectangleInfo. 601 602 * lib/Image.cpp (boundingBox): Method to return smallest bounding 603 box enclosing non-border pixels. 604 6052001-10-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 606 607 * lib/Image.cpp (getConstIndexes): Add method to obtain read-only 608 pixel indexes. 609 (getIndexes): Add method to obtain read-write pixel indexes. 610 (Image::Image): Send warnings from Image constructor to cerr 611 rather than throwing. 612 613 * lib/Color.cpp (Color(PixelPacket&)): Change argument to const 614 PixelPacket& as it should have been from the beginning. 615 616 * lib/Image.cpp (pixelColor): Reimplemented to be a const method. 617 6182001-10-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 619 620 * lib/Image.cpp (getConstPixels): New method for returning a 621 read-only pixel view. Still requires documentation. 622 623 * lib/Magick++/STL.h (coderInfoList): Fixed compilation problem 624 when compiling with Visual C++. 625 6262001-10-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 627 628 * lib/Magick++/Color.h (scaleQuantumToDouble): Add polymorphic 629 version that accepts double to avoid downconversion error. 630 6312001-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 632 633 * lib/Magick++/Color.h (scaleQuantumToDouble): Cast Quantum to 634 double prior to division. Hopefully fix bug. 635 6362001-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 637 638 * lib/Magick++/Color.h (Color(const std::string)): Pass argument by reference. 639 * (operator=): Pass argument by const reference. 640 6412001-09-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 642 643 * lib/Magick++/STL.h (coderInfoList): New function to support 644 obtaining format coder information (as a list of type CoderInfo). 645 646 * lib/CoderInfo.cpp (CoderInfo): New class to support obtaining 647 format coder information. 648 6492001-09-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 650 651 * lib/Image.cpp (depth): Use GetImageDepth and SetImageDepth 652 rather than just getting/setting depth attributes. 653 654 * lib/Magick++/STL.h (opacityImage): New unary function object to 655 set, or attenuate, image pixel opacity throughout the image. 656 657 * lib/Image.cpp (opacity): New method to set, or attenuate, image 658 pixel opacity throughout the image. 659 660 * lib/Magick++/STL.h (typeImage): New unary function object to set 661 image type. 662 663 * lib/Image.cpp (type): Added ability to set image type. 664 6652001-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 666 667 * lib/Image.cpp (write(Blob)): Tell blob to use malloc allocator. 668 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. 672 6732001-09-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 674 675 * lib/Image.cpp (fileSize): Decided to change return type to off_t 676 for increased range and portability. 677 6782001-09-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 679 680 * lib/Image.cpp (fileSize): Changed return value to double. 681 6822001-09-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 683 684 * lib/Image.cpp (colorMap): Allocate a colormap if it does not 685 already exist. 686 687 * lib/Pixels.cpp (indexes): Don't attempt to validate image type. 688 689 * lib/Image.cpp (colorMap): Optimized more for performance. 690 6912001-09-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 692 693 * lib/Image.cpp (fontTypeMetrics): New method to support 694 retrieving font metrics. 695 696 * lib/TypeMetric.cpp : New class to support font metrics 697 information. 698 6992001-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 700 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 705 with user code. 706 7072001-08-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 708 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. 712 7132001-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 714 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. 718 7192001-08-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 720 721 * lib/Drawable.cpp (print): Add single quotes around file names 722 and font specifications. 723 7242001-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 725 726 * lib/Image.cpp (read): Ensure that only a single image frame is read. 727 7282001-07-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 729 730 * lib/Magick++/STL.h (flattenImages): New function to flatten a 731 layered image. 732 733 * lib/Montage.cpp (Montage): Montage initial defaults are no 734 longer drawn from ImageInfo. MontageInfo structure is entirely 735 filled out by updateMontageInfo(); 736 7372001-07-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 738 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. 742 7432001-07-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 744 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. 750 751 * lib/Magick++/Image.h (edge): Change argument from unsigned int to double. 752 (medianFilter): Changed argument from unsigned int to const double. 753 754 * lib/Magick++/STL.h (edgeImage): Change argument from unsigned int to double. 755 756 * demo/demo.cpp (main): Updated to match PerlMagick demo. 757 7582001-06-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 759 760 * lib/Magick++/STL.h (shaveImage): New function to shave edges from image. 761 762 * lib/Image.cpp (shave): New method to shave edges from image. 763 7642001-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 765 766 * lib/Image.cpp (quantize): Remove conditions on whether 767 quantization should be done. Now quantization is always done. 768 7692001-06-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 770 771 * lib/Magick++/Image.h (blur,charcoal,emboss,sharpen): Changed 772 radius and sigma parameters to match current ImageMagick defaults. 773 7742001-02-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 775 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. 779 7802001-01-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 781 782 * lib/Image.cpp (fillRule): New method to specify the rule to use when filling drawn objects. 783 7842001-01-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 785 786 * lib/Image.cpp (erase): New method to reset image to background 787 color. 788 (strokeAntiAlias): New method to control antialiasing of stroked 789 objects. 790 7912001-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 792 793 * lib/Image.cpp (channel): Renamed method from 'layer' to match 794 equivalent change in ImageMagick (ChannelImage). Enumeration 795 names *Layer renamed to *Channel. 796 7972001-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 798 799 * lib/Magick++/Montage.h (strokeColor): New method. 800 (fillColor): New method. 801 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. 806 8072001-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 808 809 * lib/Image.cpp : Adjusted to ImageMagick animation parameter API change. 810 8112000-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 812 813 * lib/Drawable.cpp (DrawableCompositeImage): Support specifying 814 composition rule. 815 8162000-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 817 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. 821 8222000-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 823 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. 828 8292000-12-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 830 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. 835 8362000-12-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 837 838 * : Adapted to ImageMagick API change which eliminates AnnotateInfo. 839 8402000-12-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 841 842 * lib/Magick++/STL.h (annotateImage): Brought into sync with 843 annotate methods in Image. 844 8452000-12-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 846 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). 851 8522000-11-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 853 854 * lib/Magick++/Color.h (alphaQuantum): Bugfix. Due to change in 855 treatment of opacity member, alphaQuantum() was not allowing value 856 to be set. 857 8582000-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 859 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 863 array. 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 869 are stroked. 870 (DrawableMiterLimit): New class to specify extension limit for 871 miter joins. 872 8732000-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 874 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 883 stroke-linecap. 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. 890 8912000-10-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 892 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 896 size). 897 8982000-10-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 899 900 * lib/Magick++/Drawable.h (DrawablePopGraphicContext): New class 901 to pop graphic context. 902 (DrawablePushGraphicContext): New class to push graphic context. 903 904 * lib/Drawable.cpp (DrawableStrokeAntialias): New class to set 905 stroke antialiasing. 906 (DrawableTextAntialias): New class to set text antialiasing. 907 9082000-10-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 909 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. 921 922 * lib/Drawable.cpp (DrawablePath): New class for drawing SVG-style 923 vector paths. 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 & 929 PathCurvetoRel. 930 (PathCurvetoAbs): New class. Cubic bezier, absolute coordinates 931 (PathCurvetoRel): New class. Cubic bezier, relative coordinates 932 (PathSmoothCurvetoAbs): New class. Cubic bezier, absolute 933 coordinates 934 (PathSmoothCurvetoRel): New class. Cubic bezier, relative 935 coordinates 936 (PathQuadraticCurvetoArgs): New class. Argument class for 937 PathQuadraticCurvetoAbs and PathQuadraticCurvetoRel. 938 (PathQuadraticCurvetoAbs): New class. Quadratic bezier, absolute 939 coordinates 940 (PathQuadraticCurvetoRel): New class. Quadratic bezier, relative 941 coordinates 942 (PathSmoothQuadraticCurvetoAbs): New class. Quadratic bezier, 943 absolute coordinates 944 (PathSmoothQuadraticCurvetoRel): New class. Quadratic bezier, 945 relative coordinates 946 (PathLinetoAbs): New class. Line to, absolute coordinates 947 (PathLinetoRel): New class. Line to, relative coordinates 948 (PathLinetoHorizontalAbs): New class. Horizontal lineto, absolute 949 coordinates 950 (PathLinetoHorizontalRel): New class. Horizontal lineto, relative 951 coordinates 952 (PathLinetoVerticalAbs): New class. Veritical lineto, absolute 953 coordinates. 954 (PathLinetoVerticalRel): New class. Vertical lineto, relative 955 coordinates. 956 (PathMovetoAbs): New class. Moveto, absolute coordinates 957 (PathMovetoRel): New class. Moveto, relative coordinates 958 9592000-10-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 960 961 * lib/Drawable.cpp (DrawableSkewX): New object to apply skew in X direction. 962 (DrawableSkewY): New object to apply skew in Y direction. 963 9642000-10-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 965 966 * lib/Image.cpp (edge): Change argument from 'unsigned int' to 967 'double' in order to match ImageMagick API. 968 9692000-10-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 970 971 * lib/Drawable.cpp (DrawableCompositeImage): Renamed from 972 DrawableImage. 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. 983 9842000-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 985 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. 991 9922000-10-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 993 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 998 as underline. 999 (DrawableFill): New class to set object filling color. 1000 (DrawableFillOpacity): New class to set opacity to use when 1001 filling object. 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. 1008 10092000-10-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1010 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. 1015 10162000-09-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1017 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 1020 memory. 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. 1025 10262000-09-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1027 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. 1031 10322000-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1033 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. 1037 10382000-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1039 1040 * lib/Options.cpp : Bugfix. Some DrawInfo attributes were not 1041 being updated. This lead to options like fontPointsize not 1042 changing the font. 1043 10442000-08-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1045 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). 1049 1050 * lib/Image.cpp (blur, charcoal, emboss, sharpen): Expand order_ 1051 argument to radius_ & sigma_ arguments for more control (matches 1052 ImageMagick API change). 1053 10542000-08-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1055 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. 1059 10602000-07-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1061 1062 * test/*.cpp demo/*.cpp: Added call to MagickIncarnate() to set 1063 ImageMagick install location for Windows. Hopefully this hack can 1064 be removed someday. 1065 10662000-07-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1067 1068 * lib/Image.cpp (colorFuzz): Changed type to 'double' from 1069 'unsigned int' to match change in ImageMagick. 1070 1071 * lib/Color.cpp (Color*): Added copy constructor from base class. 1072 (operator =): Added assignment operator from base class. 1073 10742000-06-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1075 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. 1079 10802000-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1081 1082 * lib/Magick++/Pixels.cpp (indexes): Bugfix, use GetCacheViewIndexes() 1083 rather than GetIndexes(). 1084 10852000-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1086 1087 * lib/Magick++/Montage.h (gravity): Type of gravity_ argument, and 1088 return value changed from 'unsigned int' to GravityType. 1089 10902000-04-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1091 1092 * lib/Drawable.cpp (DrawableArc, DrawableBezier, DrawablePolyline, 1093 RoundRectangle): Added support for new drawing objects. 1094 10952000-04-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1096 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. 1104 11052000-04-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1106 1107 * lib/Drawable.cpp 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 1111 changes. 1112 1113 * lib/Image.cpp (fillColor): New method to specify fill color when 1114 drawing objects. 1115 (strokeColor): New method to specify outline color when drawing 1116 objects. 1117 (penColor): Setting penColor now sets fillColor and 1118 strokeColor. Getting penColor retrieves the value of 1119 strokeColor. This supports backwards compatability. 1120 11212000-03-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1122 1123 * lib/Image.cpp (lineWidth): Type changed from unsigned int to double. 1124 11252000-03-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1126 1127 * lib/Magick++/STL.h (Magick): 1128 11292000-03-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1130 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. 1135 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, 1140 and reduceNoise. 1141 11422000-03-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1143 1144 * lib/Magick++/Pixels.h (Pixels): Moved Image pixel methods to 1145 Pixels class. 1146 11472000-02-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1148 1149 * lib/Image.cpp (annotate): Re-wrote to improve performance. 1150 (draw): Re-wrote to improve performance. 1151 11522000-02-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1153 1154 * lib/Drawable.cpp (text): Bugfix: support spaces in annotation text. 1155 11562000-02-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1157 1158 * lib/Magick++/STL.h (gaussianBlurImage): New function object to 1159 Gaussian blur image. 1160 1161 * lib/Image.cpp (gaussianBlur): New method to Gaussian blur image. 1162 11632000-02-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1164 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. 1168 11692000-02-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1170 1171 * lib/Image.cpp (floodFillTexture): Fixed bug due to pixel pointer 1172 becoming invalid in ImageMagick function. 1173 11742000-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1175 1176 * lib/Image.cpp : Added locking to reference counting to ensure 1177 thread (pthread) safety. 1178 1179 * lib/Blob.cpp : Added locking to reference counting to ensure 1180 thread (pthread) safety. 1181 1182 * lib/LastError.cpp: Added support for thread specific data 1183 (pthreads) so that error reporting is thread safe. 1184 1185 * lib/Magick++/Thread.h: Added thread wrapper class to provide 1186 thread-safe locking (pthreads) to Magick++. 1187 11882000-01-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1189 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*. 1196 11972000-01-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1198 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 1202 a leak. 1203 12042000-01-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1205 1206 * lib/Image.cpp (size): Bug-fix. Set image columns and rows as 1207 well as image options columns and rows. 1208 1209 * lib/Image.cpp :Depth parameters are now all unsigned in for consistency. 1210 1211 * lib/Image.cpp (write): Parameters for writing Blobs re-arranged 1212 again to hopefully be more sensible. 1213 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. 1216 12171999-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1218 1219 * lib/Image.cpp 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. 1225 12261999-12-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1227 1228 * lib/Image.cpp (floodFillTexture): Changed coordinates to unsigned. 1229 12301999-12-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1231 1232 * lib/Image.cpp (medianFilter): New method. 1233 12341999-12-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1235 1236 * lib/Image.cpp (density): Bug fix. Was not setting image x & y density. 1237 12381999-11-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1239 1240 * lib/Image.cpp (page): psPageSize() is renamed to page() and now 1241 properly returns the attribute from the image. 1242 12431999-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1244 1245 * lib/Image.cpp: Rename transformColorSpace() to colorSpace(). 1246 Added colorSpace() accessor method. 1247 12481999-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1249 1250 * lib/Color.cpp: Re-implemented PixelPacket pointer so that it is 1251 never NULL and added a 'valid' field for tracking object validity. 1252 12531999-11-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1254 1255 * lib/Image.cpp (quantizeError): Eliminated method. 1256 12571999-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1258 1259 * lib/Image.cpp (annotate & draw): Changed implementation to 1260 reflect change to the way AnnotateInfo is managed by ImageMagick. 1261 12621999-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1263 1264 * lib/Image.cpp (cacheThreshold): New method to set the pixel 1265 cache threshold. 1266 1267 * lib/Magick++/Include.h (Magick): Added new enumerations from 1268 classify.h. 1269 12701999-10-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1271 1272 * lib/Magick++/Options.h (fontPointsize): Argument is now a double 1273 to match change in ImageMagick. 1274 1275 * lib/Image.cpp (fontPointsize): Argument is now a double to match 1276 change in ImageMagick. 1277 12781999-10-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1279 1280 * lib/Blob.cpp (BlobRef): Bugfix -- start blob reference count at 1281 one rather than zero. 1282 12831999-10-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1284 1285 * lib/Image.cpp (Image): Fixed Image constructors from Blob. The 1286 image reference was not being instantiated as it should have been, 1287 causing a crash. 1288 12891999-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1290 1291 * lib/Blob.cpp: All blob length parameters are now of type size_t. 1292 1293 * lib/Image.cpp (write): Length estimate is now of type size_t. 1294 12951999-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1296 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. 1301 13021999-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1303 1304 * lib/Image.cpp: 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. 1312 1313 * lib/Magick++/Color.h : Rewrote to efficiently use ImageMagick 1314 5.0's PixelPacket color representation. 1315 1316 * lib/Color.cpp : Rewrote to efficiently use ImageMagick 5.0's 1317 PixelPacket color representation. 1318 13191999-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1320 1321 * lib/Image.cpp (condensed): Bug fix. The condensed() method was returning the opposite bool value than it should. Oops! 1322 13231999-09-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1324 1325 * lib/Magick++/Include.h (MagickCore): Eliminated requirement for 1326 including <magick/define.h>. 1327 13281999-08-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1329 1330 * lib/Image.cpp: Added accessor methods for other key ImageMagick 1331 structs. 1332 1333 * lib/Options.cpp (penTexture): Fixed bug with removing texture 1334 caused by change in Image constructor. 1335 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. 1340 1341 Use image() and constImage() accessor methods as part of Image 1342 implementation in order to clean-up code and ensure 1343 const-correctness. 1344 13451999-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1346 1347 * lib/Magick++/STL.h (Magick): Added STL function readImages(). 1348 Not tested yet. 1349 (Magick): Added STL function writeImages(). Not tested yet. 1350 1351 * lib/Image.cpp: Removed support for 'text' attribute as this is 1352 no longer present in ImageMagick as of 4.2.8. 1353 13541999-07-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1355 1356 * lib/Image.cpp (condense): Skip condensing image if already 1357 condensed. 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 1363 PseudoClass. 1364 13651999-07-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1366 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 1374 Magick::Color. 1375 13761999-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1377 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 1381 Magick++.h). 1382 13831999-07-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1384 1385 * lib/MagickImage.cpp (composite): Support composition placement 1386 by gravity like PerlMagick does. 1387 13881999-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1389 1390 * lib/MagickImage.cpp (Image): Added constructors to construct an 1391 Image from a BLOB. 1392 13931999-07-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1394 1395 * tests/manipulate.cpp (main): Wrote a basic sanity test for 1396 reading and writing BLOBS. 1397 13981999-06-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1399 1400 * lib/MagickImage.cpp (read): Added support for reading an encoded 1401 image stored in a BLOB. Uses new ImageMagick APIs introduced on 1402 July 21, 1999. 1403 (write): Added support for writing an encoded image to a BLOB. 1404 14051999-06-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1406 1407 * lib/MagickInclude.h : Use new <magick/api.h> interface to 1408 ImageMagick to avoid namespace-induced problems. 1409 1410 * configure.in : CPPFLAGS and LDFLAGS specified via the 1411 environment take precidence over flags from Magick-config. 1412 14131999-05-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1414 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. 1419 14201999-05-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1421 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. 1426 14271999-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1428 1429 * lib/MagickColor.cpp (operator =): Adapted to new ImageMagick 1430 4.2.6 as of 5/23/99 which removes X11 compatability functions. 1431 1432 * lib/MagickGeometry.cpp (operator =): Adapted to new ImageMagick 1433 4.2.6 as of 5/23/99 which removes X11 compatability functions. 1434 14351999-05-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1436 1437 * lib/MagickBlob.cpp (Blob): Support default constructor for Blob. 1438 14391999-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1440 1441 * lib/MagickSTL.h (transformColorSpaceImage): New unary function object 1442 to invoke transformColorSpace on STL container object. 1443 1444 * lib/MagickImage.cpp (transformColorSpace): New method to 1445 transform the image data to a new colorspace. 1446 14471999-05-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1448 1449 * lib/MagickImage.cpp (ping): Re-implemented to match (requested) 1450 API change in ImageMagick 4.2.5. Method signature has changed to 1451 be like 'read'. 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. 1457 14581999-05-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1459 1460 * lib/MagickImage.cpp (ping): New method to obtain image size in 1461 bytes and geometry without the overhead of reading the complete 1462 image. 1463 (uncondense): New method to uncompress run-length encoded pixels 1464 into a simple array to make them easy to operate on. 1465 14661999-05-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1467 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 1470 data. 1471 14721999-05-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1473 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++). 1479 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. 1483 14841999-05-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1485 1486 * lib/Makefile.am (libMagick): Updated to use libtool 1.3 so that 1487 shared library can be built. 1488 14891999-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1490 1491 * lib/MagickImage.cpp (montageGeometry): Return Magick::Geometry 1492 rather than std::string. 1493 14941999-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1495 1496 * lib/MagickColor.cpp (alpha): Added support for setting alpha via 1497 scaled-double to the Color class. The new method name is 'alpha'. 1498 14991999-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1500 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." 1508 15091999-04-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1510 1511 * demo/flip.cpp (main): New file. Demonstrates use of flipImage 1512 function object as well as morphImages algorithm. 1513 15141999-04-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1515 1516 * tests/color.cpp : New file to support testing the Magick::Color 1517 classes. 1518 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. 1527 1528 1529