mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-10-19 18:24:43 +03:00
175 lines
6.3 KiB
ReStructuredText
175 lines
6.3 KiB
ReStructuredText
12.0.0
|
|
------
|
|
|
|
Security
|
|
========
|
|
|
|
TODO
|
|
^^^^
|
|
|
|
TODO
|
|
|
|
:cve:`YYYY-XXXXX`: TODO
|
|
^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
TODO
|
|
|
|
Backwards incompatible changes
|
|
==============================
|
|
|
|
Python 3.9
|
|
^^^^^^^^^^
|
|
|
|
Pillow has dropped support for Python 3.9,
|
|
which reached end-of-life in October 2025.
|
|
|
|
ImageFile.raise_oserror
|
|
^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
``ImageFile.raise_oserror()`` has been removed. The function was undocumented and was
|
|
only useful for translating error codes returned by a codec's ``decode()`` method,
|
|
which ImageFile already did automatically.
|
|
|
|
IptcImageFile helper functions
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
The functions ``IptcImageFile.dump`` and ``IptcImageFile.i``, and the constant
|
|
``IptcImageFile.PAD`` have been removed. These were undocumented helper functions
|
|
intended for internal use, so there is no replacement. They can each be replaced by a
|
|
single line of code using builtin functions in Python.
|
|
|
|
ImageCms constants and versions() function
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
A number of constants and a function in :py:mod:`.ImageCms` have been removed. This
|
|
includes a table of flags based on LittleCMS version 1 which has been replaced with a
|
|
new class :py:class:`.ImageCms.Flags` based on LittleCMS 2 flags.
|
|
|
|
============================================ ====================================================
|
|
Deprecated Use instead
|
|
============================================ ====================================================
|
|
``ImageCms.DESCRIPTION`` No replacement
|
|
``ImageCms.VERSION`` ``PIL.__version__``
|
|
``ImageCms.FLAGS["MATRIXINPUT"]`` :py:attr:`.ImageCms.Flags.CLUT_POST_LINEARIZATION`
|
|
``ImageCms.FLAGS["MATRIXOUTPUT"]`` :py:attr:`.ImageCms.Flags.FORCE_CLUT`
|
|
``ImageCms.FLAGS["MATRIXONLY"]`` No replacement
|
|
``ImageCms.FLAGS["NOWHITEONWHITEFIXUP"]`` :py:attr:`.ImageCms.Flags.NOWHITEONWHITEFIXUP`
|
|
``ImageCms.FLAGS["NOPRELINEARIZATION"]`` :py:attr:`.ImageCms.Flags.CLUT_PRE_LINEARIZATION`
|
|
``ImageCms.FLAGS["GUESSDEVICECLASS"]`` :py:attr:`.ImageCms.Flags.GUESSDEVICECLASS`
|
|
``ImageCms.FLAGS["NOTCACHE"]`` :py:attr:`.ImageCms.Flags.NOCACHE`
|
|
``ImageCms.FLAGS["NOTPRECALC"]`` :py:attr:`.ImageCms.Flags.NOOPTIMIZE`
|
|
``ImageCms.FLAGS["NULLTRANSFORM"]`` :py:attr:`.ImageCms.Flags.NULLTRANSFORM`
|
|
``ImageCms.FLAGS["HIGHRESPRECALC"]`` :py:attr:`.ImageCms.Flags.HIGHRESPRECALC`
|
|
``ImageCms.FLAGS["LOWRESPRECALC"]`` :py:attr:`.ImageCms.Flags.LOWRESPRECALC`
|
|
``ImageCms.FLAGS["GAMUTCHECK"]`` :py:attr:`.ImageCms.Flags.GAMUTCHECK`
|
|
``ImageCms.FLAGS["WHITEBLACKCOMPENSATION"]`` :py:attr:`.ImageCms.Flags.BLACKPOINTCOMPENSATION`
|
|
``ImageCms.FLAGS["BLACKPOINTCOMPENSATION"]`` :py:attr:`.ImageCms.Flags.BLACKPOINTCOMPENSATION`
|
|
``ImageCms.FLAGS["SOFTPROOFING"]`` :py:attr:`.ImageCms.Flags.SOFTPROOFING`
|
|
``ImageCms.FLAGS["PRESERVEBLACK"]`` :py:attr:`.ImageCms.Flags.NONEGATIVES`
|
|
``ImageCms.FLAGS["NODEFAULTRESOURCEDEF"]`` :py:attr:`.ImageCms.Flags.NODEFAULTRESOURCEDEF`
|
|
``ImageCms.FLAGS["GRIDPOINTS"]`` :py:attr:`.ImageCms.Flags.GRIDPOINTS()`
|
|
``ImageCms.versions()`` :py:func:`PIL.features.version_module` with
|
|
``feature="littlecms2"``, :py:data:`sys.version` or
|
|
:py:data:`sys.version_info`, and ``PIL.__version__``
|
|
============================================ ====================================================
|
|
|
|
ImageMath eval()
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
``ImageMath.eval()`` has been removed. Use :py:meth:`~PIL.ImageMath.lambda_eval` or
|
|
:py:meth:`~PIL.ImageMath.unsafe_eval` instead.
|
|
|
|
BGR;15, BGR 16 and BGR;24
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
The experimental BGR;15, BGR;16 and BGR;24 modes have been removed.
|
|
|
|
Non-image modes in ImageCms
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
The use in :py:mod:`.ImageCms` of input modes and output modes that are not Pillow
|
|
image modes has been removed. Defaulting to "L" or "1" if the mode cannot be mapped has
|
|
also been removed.
|
|
|
|
Support for LibTIFF earlier than 4
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
Support for LibTIFF earlier than version 4 has been removed.
|
|
Upgrade to a newer version of LibTIFF instead.
|
|
|
|
ImageDraw.getdraw hints parameter
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
The ``hints`` parameter in :py:meth:`~PIL.ImageDraw.getdraw()` has been removed.
|
|
|
|
FreeType 2.9.0
|
|
^^^^^^^^^^^^^^
|
|
|
|
Support for FreeType 2.9.0 has been removed. FreeType 2.9.1 is the minimum version
|
|
supported.
|
|
|
|
We recommend upgrading to at least FreeType `2.10.4`_, which fixed a severe
|
|
vulnerability introduced in FreeType 2.6 (:cve:`2020-15999`).
|
|
|
|
.. _2.10.4: https://sourceforge.net/projects/freetype/files/freetype2/2.10.4/
|
|
|
|
Deprecations
|
|
============
|
|
|
|
Image._show
|
|
^^^^^^^^^^^
|
|
|
|
``Image._show`` has been deprecated, and will be removed in Pillow 13 (2026-10-15).
|
|
Use :py:meth:`~PIL.ImageShow.show` instead.
|
|
|
|
ImageCms.ImageCmsProfile.product_name and .product_info
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
``ImageCms.ImageCmsProfile.product_name`` and the corresponding
|
|
``.product_info`` attributes have been deprecated, and will be removed in
|
|
Pillow 13 (2026-10-15). They have been set to ``None`` since Pillow 2.3.0.
|
|
|
|
API changes
|
|
===========
|
|
|
|
TODO
|
|
^^^^
|
|
|
|
TODO
|
|
|
|
API additions
|
|
=============
|
|
|
|
TODO
|
|
^^^^
|
|
|
|
TODO
|
|
|
|
Other changes
|
|
=============
|
|
|
|
Python 3.14
|
|
^^^^^^^^^^^
|
|
|
|
Pillow 11.3.0 had wheels built against Python 3.14 beta, available as a preview to help
|
|
others prepare for 3.14, and to ensure Pillow could be used immediately at the release
|
|
of 3.14.0 final (2025-10-07, :pep:`745`).
|
|
|
|
Pillow 12.0.0 now officially supports Python 3.14.
|
|
|
|
Image.fromarray mode parameter
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
In Pillow 11.3.0, the ``mode`` parameter in :py:meth:`~PIL.Image.fromarray()` was
|
|
deprecated. Part of this functionality has been restored in Pillow 12.0.0. Since pixel
|
|
values do not contain information about palettes or color spaces, the parameter can be
|
|
used to place grayscale L mode data within a P mode image, or read RGB data as YCbCr
|
|
for example.
|
|
|
|
ImageMorph operations must have length 1
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
Valid ImageMorph operations are 4, N, 1 and M. By limiting the length to 1 character
|
|
within Pillow, long execution times can be avoided if a user provided long pattern
|
|
strings. Reported by Jang Choi (https://github.com/uko3211).
|