Wand Changelog¶
0.5 series¶
Version 0.5.5¶
Unreleased.
Version 0.5.4¶
Released on May 25th, 2019.
- Rewrote
libc
library loader. [#409]- Respect
background
paramater inImage.__init__()
constructor. [#410]- Fixed
Drawing.get_font_metrics()
not raising internal ImageMagick exception on rendering error. [#411]- Fixed deleting image artifact value.
- Fixed offset memory calculation in
Image.export_pixels()
&Image.import_pixels()
methods. [#413]- Added
Image.auto_gamma()
method.- Added
Image.auto_level()
method.- Added
Image.border_color
property.- Added
Image.brightness_contrast()
method.- Added
Image.mode()
method.- Added
Image.motion_blur()
method.- Added
Image.oil_paint()
method.- Added
Image.opaque_paint()
method.- Added
Image.polaroid()
method.- Added
Image.rendering_intent
property.- Added
Image.rotational_blur()
method.- Added
Image.scene
property.- Added
Image.shear()
method.- Added
Image.sigmoidal_contrast()
method.- Added
Image.similarity()
method.- Added
Image.stegano()
method.- Added
Image.stereogram()
class method.- Added
Image.texture()
method.- Added
Image.thumbnail()
method. [#357 by yoch]- Added
Image.ticks_per_second
property.
Version 0.5.3¶
Released on April 20, 2019.
- Fixed alpha channel set to “on” & “off” values for ImageMagick-7. [#404]
- Updated
Image.composite
&Image.composite_channel
to include optional arguments for composite methods that require extra controls.- Updated
Image.composite
&Image.composite_channel
to include optional gravity argument.
- Support for numpy arrays. [#65]
- Added
Image.from_array
class method.
- Support color map / palette manipulation. [#403]
- Added
Image.colors
property.- Added
Image.color_map()
method.- Added
Image.cycle_color_map()
method.- Support for
highlight
&lowlight
has been added toImage.compare()
method.- Support for PEP-519 for objects implementing
__fspath__
, inencode_filename()
.- Added
Image.adaptive_blur()
method.- Added
Image.adaptive_resize()
method.- Added
Image.adaptive_sharpen()
method.- Added
Image.adaptive_threshold()
method.- Added
Image.black_threshold()
method.- Added
Image.blue_shift()
method.- Added
Image.charcoal()
method.- Added
Image.color_matrix()
method.- Added
Image.colorize()
method.- Added
Image.fuzz
property.- Added
Image.kurtosis
property.- Added
Image.kurtosis_channel()
method- Added
Image.maxima
property.- Added
Image.mean
property.- Added
Image.mean_channel()
method- Added
Image.minima
property.- Added
Image.noise()
method.- Added
Image.range_channel()
method- Added
Image.remap()
method.- Added
Image.selective_blur()
method.- Added
Image.skewness
property.- Added
Image.sketch()
method.- Added
Image.smush()
method.- Added
Image.sparse_color()
method.- Added
Image.splice()
method.- Added
Image.spread()
method.- Added
Image.standard_deviation
property.- Added
Image.statistic()
method.- Added
Image.tint()
method.
Special thanks to Fred Weinhaus for helping test this release.
Version 0.5.2¶
Released on March 24, 2019.
- Import
collections.abc
explicitly. [#398 by Stefan Naumann]- Fixed memory leak in
HistogramDict
. [#397]- Fixed compression & compression quality bug. [#202 & #278]
Image.read()
will raiseWandRuntimeError
ifMagickReadImage()
returnsMagickFalse
, but does not emit exception. [#319]- Added
Image.implode()
method.- Added
Image.vignette()
method.- Added
Image.wave()
method.- Added
Image.white_threshold()
method.- Added
Image.blue_primary
property.- Added
Image.green_primary
property.- Added
Image.interlace_scheme
property.- Added
Image.interpolate_method
property.- Added
Image.red_primary
property.- Added
Image.white_point
property.
Version 0.5.1¶
Released on February 15, 2019.
- Added set pixel color via Image[x, y] = Color(‘…’). [#105]
- Added
limits
helper dictionary to allows getting / setting ImageMagick’s resource-limit policies. [#97] - Fixed segmentation violation for win32 & ImageMagick-7. [#389]
- Fixed AssertError by moving
SingleImage
sync behavior fromdestroy
to context__exit__
. [#388] - Fixed memory leak in
get_font_metrics
. [#390] - Added property setters for
Color
attributes. - Added
cyan
,magenta
,yellow
, &black
properties for CMYKColor
instances. Color
instance can be created from HSL values withfrom_hsl()
class method.- Added
Image.compose
property for identifying layer visibility. - Added
Image.profiles
dictionary attribute. [#249] - Moved
collections.abc
towand.compat.abc
for Python-3.8. [#394 by Tero Vuotila] - Update
wand.display
to use Python3 compatibleprint()
function. [#395 by Tero Vuotila]
Version 0.5.0¶
Released on January 1, 2019.
Support for ImageMagick-7.
Improved support for 32-bit systems.
Improved support for non-Q16 libraries.
Removed README.rst from setup.py’s data_files. [#336]
Improved EXIF:ORIENTATION handling. [#364 by M. Skrzypek]
Tolerate failures while accessing wand.api. [#220 by Utkarsh Upadhyay]
Added support for Image Artifacts through
Image.artifacts
. [#369]Added optional stroke color/width parameters for
Font
.Image layers support (#22)
- Added
Image.coalesce()
method. - Added
Image.deconstruct
method. - Added
Image.dispose
property. - Added
Image.optimize_layers()
method. - Added
Image.optimize_transparency()
method.
- Added
Implemented
__array_interface__()
for NumPy [#65]Migrated the following methods & attributes from
Image
toBaseImage
for a more uniformed code-base.Image.compression
Image.format
Image.auto_orient()
Image.border()
Image.contrast_stretch()
Image.gamma()
Image.level()
Image.linear_stretch()
Image.normalize()
Image.strip()
Image.transpose()
Image.transverse()
Image.trim()
Added
Image.clut()
method.Added
Image.concat()
method. [#177]Added
Image.deskew()
method.Added
Image.despeckle()
method.Added
Image.edge()
method.Added
Image.emboss()
method. [#196]Added
Image.enhance()
method. [#132]Added
Image.export_pixels()
method.Added
Image.import_pixels()
method.Added
Image.morphology()
method. [#132]Added
Image.posterize()
method.Added
Image.shade()
method.Added
Image.shadow()
method.Added
Image.sharpen()
method. [#132]Added
Image.shave()
method.Added
Image.unique_colors()
method.Method
Drawing.draw()
now acceptsBaseImage
for folks extended classes.Added
Image.loop
property. [#227]Fixed
SingleImage.delay
property. [#153]Attribute
Image.font_antialias
has been deprecated in favor ofImage.antialias
. [#218]Fixed ordering of
COMPRESSION_TYPES
based on ImageMagick version. [#309]Fixed drawing on
SingleImage
. [#289]Fixed wrapping issue for larger offsets when using gravity kwarg in
Image.crop()
method. [#367]
0.4 series¶
Version 0.4.5¶
Released on November 12, 2018.
- 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]
- 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.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: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.