mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-26 18:06:18 +03:00
109 lines
3.6 KiB
ReStructuredText
109 lines
3.6 KiB
ReStructuredText
9.3.0
|
|
-----
|
|
|
|
API Additions
|
|
=============
|
|
|
|
Allow default ImageDraw font to be set
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
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")
|
|
|
|
Saving multiple MPO frames
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
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, ...])
|
|
|
|
Added ExifTags enums
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
The data from :py:data:`~PIL.ExifTags.TAGS` and
|
|
:py:data:`~PIL.ExifTags.GPSTAGS` is now also exposed as
|
|
:py:class:`enum.IntEnum` classes: :py:data:`~PIL.ExifTags.Base` and
|
|
:py:data:`~PIL.ExifTags.GPS`.
|
|
|
|
|
|
Security
|
|
========
|
|
|
|
Initialize libtiff buffer when saving
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
When saving a TIFF image to a file object using libtiff, the buffer was not
|
|
initialized. This behaviour introduced in Pillow 2.0.0, and has now been fixed.
|
|
|
|
Decode JPEG compressed BLP1 data in original mode
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
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.
|
|
|
|
Limit SAMPLESPERPIXEL to avoid runtime DOS
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
A large value in the ``SAMPLESPERPIXEL`` tag could lead to a memory and runtime DOS in
|
|
``TiffImagePlugin.py`` when setting up the context for image decoding.
|
|
This was introduced in Pillow 9.2.0, found with `OSS-Fuzz`_ and fixed by limiting
|
|
``SAMPLESPERPIXEL`` to the number of planes that we can decode.
|
|
|
|
|
|
Other Changes
|
|
=============
|
|
|
|
Python 3.11 wheels
|
|
^^^^^^^^^^^^^^^^^^
|
|
|
|
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.
|
|
|
|
Windows wheels
|
|
^^^^^^^^^^^^^^
|
|
|
|
This release contains wheels for Windows built using GitHub Actions.
|
|
|
|
Previously they were built by `Christoph Gohlke <https://www.cgohlke.com/>`_.
|
|
|
|
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!
|
|
|
|
Added DDS ATI1, ATI2 and BC6H reading
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
Support has been added to read the ATI1, ATI2 and BC6H formats of DDS images.
|
|
|
|
Release GIL when converting images using matrix operations
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
Python's Global Interpreter Lock is now released when converting images using matrix
|
|
operations.
|
|
|
|
Show all frames with ImageShow
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
When calling :py:meth:`~PIL.Image.Image.show` or using
|
|
:py:mod:`~PIL.ImageShow`, all frames will now be shown.
|
|
|
|
.. _OSS-Fuzz: https://github.com/google/oss-fuzz
|