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.
Support for Tk/Tcl 8.4 has been removed.
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.
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.
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.
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 |
The stub image plugin FitsStubImagePlugin
has been removed. FITS images can be read without a handler through ~PIL.FitsImagePlugin
instead.
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 |
The undocumented fill
parameter of :py.FreeTypeFont.getmask2
has been removed.
The box
parameter was unused and has been removed.
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.
This undocumented method has been removed.
TODO
An optional line width
parameter has been added to ImageDraw.Draw.regular_polygon
.
TODO
TODO
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)
TIFF images with signed integer data, 8 bits per sample and a photometric interpretaton of BlackIsZero can now be read.