Rather than specifying a font when calling text-related ImageDraw methods, or setting a font on each ImageDraw instance, the default font can now be set for all future ImageDraw operations:
from PIL import ImageDraw, ImageFont ImageDraw.ImageDraw.font = ImageFont.truetype("Tests/fonts/FreeMono.ttf")
Multiple MPO frames can now be saved. Using the save_all
argument, all of
an image's frames will be saved to file:
from PIL import Image im = Image.open("frozenpond.mpo") im.save(out, save_all=True)
Additional images can also be appended when saving, by combining the
save_all
argument with the append_images
argument:
im.save(out, save_all=True, append_images=[im1, im2, ...])
The data from :py:data:`~PIL.ExifTags.TAGS` and
:py:data:`~PIL.ExifTags.GPSTAGS` is now also exposed as enum.IntEnum
classes: :py:data:`~PIL.ExifTags.Base` and :py:data:`~PIL.ExifTags.GPS`.
Within the BLP image format, BLP1 data may use JPEG compression. Instead of telling the JPEG library that this data is in BGRX mode, Pillow will now decode the data in its natural CMYK mode, then convert it to RGB and rearrange the channels afterwards. Trying to load the data in an incorrect mode could result in a segmentation fault. This issue was introduced in Pillow 9.1.0.
Pillow 9.2.0 had wheels built against Python 3.11 beta, available as a preview to help others prepare for 3.11, and ensure Pillow can be used immediately on release day of 3.11.0 final (2022-10-24, PEP 664).
Pillow 9.3.0 now officially includes binary wheels for Python 3.11 final.
This release contains wheels for Windows built using GitHub Actions.
Previously they were built by Christoph Gohlke.
A huge thanks to Christoph for building Windows binaries for us for around a decade, plus testing, and fixing over a hundred bug fixes along the way, in addition to building and hosting unofficial Windows binaries for hundreds of Python projects!
Support has been added to read the ATI1, ATI2 and BC6H formats of DDS images.
Python's Global Interpreter Lock is now released when converting images using matrix operations.
When calling :py:meth:`~PIL.Image.Image.show` or using :py:mod:`~PIL.ImageShow`, all frames will now be shown.