Pillow/docs/releasenotes/5.3.0.rst
2023-11-01 20:18:25 +02:00

69 lines
2.5 KiB
ReStructuredText

5.3.0
-----
API Changes
===========
Image size
^^^^^^^^^^
If you attempt to set the size of an image directly, e.g.
``im.size = (100, 100)``, you will now receive an :py:exc:`AttributeError`. This is
not about removing existing functionality, but instead about raising an
explicit error to prevent later consequences. The ``resize`` method is the
correct way to change an image's size.
The exceptions to this are:
* The ICO and ICNS image formats, which use ``im.size = (100, 100)`` to select a subimage.
* The TIFF image format, which now has a :py:exc:`DeprecationWarning` for this action,
as direct image size setting was previously necessary to work around an issue with tile extents.
API Additions
=============
Added line width parameter to rectangle and ellipse-based shapes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
An optional line ``width`` parameter has been added to ``ImageDraw.Draw.arc``,
``chord``, ``ellipse``, ``pieslice`` and ``rectangle``.
Curved joints for line sequences
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
``ImageDraw.Draw.line`` draws a line, or lines, between points. Previously,
when multiple points are given, for a larger ``width``, the joints between
these lines looked unsightly. There is now an additional optional argument,
``joint``, defaulting to :data:`None`. When it is set to ``curved``, the joints
between the lines will become rounded.
ImageOps.colorize
^^^^^^^^^^^^^^^^^
Previously ``ImageOps.colorize`` only supported two-color mapping with
``black`` and ``white`` arguments being mapped to 0 and 255 respectively.
Now it supports three-color mapping with the optional ``mid`` parameter, and
the positions for all three color arguments can each be optionally specified
(``blackpoint``, ``whitepoint`` and ``midpoint``).
For example, with all optional arguments::
ImageOps.colorize(im, black=(32, 37, 79), white='white', mid=(59, 101, 175),
blackpoint=15, whitepoint=240, midpoint=100)
ImageOps.pad
^^^^^^^^^^^^
While ``ImageOps.fit`` allows users to crop images to a requested aspect ratio
and size, new method ``ImageOps.pad`` pads images to fill a requested aspect
ratio and size, filling new space with a provided ``color`` and positioning the
image within the new area through a ``centering`` argument.
Other Changes
=============
Added support for reading tiled TIFF images through LibTIFF. Compressed TIFF
images are now read through LibTIFF.
RGB WebP images are now read as RGB mode, rather than RGBX.