cristy | 3ed852e | 2009-09-05 21:47:34 +0000 | [diff] [blame] | 1 | This file records noteworthy changes in Magick++. |
| 2 | |
| 3 | (5.5.2) |
| 4 | * Added adaptiveThreshold() method. |
| 5 | * Added colorMapSize() method. |
| 6 | * Added DrawablePushClipPath, DrawablePopClipPath, and DrawableClipPath. |
| 7 | |
| 8 | (5.5.1) |
| 9 | * Fixed a Color memory allocation problem which became evident when |
| 10 | using the Magick++ DLL. |
| 11 | * Completed implementation of Image textEncoding() method. Oops! |
| 12 | |
| 13 | (5.4.9) |
| 14 | * Added the Image textEncoding() method and an encoding option to |
| 15 | DrawableText to support specifying "UTF-8" (Unicode) text encoding. |
| 16 | * Added the Image compare() method to support comparing two similar |
| 17 | images and obtaining error values. |
| 18 | * Magick++ compiles as a DLL under Visual C++ 7.0. |
| 19 | |
| 20 | (5.4.8) |
| 21 | * The image type() method now also specifies the output image type |
| 22 | to use while writing. |
| 23 | * Added a profile() method to Image to support adding, removing, |
| 24 | and retrieving named embedded application profiles. |
| 25 | * Magick++ compiles as a DLL under Visual C++ 6.0. |
| 26 | |
| 27 | (5.4.7) |
| 28 | * No changes to report. |
| 29 | |
| 30 | (5.4.6) |
| 31 | * Magick++ library no longer depends on C++ iostreams APIs. |
| 32 | * Added DrawableTextUnderColor class to set text underbox color. |
| 33 | |
| 34 | (5.4.5) |
| 35 | * Drawable classes have been re-written to use ImageMagick's draw.h |
| 36 | APIs. |
| 37 | * Fixed a nasty bug when reporting some forms of errors. The bug |
| 38 | was causing an exception in error.c. |
| 39 | * Template API implementation cleanup. |
| 40 | * Rationalized some parameter types. |
| 41 | * New method, Pixels::getConst() to obtain read-only pixels. |
| 42 | * DrawableDashArray() prefers an array of type 'double' rather than |
| 43 | 'unsigned int'. Please use the new form. |
| 44 | * Composite images are output as embedded inlined Base64 when |
| 45 | preparing MVG data. |
| 46 | * Blob class supports encoding and decoding Base64 data. |
| 47 | * New method, Image::ping to ping a Blob. |
| 48 | |
| 49 | (5.4.4) |
| 50 | * Fixed a bug in DrawableDashArray. |
| 51 | * Numerous consistency improvements based on findings from Gimpel lint. |
| 52 | * Added endian method to Image, and endianImage class to STL.h in |
| 53 | order to support setting endian option for formats which support |
| 54 | the notion (e.g. TIFF). |
| 55 | * DrawableCompositeImage was not working. Now it does. |
| 56 | |
| 57 | (5.4.3) |
| 58 | * Support selecting fonts via font-family, font-style, font-weight, |
| 59 | and font-stretch via the DrawableFont class. |
| 60 | * CoderInfo API change. MatchType is scoped to CoderInfo class. |
| 61 | * Bugfix for Magick::Exception memory leak. |
| 62 | * Bugfix for DrawableGravity class (had stopped working). |
| 63 | * Bugfix for Image antiAlias() method (wasn't working). |
| 64 | * Reimplemented image registration code (which passes image via |
| 65 | DrawableCompositeImage). |
| 66 | |
| 67 | (5.4.2) |
| 68 | * TypeMetric class revamped to match current ImageMagick type metrics |
| 69 | definition. |
| 70 | * Fixed possible stack corruption on some architectures when returning |
| 71 | Color as a string. |
| 72 | * DrawableCompositeImage can be constructed based on an Image in memory |
| 73 | rather than just a filename. |
| 74 | * Added Drawable objects (DrawablePushPattern & DrawablePopPattern) |
| 75 | for definining arbitrary named patterns to be used for stroke and fill. |
| 76 | * Added Image strokePattern() and fillPattern() methods for specifying |
| 77 | image to use while drawing stroked object outlines and while filling |
| 78 | objects, respectively. |
| 79 | |
| 80 | (5.4.1) |
| 81 | * Fixed memory leak in Image::draw(). |
| 82 | |
| 83 | * Automagically cleans up ImageMagick allocations prior to process |
| 84 | exit to avoid annoying memory leak tools. |
| 85 | |
| 86 | (5.4.0) |
| 87 | * Fixed bug when scaling from Quantum to double in derived Color classes. |
| 88 | |
| 89 | * Pass all input parameter strings as 'const std::string &' in Color class. |
| 90 | |
| 91 | * Added support for obtaining pixel indexes. |
| 92 | |
| 93 | * Implemented support for read-only pixels and pixel indexes. |
| 94 | |
| 95 | * Added Image boundingBox() method to return smallest bounding box |
| 96 | enclosing non-border pixels. |
| 97 | |
| 98 | (5.3.9) |
| 99 | * New class, CoderInfo, to return information for a specified image |
| 100 | format as well as the coderInfoList() template function to return |
| 101 | the list of coders which match a specification. |
| 102 | |
| 103 | * User now may tell Blob updateNoCopy() what memory system (C or C++) |
| 104 | the memory was allocated from. Used to assume the C++ allocator. |
| 105 | This resolves a bug on some platforms (e.g. Windows). |
| 106 | |
| 107 | * Added Image 'opacity' method (and STL opacityImage()) to set, or |
| 108 | attenuate, image opacity. |
| 109 | |
| 110 | * Added Image 'type' method (and STL typeImage()) to set image |
| 111 | representation type. |
| 112 | |
| 113 | * Image depth method now adjusts pixels to match specified image depth, |
| 114 | and reports depth based on current image pixels. |
| 115 | |
| 116 | (5.3.8) |
| 117 | * New class 'TypeMetric' to contain font type metrics. |
| 118 | |
| 119 | * New Image method 'fontTypeMetrics()' to obtain font type metrics. |
| 120 | |
| 121 | * Image colorMap method automatically extends the colormap if index |
| 122 | is past the end of the current colormap. |
| 123 | |
| 124 | * Added clipMask method to add a clip mask to the current |
| 125 | image. Prevents modification to image pixels wherever the |
| 126 | associated clip mask image is tranparent. |
| 127 | |
| 128 | * Documented methods which were added previously, but left |
| 129 | undocumented. |
| 130 | |
| 131 | (5.3.7) |
| 132 | * No changes. |
| 133 | |
| 134 | (5.3.6) |
| 135 | * Adjusted parameters to 'edge' and 'medianFilter' to match |
| 136 | equivalent libMagick functions. |
| 137 | * Fixed a Montage bug which was not allowing color options to be unset. |
| 138 | * Montage defaults are no longer taken from first Image in list. |
| 139 | * Magick++ demo output looks like PerlMagick demo output again. |
| 140 | |
| 141 | (5.3.5) |
| 142 | * Default radius and sigma parameters were changed on the blur, |
| 143 | charcoal, emboss, and sharpen methods to match ImageMagick defaults. |
| 144 | * Fixes to Magick++ demos to restore appearance. |
| 145 | * Added shave method for shaving edges from image (a form of crop). |
| 146 | |
| 147 | (5.3.1-5.3.4) |
| 148 | * No changes. |
| 149 | |
| 150 | (5.3.0) |
| 151 | * Released with ImageMagick 5.3.0 |
| 152 | * Bug fix. Under certain conditions, several annotation options |
| 153 | were being reset. |
| 154 | |
| 155 | (5.2.9) |
| 156 | * Released with ImageMagick 5.2.9 |
| 157 | * Added fillRule method to Image class. |
| 158 | |
| 159 | (5.2.8) |
| 160 | * Released with ImageMagick 5.2.8 |
| 161 | * Added 'fill' and 'stroke' methods to Montage class. |
| 162 | * Added 'erase' and 'strokeAntiAlias' methods to Image class. |
| 163 | * Renamed Image class 'layer' method to 'channel'. |
| 164 | * Support supplying composition rule to DrawableCompositeImage. |
| 165 | |
| 166 | (5.2.7) |
| 167 | * Released with ImageMagick 5.2.7 |
| 168 | * Added convolve and unsharpmask methods to Image. |
| 169 | * Added deconstructImages and mosaicImages template functions. |
| 170 | * Fixed handling of geometry parameter to annotate method. |
| 171 | |
| 172 | (5.2.6) |
| 173 | * Released with ImageMagick 5.2.6. |
| 174 | * Added support for a SVG-style dash array and dash offset |
| 175 | parameters (for drawing dashed lines). |
| 176 | * Added support for setting the shape to be used at the end of open |
| 177 | subpaths when they are stroked. |
| 178 | * Added support for setting the shape to be used at the corners of |
| 179 | paths (or other vector shapes) when they are stroked. |
| 180 | * Added support for setting extension limit for miter joins. |
| 181 | * Rotate text the proper way using an affine transform. |
| 182 | |
| 183 | (5.2.5) |
| 184 | * Released with ImageMagick 5.2.5. |
| 185 | * Completely re-wrote drawable object classes in order to support |
| 186 | all current ImageMagick drawing capabilities using a list-based paradigm. |
| 187 | New drawing capabilities include coordinate transformations and the |
| 188 | currently undocumented (but quite powerful) path capabilities. |
| 189 | |
| 190 | (5.2.4) |
| 191 | * Released with ImageMagick 5.2.4. |
| 192 | * Magick++ is now built by the regular ImageMagick build process. |
| 193 | when --with-magick_plus_plus is specified to configure. |
| 194 | * Fixed bug with setting text drawing options. |
| 195 | * Fixed API bug with colorize. Options adjusted to match ImageMagick |
| 196 | API change (API change was long ago). |
| 197 | * Library compiles using Sun Workshop 5.0 compiler. Linkage problems with |
| 198 | some demos/tests due to libtool-related compiler/linker bug. |
| 199 | * Compiles using Sun Forte 6.0 compiler. |
| 200 | |
| 201 | (5.2.3) |
| 202 | * Switched to new release numbering (match ImageMagick release number) |
| 203 | * Released with ImageMagick 5.2.3. |
| 204 | * Fixed bug in which the Image read method was not reporting |
| 205 | warnings (only errors). |
| 206 | * Parameter changes to blur, charcoal, emboss, and sharpen methods |
| 207 | of the Image class to match equivalent ImageMagick API changes. |
| 208 | * Parameter changes to blurImage, charcoalImage, embossImage, and |
| 209 | sharpenImage STL functions in order to match equivalent ImageMagick |
| 210 | API changes. |
| 211 | |
| 212 | (0.9.5) |
| 213 | * Released with ImageMagick 5.2.2. |
| 214 | |
| 215 | (0.9.4) |
| 216 | * Released with ImageMagick 5.2.1. |
| 217 | * Bugfix to the Pixels GetIndexes() method. |
| 218 | * Adapted to ImageMagick 5.2.1's revised matte channel interpretation. |
| 219 | |
| 220 | (0.9.3) |
| 221 | * Released with ImageMagick 5.2 |
| 222 | * New class 'Pixels' to support low-level pixel access in image. New |
| 223 | API supports multiple pixel views into the same image. Number of |
| 224 | available pixel views limited to the number of image rows + 1. |
| 225 | * Dramatically improved performance for text annotation and drawing. |
| 226 | * Fix text annotation bug which did not allow spaces in annotation text. |
| 227 | * Added gaussianBlurImage() method. |
| 228 | * Fixed bug in floodFillTexture(). |
| 229 | * Re-worked error reporting methodology to use re-entrant error |
| 230 | reporting rather than the previous method (based on call-backs) |
| 231 | which required thread specific data. |
| 232 | * Should be thread-safe under Win32 now. |
| 233 | |
| 234 | (0.9.2) |
| 235 | * Released with ImageMagick 5.1.1 |
| 236 | * Should be thread-safe when used with POSIX threads (pthreads). |
| 237 | * Added methods getPixels, setPixels, syncPixels, readPixels, and |
| 238 | writePixels, in order to provide low-level access to Image pixels. |
| 239 | * Bugfix: size method was setting Options size, but not Image rows |
| 240 | and columns. |
| 241 | |
| 242 | (0.9.1) |
| 243 | * Released with ImageMagick 5.1.0 |
| 244 | * Added additional constructors, read, and write methods for BLOBs |
| 245 | to make BLOBs easier to use. |
| 246 | * Added the medianFilter() method to Image. |
| 247 | * Renamed transformColorSpace() to colorSpace() and added a |
| 248 | colorSpace() accessor method. |
| 249 | * Renamed psPageSize() to page(), which now properly returns the |
| 250 | actual attribute from the image, rather than the image options. |
| 251 | This is important in order to manipulate GIF animations. |
| 252 | * Bug fixes. |
| 253 | |
| 254 | (0.9) |
| 255 | * Ported to ImageMagick 5.0. |
| 256 | * BLOB sizes are now specified using size_t type. |
| 257 | * Rotate() no longer accepts sharpen or crop options. |
| 258 | * Shear() No longer accepts a crop option. |
| 259 | * FontPointsize() now takes a double. |
| 260 | * The condense, uncondense, and condensed methods have been removed |
| 261 | since ImageMagick 5.0 no longer uses run-length encoding. |
| 262 | * The quantizeError method has been removed since it never worked. |
| 263 | * The cacheThreshold method is added to set the threshold of |
| 264 | ImageMagick's image cache. |
| 265 | |
| 266 | (0.8.9) |
| 267 | * Released with ImageMagick 4.2.9 |
| 268 | * Blob reference counting was totally broken, leading to a memory |
| 269 | leak if it was used. Fixed by starting reference count from one |
| 270 | rather than zero. |
| 271 | |
| 272 | (0.8.8) |
| 273 | * Fixed a Image constructor bug when constructing from a Blob |
| 274 | |
| 275 | (0.8.7) |
| 276 | * Bugfix: condensed() was returning wrong state. |
| 277 | |
| 278 | (0.8.6) |
| 279 | * Color is now based on ImageMagick's RunlengthPacket structure (via a |
| 280 | pointer) so that it may eventually be used to represent an image |
| 281 | pixel. This is currently a work in progress. |
| 282 | |
| 283 | (0.8.5) |
| 284 | * Headers are now installed under prefix/include/Magick++ on Unix |
| 285 | systems with the exception that Magick++.h is installed under |
| 286 | prefix/include as it was before. Programs which include Magick++.h |
| 287 | (the documented approach) should not be impacted. |
| 288 | * Image constructors to construct an image from a BLOB. |
| 289 | * Image read and write methods to decode and encode images stored in a |
| 290 | BLOB. This allows reading/writing image "files" from/to memory rather |
| 291 | than a traditional file. |
| 292 | |
| 293 | (0.8.4) |
| 294 | * New mapImages algorithm maps a sequence of images to the colormap of |
| 295 | a provided image. |
| 296 | * New quantizeImages algorithm computes and applies a common colormap |
| 297 | to a sequence of images. |
| 298 | |
| 299 | (0.8.3) |
| 300 | * Ported to ImageMagick 4.2.6. |
| 301 | * Blob supports default constructor. |
| 302 | * New Blob method updateNoCopy() to support efficient initialization by |
| 303 | derived class. |
| 304 | |
| 305 | (0.8.2) |
| 306 | * Uses libtool 1.3 to build library under Unix and Cygwin (static lib only). |
| 307 | * Added Blob class to support supplying formatted binary data to methods. |
| 308 | * Added support for setting ICC and IPTC profiles from a binary BLOB. |
| 309 | * Added support for transformations of image data to/from alternate |
| 310 | colorspace (e.g. CYMK). |
| 311 | * Added support for 'pinging' an image (get image dimensions/size quickly). |
| 312 | * Added 'uncondense' method to de-compress in-memory image data. |
| 313 | * Added support for annotation using rotated text. |
| 314 | |
| 315 | (0.8.1) |
| 316 | * Added support for setting alpha in Magick::Color |
| 317 | * Set/get color alpha in Magick::Image::pixelColor() for DirectClass images. |
| 318 | |
| 319 | (0.8) |
| 320 | * Transitioned to Beta |
| 321 | * Improved Microsoft Visual C++ build environment. |
| 322 | |
| 323 | (0.7.4) |
| 324 | * Added animateImages() and displayImages() to MagickSTL.h. |
| 325 | * Added function objects to support setting image attributes. |
| 326 | |
| 327 | (0.7.3) |
| 328 | * Image::penTexture() now takes Image reference rather than |
| 329 | Image pointer. Set Image to invalid using isValid(false) |
| 330 | to unset texture. |
| 331 | * Attribute methods that take Color, Geometry, Image, or string |
| 332 | arguments may now unset the attribute by setting the state of |
| 333 | the object to invalid using isValid(false), or the empty string |
| 334 | (in the case of string). This allows full control over ImageMagick |
| 335 | attributes which are stored as C strings which may be set to NULL. |
| 336 | * Updated for ImageMagick 4.2.1 |
| 337 | |
| 338 | (0.7.2) |
| 339 | * Added STL function object support for all Image manipulation |
| 340 | methods to support operating on all or part of the images |
| 341 | stored in an STL container. |
| 342 | |
| 343 | (0.7.1) |
| 344 | * Added Coordinate class and methods in Drawable to support x,y |
| 345 | coordinates. |
| 346 | * Changed coordinate parameters from unsigned int to double in Drawable. |
| 347 | * Changed polygon methods in Drawable to use STL list argument. |
| 348 | * Added STL list based draw method to Image. |
| 349 | * Changed Exception heirarchy to support Warning and Error sub-classes. |
| 350 | Most exception class names have changed. |
| 351 | |
| 352 | (0.7) |
| 353 | * Updated for ImageMagick 4.2.0 |
| 354 | * Added support for flood-filling and drawing with texture. |
| 355 | * Montage supported. |
| 356 | * Oodles of bugs fixed. |
| 357 | * Implemented image attribute tests. |
| 358 | * Implemented PerlMagick 'demo' and 'shapes' demo programs in Magick++. |
| 359 | * Some parameters re-ordered due to experience from writing demo programs. |
| 360 | |
| 361 | (0.6) |
| 362 | * Initial support for integrating image-list oriented operations with |
| 363 | STL containers. |
| 364 | |
| 365 | (0.5) |
| 366 | * Compiles and runs under Unix using egcs release 1.1 or later. |
| 367 | * Compiles and runs under Windows using Visual C++ 5.X or later. |
| 368 | * Users of Magick++ API are not exposed to ImageMagick headers. |
| 369 | * Magick++ API is namespaced under "Magick". |
| 370 | * "Magick" prefix removed from object names. |
| 371 | * User options are now completely contained within Image object. |
| 372 | There is no longer a MagickOptions parameter to some methods. |
| 373 | |
| 374 | (0.1) |
| 375 | * All ImageMagick operations which operate on individual images are |
| 376 | supported. |
| 377 | * Image objects have value semantics, avoid unnecessary image |
| 378 | copies through the use of reference counting, and may be compared |
| 379 | via standard operators. |
| 380 | * Geometry, color, annotations, and user-options are supported by |
| 381 | separate classes. |
| 382 | * Errors are reported synchronously via C++ exceptions. |
| 383 | |