Home | History | Annotate | Download | only in Magick++
      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 
    384