2024-01-08 19:35:01 +03:00
|
|
|
10.3.0
|
|
|
|
------
|
|
|
|
|
2024-03-15 03:21:00 +03:00
|
|
|
Security
|
|
|
|
========
|
|
|
|
|
|
|
|
TODO
|
|
|
|
^^^^
|
|
|
|
|
|
|
|
TODO
|
|
|
|
|
|
|
|
:cve:`YYYY-XXXXX`: TODO
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
TODO
|
|
|
|
|
2024-01-08 19:35:01 +03:00
|
|
|
Backwards Incompatible Changes
|
|
|
|
==============================
|
|
|
|
|
|
|
|
TODO
|
|
|
|
^^^^
|
|
|
|
|
|
|
|
Deprecations
|
|
|
|
============
|
|
|
|
|
2024-01-08 03:27:41 +03:00
|
|
|
ImageCms constants and versions() function
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
A number of constants and a function in :py:mod:`.ImageCms` have been deprecated.
|
|
|
|
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.
|
|
|
|
|
2024-01-09 10:22:10 +03:00
|
|
|
============================================ ====================================================
|
|
|
|
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__``
|
|
|
|
============================================ ====================================================
|
2024-01-08 19:35:01 +03:00
|
|
|
|
|
|
|
API Changes
|
|
|
|
===========
|
|
|
|
|
2024-03-25 02:35:00 +03:00
|
|
|
Added alpha_quality argument when saving WebP images
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
When saving WebP images, an ``alpha_quality`` argument can be passed to the encoder. It
|
|
|
|
is an integer value between 0 to 100, where values other than 100 will provide lossy
|
|
|
|
compression.
|
|
|
|
|
2024-03-25 02:02:19 +03:00
|
|
|
Negative kmeans error
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^
|
2024-01-08 19:35:01 +03:00
|
|
|
|
2024-03-25 02:02:19 +03:00
|
|
|
When calling :py:meth:`~PIL.Image.Image.quantize`, a negative ``kmeans`` will now
|
|
|
|
raise a :py:exc:`ValueError`, unless a palette is supplied to make the value redundant.
|
2024-01-08 19:35:01 +03:00
|
|
|
|
2024-03-25 02:04:02 +03:00
|
|
|
Negative P1-P3 PPM value error
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
If a P1-P3 PPM image contains a negative value, a :py:exc:`ValueError` will now be
|
|
|
|
raised.
|
|
|
|
|
2024-01-08 19:35:01 +03:00
|
|
|
API Additions
|
|
|
|
=============
|
|
|
|
|
2024-01-09 04:22:25 +03:00
|
|
|
Added PerspectiveTransform
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
2024-01-08 19:35:01 +03:00
|
|
|
|
2024-01-09 04:22:25 +03:00
|
|
|
:py:class:`~PIL.ImageTransform.PerspectiveTransform` has been added, meaning
|
|
|
|
that all of the :py:data:`~PIL.Image.Transform` values now have a corresponding
|
|
|
|
subclass of :py:class:`~PIL.ImageTransform.Transform`.
|
2024-01-08 19:35:01 +03:00
|
|
|
|
|
|
|
Other Changes
|
|
|
|
=============
|
|
|
|
|
|
|
|
Portable FloatMap (PFM) images
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
Support has been added for reading and writing grayscale (Pf format)
|
|
|
|
Portable FloatMap (PFM) files containing ``F`` data.
|
2024-02-22 12:32:46 +03:00
|
|
|
|
|
|
|
Release GIL when fetching WebP frames
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
Python's Global Interpreter Lock is now released when fetching WebP frames from
|
|
|
|
the libwebp decoder.
|