8.4.0

API Changes

Deprecations

ImagePalette size parameter

The size parameter will be removed in Pillow 10.0.0 (2023-07-01).

Before Pillow 8.3.0, ImagePalette required palette data of particular lengths by default, and the size parameter could be used to override that. Pillow 8.3.0 removed the default required length, also removing the need for the size parameter.

API Additions

Added “transparency” argument for loading EPS images

This new argument switches the Ghostscript device from “ppmraw” to “pngalpha”, generating an RGBA image with a transparent background instead of an RGB image with a white background.

with Image.open("sample.eps") as im:
    im.load(transparency=True)

Added WalImageFile class

PIL.WalImageFile.open() previously returned a generic PIL.Image.Image instance. It now returns a dedicated PIL.WalImageFile.WalImageFile class.

Other Changes

Speed improvement when rotating square images

Starting with Pillow 3.3.0, the speed of rotating images by 90 or 270 degrees was improved by quickly returning transpose() instead, if the rotate operation allowed for expansion and did not specify a center or post-rotate translation.

Since the expand flag makes no difference for square images though, Pillow now uses this faster method for square images without the expand flag as well.