7.1.0
API Changes
Allow saving of zero quality JPEG images
If no quality was specified when saving a JPEG, Pillow internally used a valueof zero to indicate that the default quality should be used. However, thisremoved the ability to actually save a JPEG with zero quality. This has nowbeen resolved.
- from PIL import Image
- im = Image.open("hopper.jpg")
- im.save("out.jpg", quality=0)
API Additions
New channel operations
Three new channel operations have been added: soft_light()
,hard_light()
and overlay()
.
PILLOW_VERSION constant
PILLOWVERSION
has been re-added but is deprecated and will be removed in a futurerelease. Use _version
instead.
It was initially removed in Pillow 7.0.0, but brought back in 7.1.0 to give projectsmore time to upgrade.
Reading JPEG comments
When opening a JPEG image, the comment may now be read intoinfo
.
Support for different charset encodings in PcfFontFile
Previously PcfFontFile
output only bitmap PIL fonts with ISO 8859-1 encoding, eventhough the PCF format supports Unicode, making it hard to work with Pillow with bitmapfonts in languages which use different character sets.
Now it’s possible to set a different charset encoding in PcfFontFile
’s classconstructor. By default, it generates a PIL font file with ISO 8859-1 as before. Thegenerated PIL font file still contains up to 256 characters, but the character set isdifferent depending on the selected encoding.
To use such a font with ImageDraw.text
, call it with a bytes object with the sameencoding as the font file.
X11 ImageGrab.grab()
Support has been added for ImageGrab.grab()
on Linux using the X serverwith the XCB library.
An optional xdisplay
parameter has been added to select the X server,with the default value of None
using the default X server.
Passing a different value on Windows or macOS will force taking a snapshotusing the selected X server; pass an empty string to use the default X server.XCB support is not included in pre-compiled wheels for Windows and macOS.
Other Changes
If present, only use alpha channel for bounding box
When the getbbox()
method calculates the boundingbox, for an RGB image it trims black pixels. Similarly, for an RGBA image itwould trim black transparent pixels. This is now changed so that if an imagehas an alpha channel (RGBA, RGBa, PA, LA, La), any transparent pixels aretrimmed.
Improved APNG support
Added support for reading and writing Animated Portable Network Graphics (APNG) images.The PNG plugin now supports using the seek()
method and theIterator
class to read APNG frame sequences.The PNG plugin also now supports using the append_images
argument to write APNG framesequences. See APNG sequences for further details.