10.1.0#
API Changes#
Setting image mode#
If you attempt to set the mode of an image directly, e.g.
im.mode = "RGBA"
, you will now receive an AttributeError
. This is
not about removing existing functionality, but instead about raising an
explicit error to prevent later consequences. The convert
method is the
correct way to change an image’s mode.
Accept a list in getpixel()#
getpixel()
now accepts a list of coordinates, as well
as a tuple.
from PIL import Image
im = Image.new("RGB", (1, 1))
im.getpixel((0, 0))
im.getpixel([0, 0])
BoxBlur and GaussianBlur allow for different x and y radii#
BoxBlur
and
GaussianBlur
now allow a sequence of x and y radii
to be specified, rather than a single number for both dimensions.
from PIL import ImageFilter
ImageFilter.BoxBlur((2, 5))
ImageFilter.GaussianBlur((2, 5))
API Additions#
EpsImagePlugin.gs_binary#
EpsImagePlugin.gs_windows_binary
stores the name of the Ghostscript
executable on Windows. EpsImagePlugin.gs_binary
has now been added for all
platforms, and can be used to customise the name of the executable, or disable
use entirely through EpsImagePlugin.gs_binary = False
.
has_transparency_data#
Images now have has_transparency_data
to indicate
whether the image has transparency data, whether in the form of an alpha
channel, a palette with an alpha channel, or a “transparency” key in the
info
dictionary.
Even if this attribute is true, the image might still appear solid, if all of the values shown within are opaque.
ImageOps.cover#
Returns a resized version of the image, so that the requested size is covered, while maintaining the original aspect ratio.
See Resize relative to a given size for a comparison between this and similar ImageOps
methods.
size and font_size arguments when using default font#
Pillow has had a “better than nothing” default font, which can only be drawn at one font size. Now, if FreeType support is available, a version of Aileron Regular is loaded, which can be drawn at chosen font sizes.
The following size
and font_size
arguments can now be used to specify a
font size for this new builtin font:
ImageFont.load_default(size=24)
draw.text((0, 0), "test", font_size=24)
draw.textlength((0, 0), "test", font_size=24)
draw.textbbox((0, 0), "test", font_size=24)
draw.multiline_text((0, 0), "test", font_size=24)
draw.multiline_textbbox((0, 0), "test", font_size=24)
Other Changes#
Added support for DDS BC5U and 8-bit color indexed images#
Support has been added to read BC5U DDS files as RGB images, and PALETTEINDEXED8 DDS files as P mode images.
Support reading signed 8-bit YCbCr TIFF images#
TIFF images with unsigned integer data, 8 bits per sample and a photometric interpretation of YCbCr can now be read.