Wand Changelog¶
0.4 series¶
Version 0.4.5¶
To be released.
- Improve library searching when
MAGICK_HOME
environment variable is set. [#320 by Chase Anderson] - Fixed misleading TypeError: object of type ‘NoneType’ has no len() during destroy routines. [#346 by Carey Metcalfe]
- Added
Image.blur()
method (MagickBlurImage()
). [#311 by Alexander Karpinsky] - Added
Image.extent()
method (MagickExtentImage()
). [#233 by Jae-Myoung Yu] - Added
Image.resample()
method (MagickResampleImage()
). [#244 by Zio Tibia]
Version 0.4.4¶
Released on October 22, 2016.
- Added
BaseError
,BaseWarning
, andBaseFatalError
, base classes for domains. [#292] - Fixed
TypeError
during parsing version caused by format change of ImageMagick version string (introduced by 6.9.6.2). [#310, Debian bug report #841548] - Properly fixed again memory-leak when accessing images constructed in
Image.sequence[]
. It had still leaked memory in the case an image is not closed usingwith
but manualwand.resource.Resource.destroy()
/wand.image.Image.close()
method call. [#237]
Version 0.4.3¶
Released on June 1, 2016.
- Fixed
repr()
for emptyImage
objects. [#265] - Added
Image.compare()
method (MagickCompareImages()
). [#238, #268 by Gyusun Yeom] - Added
Image.page
and related properties for virtual canvas handling. [#284 by Dan Harrison] - Added
Image.merge_layers()
method (MagickMergeImageLayers()
). [#281 by Dan Harrison] - Fixed
OSError
during importlibc.dylib
due to El Capitan’s SIP protection. [#275 by Ramesh Dharan]
Version 0.4.2¶
Released on November 30, 2015.
- Fixed
ImportError
on MSYS2. [#257 by Eon Jeong] - Added
Image.quantize()
method (MagickQuantizeImage()
). [#152 by Kang Hyojun, #262 by Jeong YunWon] - Added
Image.transform_colorspace()
quantize (MagickTransformImageColorspace()
). [#152 by Adrian Jung, #262 by Jeong YunWon] - Now ImageMagick DLL can be loaded on Windows even if its location is stored in the resitry. [#261 by Roeland Schoukens]
- Added
depth
parameter toImage
constructor. Thedepth
,width
andheight
parameters can be used with thefilename
,file
andblob
parameters to load raw pixel data. [#261 by Roeland Schoukens]
Version 0.4.1¶
Released on August 3, 2015.
- Added
Image.auto_orient()
that fixes orientation by checking EXIF tags. - Added
Image.transverse()
method (MagickTransverseImage()
). - Added
Image.transpose()
method (MagickTransposeImage()
). - Added
Image.evaluate()
method. - Added
Image.frame()
method. - Added
Image.function()
method. - Added
Image.fx()
expression method. - Added
gravity
options inImage.crop()
method. [#222 by Eric McConville] - Added
Image.matte_color
property. - Added
Image.virtual_pixel
property. - Added
Image.distort()
method. - Added
Image.contrast_stretch()
method. - Added
Image.gamma()
method. - Added
Image.linear_stretch()
method. - Additional support for
Image.alpha_channel
. - Additional query functions have been added to
wand.version
API. [#120]- Added
configure_options()
function. - Added
fonts()
function. - Added
formats()
function.
- Added
- Additional IPython support. [#117]
- Fixed memory-leak when accessing images constructed in
Image.sequence[]
. [#237 by Eric McConville] - Fixed Windows memory-deallocate errors on
wand.drawing
API. [#226 by Eric McConville] - Fixed
ImportError
on FreeBSD. [#252 by Pellaeon Lin]
Version 0.4.0¶
Released on February 20, 2015.
See also
- What’s new in Wand 0.4?
- This guide introduces what’s new in Wand 0.4.
- Complete
wand.drawing
API. The whole work was done by Eric McConville. Huge thanks for his effort! [#194 by Eric McConville]- Added
Drawing.arc()
method (Arc). - Added
Drawing.bezier()
method (Bezier). - Added
Drawing.circle()
method (Circle). - Color & Matte
- Added
wand.drawing.PAINT_METHOD_TYPES
constant. - Added
Drawing.color()
method. - Added
Drawing matte()
method.
- Added
- Added
Drawing.composite()
method (Composite). - Added
Drawing.ellipse()
method (Ellipse). - Paths
- Added
path_start()
method. - Added
path_finish()
method. - Added
path_close()
method. - Added
path_curve()
method. - Added
path_curve_to_quadratic_bezier()
method. - Added
path_elliptic_arc()
method. - Added
path_horizontal_line()
method. - Added
path_line()
method. - Added
path_move()
method. - Added
path_vertical_line()
method.
- Added
- Added
Drawing.point()
method (Point). - Added
Drawing.polygon()
method (Polygon). - Added
Drawing.polyline()
method (Polyline). - Push & Pop
- Added
push()
method. - Added
push_clip_path()
method. - Added
push_defs()
method. - Added
push_pattern()
method. - Added
clip_path
property. - Added
set_fill_pattern_url()
method. - Added
set_stroke_pattern_url()
method. - Added
pop()
method.
- Added
- Added
Drawing.rectangle()
method (Rectangles). - Added
stroke_dash_array
property. - Added
stroke_dash_offset
property. - Added
stroke_line_cap
property. - Added
stroke_line_join
property. - Added
stroke_miter_limit
property. - Added
stroke_opacity
property. - Added
stroke_width
property. - Added
fill_opacity
property. - Added
fill_rule
property.
- Added
- Error message of
MissingDelegateError
raised byImage.liquid_rescale()
became nicer.
0.3 series¶
Version 0.3.9¶
Released on December 20, 2014.
- Added
'pdf:use-cropbox'
option toImage.options
dictionary (andOPTIONS
constant). [#185 by Christoph Neuroth] - Fixed a bug that exception message was
bytes
instead ofstr
on Python 3. - The
size
parameter ofFont
class becomes optional. Its default value is 0, which means autosized. [#191 by Cha, Hojeong] - Fixed a bug that
Image.read()
had tried usingMagickReadImageFile()
even when the given file object has nomode
attribute. [#205 by Stephen J. Fuhry]
Version 0.3.8¶
Released on August 3, 2014.
- Fixed a bug that transparent background becomes filled with white when SVG is converted to other bitmap image format like PNG. [#184]
- Added
Image.negate()
method. [#174 by Park Joon-Kyu] - Fixed a segmentation fault on
Image.modulate()
method. [#173 by Ted Fung, #158] - Added suggestion to install freetype also if Homebrew is used. [#141]
- Now image/x-gif also is determined as
animation
. [#181 by Juan-Pablo Scaletti]
Version 0.3.6¶
Released on March 23, 2014.
- Added
Drawing.rectangle()
method. Now you can draw rectangles. [#159] - Added
Image.compression
property. [#171] - Added
contextlib.nested()
function towand.compat
module. - Fixed
UnicodeEncodeError
whenDrawing.text()
method gives Unicodetext
argument in Python 2. [#163] - Now it now allows to use Wand when Python is invoked with the
-OO
flag. [#169 by Samuel Maudo]
Version 0.3.5¶
Released on September 13, 2013.
- Fix segmentation fault on
Image.save()
method. [#150]
Version 0.3.4¶
Released on September 9, 2013.
- Added
Image.modulate()
method. [#134 by Dan P. Smith] - Added
Image.colorspace
property. [#135 by Volodymyr Kuznetsov] - Added
Image.unsharp_mask()
method. [#136 by Volodymyr Kuznetsov] - Added
'jpeg:sampling-factor'
option toImage.options
dictionary (andOPTIONS
constant). [#137 by Volodymyr Kuznetsov] - Fixed ImageMagick shared library resolution on Arch Linux. [#139, #140 by Sergey Tereschenko]
- Added
Image.sample()
method. [#142 by Michael Allen] - Fixed a bug that
Image.save()
preserves only one frame of the given animation when file-like object is passed. [#143, #145 by Michael Allen] - Fixed searching of ImageMagick shared library with HDR support enabled. [#148, #149 by Lipin Dmitriy]
Version 0.3.3¶
Released on August 4, 2013. It’s author’s birthday.
- Added
Image.gaussian_blur()
method. - Added
Drawing.stroke_color
property. [#129 by Zeray Rice] - Added
Drawing.stroke_width
property. [#130 by Zeray Rice] - Fixed a memory leak of
Color
class. [#127 by Wieland Morgenstern] - Fixed a bug that
Image.save()
to stream truncates data. [#128 by Michael Allen] - Fixed broken
display()
on Python 3. [#126]
Version 0.3.2¶
Released on July 11, 2013.
- Fixed incorrect encoding of filenames. [#122]
- Fixed key type of
Image.metadata
dictionary tostr
frombytes
in Python 3. - Fixed CentOS compatibility [#116, #124 by Pierre Vanliefland]
- Made
DrawSetTextInterlineSpacing()
andDrawGetTextInterlineSpacing()
optional. - Added exception in drawing API when trying to use
DrawSetTextInterlineSpacing()
andDrawGetTextInterlineSpacing()
functions when they are not available. - Added
WandLibraryVersionError
class for library versions issues.
- Made
Version 0.3.0¶
Released on June 17, 2013.
See also
- What’s new in Wand 0.3?
- This guide introduces what’s new in Wand 0.3.
- Now also works on Python 2.6, 2.7, and 3.2 or higher.
- Added
wand.drawing
module. [#64 by Adrian Jung] - Added
Drawing.get_font_metrics()
method. [#69, #71 by Cha, Hojeong] - Added
Image.caption()
method. [#74 by Cha, Hojeong] - Added optional
color
parameter toImage.trim()
method. - Added
Image.border()
method. [2496d37f75d75e9425f95dde07033217dc8afefc by Jae-Myoung Yu] - Added
resolution
parameter toImage.read()
method and the constructor ofImage
. [#75 by Andrey Antukh] - Added
Image.liquid_rescale()
method which does seam carving. See also Seam carving (also known as content-aware resizing). - Added
Image.metadata
immutable mapping attribute andMetadata
mapping type for it. [#56 by Michael Elovskikh] - Added
Image.channel_images
immutable mapping attribute andChannelImageDict
mapping for it. - Added
Image.channel_depths
immutable mapping attribute andChannelDepthDict
mapping for it. - Added
Image.composite_channel()
method. - Added
Image.read()
method. [#58 by Piotr Florczyk] - Added
Image.resolution
property. [#58 by Piotr Florczyk] - Added
Image.blank()
method. [#60 by Piotr Florczyk] - Fixed several memory leaks. [#62 by Mitch Lindgren]
- Added
ImageProperty
mixin class to maintain a weak reference to the parent image. - Ranamed
wand.image.COMPOSITE_OPS
toCOMPOSITE_OPERATORS
. - Now it shows helpful error message when ImageMagick library cannot be found.
- Added IPython-specialized formatter.
- Added
QUANTUM_DEPTH
constant. - Added these properties to
Color
class: - Added
Image.normalize()
method. [#95 by Michael Curry] - Added
Image.transparent_color()
method. [#98 by Lionel Koenig] - Started supporting resizing and cropping of GIF images. [#88 by Bear Dong, #112 by Taeho Kim]
- Added
Image.flip()
method. - Added
Image.flop()
method. - Added
Image.orientation
property. [88574468a38015669dae903185fb328abdd717c0 by Taeho Kim] wand.resource.DestroyedResourceError
becomes a subtype ofwand.exceptions.WandException
.Color
is now hashable, so can be used as a key of dictionaries, or an element of sets. [#114 by klutzy]Color
hasnormalized_string
property.Image
hashistogram
dictionary.- Added optional
fuzz
parameter toImage.trim()
method. [#113 by Evaldo Junior]
0.2 series¶
Version 0.2.4¶
Released on May 28, 2013.
- Fix
NameError
inResource.resource
setter. [#89 forwareded from Debian bug report #699064 by Jakub Wilk] - Fix the problem of library loading for Mac with Homebrew and Arch Linux. [#102 by Roel Gerrits, #44]
Version 0.2.3¶
Released on January 25, 2013.
- Fixed a bug that
Image.transparentize()
method (andImage.watermark()
method which internally uses it) didn’t work. - Fixed segmentation fault occurred when
Color.red
,Color.green
, orColor.blue
is accessed. - Added
Color.alpha
property. - Fixed a bug that format converting using
Image.format
property orImage.convert()
method doesn’t correctly work to save blob.
Version 0.2.2¶
Released on September 24, 2012.
- A compatibility fix for FreeBSD. [Patch by Olivier Duchateau]
- Now
Image
can be instantiated without any opening. Instead, it can takewidth
/height
andbackground
. [#53 by Michael Elovskikh] - Added
Image.transform()
method which is a convenience method accepting geometry strings to perform cropping and resizing. [#50 by Mitch Lindgren] - Added
Image.units
property. [#45 by Piotr Florczyk] - Now
Image.resize()
method raises a proper error when it fails for any reason. [#41 by Piotr Florczyk] - Added
Image.type
property. [#33 by Yauhen Yakimovich, #42 by Piotr Florczyk]
Version 0.2.1¶
Released on August 19, 2012. Beta version.
- Added
Image.trim()
method. [#26 by Jökull Sólberg Auðunsson] - Added
Image.depth
property. [#31 by Piotr Florczyk] - Now
Image
can take an optionalformat
hint. [#32 by Michael Elovskikh] - Added
Image.alpha_channel
property. [#35 by Piotr Florczyk] - The default value of
Image.resize()
’sfilter
option has changed from'triangle'
to'undefined'
. [#37 by Piotr Florczyk] - Added version data of the linked ImageMagick library into
wand.version
module:MAGICK_VERSION
(GetMagickVersion()
)MAGICK_VERSION_INFO
(GetMagickVersion()
)MAGICK_VERSION_NUMBER
(GetMagickVersion()
)MAGICK_RELEASE_DATE
(GetMagickReleaseDate()
)MAGICK_RELEASE_DATE_STRING
(GetMagickReleaseDate()
)
Version 0.2.0¶
Released on June 20, 2012. Alpha version.
- Added
Image.transparentize()
method. [#19 by Jeremy Axmacher] - Added
Image.composite()
method. [#19 by Jeremy Axmacher] - Added
Image.watermark()
method. [#19 by Jeremy Axmacher] - Added
Image.quantum_range
property. [#19 by Jeremy Axmacher] - Added
Image.reset_coords()
method andreset_coords
option toImage.rotate()
method. [#20 by Juan Pablo Scaletti] - Added
Image.strip()
method. [#23 by Dmitry Vukolov] - Added
Image.compression_quality
property. [#23 by Dmitry Vukolov] - Now the current version can be found from the command line interface:
python -m wand.version
.
0.1 series¶
Version 0.1.10¶
Released on May 8, 2012. Still alpha version.
- So many Windows compatibility issues are fixed. [#14 by John Simon]
- Added
wand.api.libmagick
. - Fixed a bug that raises
AttributeError
when it’s trying to warn. [#16 by Tim Dettrick] - Now it throws
ImportError
instead ofAttributeError
when the shared library fails to load. [#17 by Kieran Spear] - Fixed the example usage on index page of the documentation. [#18 by Jeremy Axmacher]
Version 0.1.9¶
Released on December 23, 2011. Still alpha version.
- Now
wand.version.VERSION_INFO
becomestuple
andwand.version.VERSION
becomes a string. - Added
Image.background_color
property. - Added
==
operator forImage
type. - Added
hash()
support ofImage
type. - Added
Image.signature
property. - Added
wand.display
module. - Changed the theme of Sphinx documentation.
- Changed the start example of the documentation.
Version 0.1.8¶
Released on December 2, 2011. Still alpha version.
- Wrote some guide documentations: Reading images, Writing images and Resizing and cropping.
- Added
Image.rotate()
method for in-place rotation. - Made
Image.crop()
to raise properValueError
instead ofIndexError
for invalid width/height arguments. - Changed the type of
Image.resize()
method’sblur
parameter fromnumbers.Rational
tonumbers.Real
. - Fixed a bug of raising
ValueError
when invalidfilter
has passed toImage.resize()
method.
Version 0.1.7¶
Released on November 10, 2011. Still alpha version.
- Added
Image.mimetype
property. - Added
Image.crop()
method for in-place crop.
Version 0.1.6¶
Released on October 31, 2011. Still alpha version.
- Removed a side effect of
Image.make_blob()
method that changes the image format silently. - Added
Image.format
property. - Added
Image.convert()
method. - Fixed a bug about Python 2.6 compatibility.
- Use the internal representation of
PixelWand
instead of the string representaion forColor
type.
Version 0.1.5¶
Released on October 28, 2011. Slightly mature alpha version.
- Now
Image
can read Python file objects byfile
keyword argument. - Now
Image.save()
method can write into Python file objects byfile
keyword argument. Image.make_blob()
’sformat
argument becomes omittable.
Version 0.1.4¶
Released on October 27, 2011. Hotfix of the malformed Python package.
Version 0.1.3¶
Released on October 27, 2011. Slightly mature alpha version.
Version 0.1.2¶
Released on October 16, 2011. Still alpha version.
Image
implements iterable interface.- Added
wand.color
module. - Added the abstract base class of all Wand resource objects:
wand.resource.Resource
. Image
implements slicing.- Cropping
Image
using its slicing operator.
Version 0.1.1¶
Released on October 4, 2011. Still alpha version.
- Now it handles errors and warnings properly and in natural way of Python.
- Added
Image.make_blob()
method. - Added
blob
parameter intoImage
constructor. - Added
Image.resize()
method. - Added
Image.save()
method. - Added
Image.clone()
method. - Drawed the pretty logo picture (thanks to Hyojin Choi).
Version 0.1.0¶
Released on October 1, 2011. Very alpha version.