Skip to content

Latest commit

 

History

History
179 lines (130 loc) · 7.43 KB

10.0.0.rst

File metadata and controls

179 lines (130 loc) · 7.43 KB

10.0.0

Backwards Incompatible Changes

Categories

im.category has been removed, along with the related Image.NORMAL, Image.SEQUENCE and Image.CONTAINER attributes.

To determine if an image has multiple frames or not, getattr(im, "is_animated", False) can be used instead.

Tk/Tcl 8.4

Support for Tk/Tcl 8.4 has been removed.

JpegImagePlugin.convert_dict_qtables

Since deprecation in Pillow 8.3.0, the convert_dict_qtables method no longer performed any operations on the data given to it, and has been removed.

ImagePalette size parameter

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.

ImageShow.Viewer.show_file file argument

The file argument in :py~PIL.ImageShow.Viewer.show_file() has been removed and replaced by path.

In effect, viewer.show_file("test.jpg") will continue to work unchanged.

Constants

A number of constants have been removed. Instead, enum.IntEnum classes have been added.

Removed Use instead
Image.LINEAR Image.BILINEAR or Image.Resampling.BILINEAR
Image.CUBIC Image.BICUBIC or Image.Resampling.BICUBIC
Image.ANTIALIAS Image.LANCZOS or Image.Resampling.LANCZOS
ImageCms.INTENT_PERCEPTUAL ImageCms.Intent.PERCEPTUAL
ImageCms.INTENT_RELATIVE_COLORMETRIC ImageCms.Intent.RELATIVE_COLORMETRIC
ImageCms.INTENT_SATURATION ImageCms.Intent.SATURATION
ImageCms.INTENT_ABSOLUTE_COLORIMETRIC ImageCms.Intent.ABSOLUTE_COLORIMETRIC
ImageCms.DIRECTION_INPUT ImageCms.Direction.INPUT
ImageCms.DIRECTION_OUTPUT ImageCms.Direction.OUTPUT
ImageCms.DIRECTION_PROOF ImageCms.Direction.PROOF
ImageFont.LAYOUT_BASIC ImageFont.Layout.BASIC
ImageFont.LAYOUT_RAQM ImageFont.Layout.RAQM
BlpImagePlugin.BLP_FORMAT_JPEG BlpImagePlugin.Format.JPEG
BlpImagePlugin.BLP_ENCODING_UNCOMPRESSED BlpImagePlugin.Encoding.UNCOMPRESSED
BlpImagePlugin.BLP_ENCODING_DXT BlpImagePlugin.Encoding.DXT
BlpImagePlugin.BLP_ENCODING_UNCOMPRESSED_RAW_RGBA BlpImagePlugin.Encoding.UNCOMPRESSED_RAW_RGBA
BlpImagePlugin.BLP_ALPHA_ENCODING_DXT1 BlpImagePlugin.AlphaEncoding.DXT1
BlpImagePlugin.BLP_ALPHA_ENCODING_DXT3 BlpImagePlugin.AlphaEncoding.DXT3
BlpImagePlugin.BLP_ALPHA_ENCODING_DXT5 BlpImagePlugin.AlphaEncoding.DXT5
FtexImagePlugin.FORMAT_DXT1 FtexImagePlugin.Format.DXT1
FtexImagePlugin.FORMAT_UNCOMPRESSED FtexImagePlugin.Format.UNCOMPRESSED
PngImagePlugin.APNG_DISPOSE_OP_NONE PngImagePlugin.Disposal.OP_NONE
PngImagePlugin.APNG_DISPOSE_OP_BACKGROUND PngImagePlugin.Disposal.OP_BACKGROUND
PngImagePlugin.APNG_DISPOSE_OP_PREVIOUS PngImagePlugin.Disposal.OP_PREVIOUS
PngImagePlugin.APNG_BLEND_OP_SOURCE PngImagePlugin.Blend.OP_SOURCE
PngImagePlugin.APNG_BLEND_OP_OVER PngImagePlugin.Blend.OP_OVER

FitsStubImagePlugin

The stub image plugin FitsStubImagePlugin has been removed. FITS images can be read without a handler through ~PIL.FitsImagePlugin instead.

Font size and offset methods

Several functions for computing the size and offset of rendered text have been removed:

Removed Use instead
FreeTypeFont.getsize() and FreeTypeFont.getoffset() :py.FreeTypeFont.getbbox and :py.FreeTypeFont.getlength
FreeTypeFont.getsize_multiline() :py.ImageDraw.multiline_textbbox
ImageFont.getsize() :py.ImageFont.getbbox and :py.ImageFont.getlength
TransposedFont.getsize() :py.TransposedFont.getbbox and :py.TransposedFont.getlength
ImageDraw.textsize() and ImageDraw.multiline_textsize() :py.ImageDraw.textbbox, :py.ImageDraw.textlength and :py.ImageDraw.multiline_textbbox
ImageDraw2.Draw.textsize() :py.ImageDraw2.Draw.textbbox and :py.ImageDraw2.Draw.textlength

FreeTypeFont.getmask2 fill parameter

The undocumented fill parameter of :py.FreeTypeFont.getmask2 has been removed.

PhotoImage.paste box parameter

The box parameter was unused and has been removed.

PyQt5 and PySide2

Qt 5 reached end-of-life on 2020-12-08 for open-source users (and will reach EOL on 2023-12-08 for commercial licence holders).

Support for PyQt5 and PySide2 has been removed from ImageQt. Upgrade to PyQt6 or PySide6 instead.

Image.coerce_e

This undocumented method has been removed.

Deprecations

TODO

TODO

API Changes

Added line width parameter to ImageDraw regular_polygon

An optional line width parameter has been added to ImageDraw.Draw.regular_polygon.

API Additions

TODO

TODO

Security

TODO

TODO

Other Changes

Support display_jpeg() in IPython

In addition to display() and display_png, display_jpeg() can now also be used to display images in IPython:

from PIL import Image
from IPython.display import display_jpeg

im = Image.new("RGB", (100, 100), (255, 0, 0))
display_jpeg(im)

Support reading signed 8-bit TIFF images

TIFF images with signed integer data, 8 bits per sample and a photometric interpretaton of BlackIsZero can now be read.