Skip to content

Latest commit

 

History

History
77 lines (55 loc) · 2.49 KB

7.1.0.rst

File metadata and controls

77 lines (55 loc) · 2.49 KB

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 value of zero to indicate that the default quality should be used. However, this removed the ability to actually save a JPEG with zero quality. This has now been 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: :py~PIL.ImageChops.soft_light, :py~PIL.ImageChops.hard_light and :py~PIL.ImageChops.overlay.

PILLOW_VERSION constant

PILLOW_VERSION has been re-added but is deprecated and will be removed in a future release. Use __version__ instead.

It was initially removed in Pillow 7.0.0, but brought back in 7.1.0 to give projects more time to upgrade.

Reading JPEG comments

When opening a JPEG image, the comment may now be read into :py~PIL.Image.Image.info.

X11 ImageGrab.grab()

Support has been added for ImageGrab.grab() on Linux using the X server with 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 snapshot using 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 :py~PIL.Image.Image.getbbox method calculates the bounding box, for an RGB image it trims black pixels. Similarly, for an RGBA image it would trim black transparent pixels. This is now changed so that if an image has an alpha channel (RGBA, RGBa, PA, LA, La), any transparent pixels are trimmed.

Improved APNG support

Added support for reading and writing Animated Portable Network Graphics (APNG) images. The PNG plugin now supports using the :py~PIL.Image.Image.seek method and the :py~PIL.ImageSequence.Iterator class to read APNG frame sequences. The PNG plugin also now supports using the append_images argument to write APNG frame sequences. See apng-sequences for further details.