Add GIF LZW encoding to 8.2.0 release notes.

This commit is contained in:
Ray Gardner 2021-03-31 06:48:17 -06:00
parent 306d030fce
commit d6dfdd3617

View File

@ -10,6 +10,16 @@ Tk/Tcl 8.4
Support for Tk/Tcl 8.4 is deprecated and will be removed in Pillow 10.0.0 (2023-01-02),
when Tk/Tcl 8.5 will be the minimum supported.
Categories
^^^^^^^^^^
``im.category`` is deprecated and will be removed in Pillow 10.0.0 (2023-01-02),
along with the related ``Image.NORMAL``, ``Image.SEQUENCE`` and
``Image.CONTAINER`` attributes.
To determine if an image has multiple frames or not,
``getattr(im, "is_animated", False)`` can be used instead.
API Changes
===========
@ -35,6 +45,14 @@ This is now consistent with other IFDs, and must be accessed through
These changes only affect :py:meth:`~PIL.Image.Image.getexif`, introduced in Pillow
6.0. The older ``_getexif()`` methods are unaffected.
Image._MODEINFO
^^^^^^^^^^^^^^^
This internal dictionary has been deprecated by a comment since PIL, and is now
removed. Instead, ``Image.getmodebase()``, ``Image.getmodetype()``,
``Image.getmodebandnames()``, ``Image.getmodebands()`` or ``ImageMode.getmode()``
can be used.
API Additions
=============
@ -73,6 +91,15 @@ be specified through a keyword argument::
im.save("out.tif", icc_profile=...)
ImageOps.autocontrast: preserve_tone
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The default behaviour of :py:meth:`~PIL.ImageOps.autocontrast` is to normalize
separate histograms for each color channel, changing the tone of the image. The new
``preserve_tone`` argument keeps the tone unchanged by using one luminance histogram
for all channels.
Security
========
@ -81,6 +108,34 @@ TODO
Other Changes
=============
GIF writer uses LZW encoding
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
GIF files are now written using LZW encoding, which will generate smaller files,
typically about 70% of the size generated by the older encoder.
The pixel data is encoded using the format specified in the [Compuserve GIF
standard](https://www.w3.org/Graphics/GIF/spec-gif89a.txt). The older encoder
used a variant of run-length encoding that was compatible but less efficient.
Libraqm and FriBiDi linking
^^^^^^^^^^^^^^^^^^^^^^^^^^^
The way the libraqm dependency for complex text scripts is linked has been changed:
Source builds will now link against the system version of libraqm at build time
rather than at runtime by default.
Binary wheels now include a statically linked modified version of libraqm that
links against FriBiDi at runtime instead. This change is intended to address
issues with the previous implementation on some platforms. These are created
by building Pillow with the new build flags ``--vendor-raqm --vendor-fribidi``.
Windows users will now need to install ``fribidi.dll`` (or ``fribidi-0.dll``) only,
``libraqm.dll`` is no longer used.
See :doc:`installation documentation<../installation>` for more information.
PyQt6
^^^^^