Wand Changelog
0.4 series
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]
- Render RGB
Color
preview. - Display each frame in image
Sequence
.
- Render RGB
- 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.7
Released on March 25, 2014.
- A hotfix of debug prints made at 0.3.6.
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.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.1
Released on June 23, 2013.
- Fixed
ImportError
on Windows.
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:red_quantum
green_quantum
blue_quantum
alpha_quantum
red_int8
green_int8
blue_int8
alpha_int8
- 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.
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.
- Pixel getter for
Image
. - Row getter for
Image
. - Mac compatibility.
- Windows compatibility.
- 64-bit processor compatibility.
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.