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