Update release notes to match template for #7864

- Categorized previously uncategorized notes under ``Other Changes``
- TODO: Fix categorization of notes in ``Other Changes`` that belong in other categories
This commit is contained in:
Alex Clark 2024-03-14 20:21:00 -04:00
parent f316fd9c7a
commit 180f37b18e
19 changed files with 178 additions and 129 deletions

View File

@ -1,6 +1,19 @@
10.3.0 10.3.0
------ ------
Security
========
TODO
^^^^
TODO
:cve:`YYYY-XXXXX`: TODO
^^^^^^^^^^^^^^^^^^^^^^^
TODO
Backwards Incompatible Changes Backwards Incompatible Changes
============================== ==============================
@ -63,14 +76,6 @@ Added PerspectiveTransform
that all of the :py:data:`~PIL.Image.Transform` values now have a corresponding that all of the :py:data:`~PIL.Image.Transform` values now have a corresponding
subclass of :py:class:`~PIL.ImageTransform.Transform`. subclass of :py:class:`~PIL.ImageTransform.Transform`.
Security
========
TODO
^^^^
TODO
Other Changes Other Changes
============= =============

View File

@ -1,15 +1,17 @@
2.7.0 2.7.0
===== -----
Other Changes
=============
Sane Plugin Sane Plugin
----------- ^^^^^^^^^^^
The Sane plugin has now been split into its own repo: The Sane plugin has now been split into its own repo:
https://github.com/python-pillow/Sane . https://github.com/python-pillow/Sane .
Png text chunk size limits Png text chunk size limits
-------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^
To prevent potential denial of service attacks using compressed text To prevent potential denial of service attacks using compressed text
chunks, there are now limits to the decompressed size of text chunks chunks, there are now limits to the decompressed size of text chunks
@ -24,7 +26,7 @@ default. The total decompressed size of all text chunks is limited to
know that there are large text blocks that are desired. know that there are large text blocks that are desired.
Image resizing filters Image resizing filters
---------------------- ^^^^^^^^^^^^^^^^^^^^^^
Image resizing methods :py:meth:`~PIL.Image.Image.resize` and Image resizing methods :py:meth:`~PIL.Image.Image.resize` and
:py:meth:`~PIL.Image.Image.thumbnail` take a ``resample`` argument, which tells :py:meth:`~PIL.Image.Image.thumbnail` take a ``resample`` argument, which tells
@ -33,7 +35,7 @@ which filter should be used for resampling. Possible values are:
were changed in this version. were changed in this version.
Bicubic and bilinear downscaling Bicubic and bilinear downscaling
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --------------------------------
From the beginning ``BILINEAR`` and ``BICUBIC`` filters were based on affine From the beginning ``BILINEAR`` and ``BICUBIC`` filters were based on affine
transformations and used a fixed number of pixels from the source image for transformations and used a fixed number of pixels from the source image for
@ -50,7 +52,7 @@ If you have previously used any tricks to maintain quality when downscaling with
steps), they are unnecessary now. steps), they are unnecessary now.
Antialias renamed to Lanczos Antialias renamed to Lanczos
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ----------------------------
A new ``LANCZOS`` constant was added instead of ``ANTIALIAS``. A new ``LANCZOS`` constant was added instead of ``ANTIALIAS``.
@ -64,19 +66,19 @@ The ``ANTIALIAS`` constant is left for backward compatibility and is an alias
for ``LANCZOS``. for ``LANCZOS``.
Lanczos upscaling quality Lanczos upscaling quality
^^^^^^^^^^^^^^^^^^^^^^^^^ -------------------------
The image upscaling quality with ``LANCZOS`` filter was almost the same as The image upscaling quality with ``LANCZOS`` filter was almost the same as
``BILINEAR`` due to a bug. This has been fixed. ``BILINEAR`` due to a bug. This has been fixed.
Bicubic upscaling quality Bicubic upscaling quality
^^^^^^^^^^^^^^^^^^^^^^^^^ -------------------------
The ``BICUBIC`` filter for affine transformations produced sharp, slightly The ``BICUBIC`` filter for affine transformations produced sharp, slightly
pixelated image for upscaling. Bicubic for convolutions is more soft. pixelated image for upscaling. Bicubic for convolutions is more soft.
Resize performance Resize performance
^^^^^^^^^^^^^^^^^^ ------------------
In most cases, convolution is more a expensive algorithm for downscaling In most cases, convolution is more a expensive algorithm for downscaling
because it takes into account all the pixels of source image. Therefore because it takes into account all the pixels of source image. Therefore
@ -93,7 +95,7 @@ The upscaling performance of the ``LANCZOS`` filter has remained the same. For
times. times.
Default filter for thumbnails Default filter for thumbnails
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -----------------------------
In Pillow 2.5 the default filter for :py:meth:`~PIL.Image.Image.thumbnail` was In Pillow 2.5 the default filter for :py:meth:`~PIL.Image.Image.thumbnail` was
changed from ``NEAREST`` to ``ANTIALIAS``. Antialias was chosen because all the changed from ``NEAREST`` to ``ANTIALIAS``. Antialias was chosen because all the
@ -103,7 +105,7 @@ other filters gave poor quality for reduction. Starting from Pillow 2.7.0,
uses supersampling internally, not convolutions. uses supersampling internally, not convolutions.
Image transposition Image transposition
------------------- ^^^^^^^^^^^^^^^^^^^
A new method ``TRANSPOSE`` has been added for the A new method ``TRANSPOSE`` has been added for the
:py:meth:`~PIL.Image.Image.transpose` operation in addition to :py:meth:`~PIL.Image.Image.transpose` operation in addition to
@ -115,7 +117,7 @@ The speed of ``ROTATE_90``, ``ROTATE_270`` and ``TRANSPOSE`` has been significan
improved for large images which don't fit in the processor cache. improved for large images which don't fit in the processor cache.
Gaussian blur and unsharp mask Gaussian blur and unsharp mask
------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The :py:meth:`~PIL.ImageFilter.GaussianBlur` implementation has been replaced The :py:meth:`~PIL.ImageFilter.GaussianBlur` implementation has been replaced
with a sequential application of box filters. The new implementation is based on with a sequential application of box filters. The new implementation is based on
@ -125,7 +127,7 @@ implementations use Gaussian blur internally, all changes from this chapter
are also applicable to it. are also applicable to it.
Blur radius Blur radius
^^^^^^^^^^^ -----------
There was an error in the previous version of Pillow, where blur radius (the There was an error in the previous version of Pillow, where blur radius (the
standard deviation of Gaussian) actually meant blur diameter. For example, to standard deviation of Gaussian) actually meant blur diameter. For example, to
@ -136,7 +138,7 @@ If you used a Gaussian blur with some radius value, you need to divide this
value by two. value by two.
Blur performance Blur performance
^^^^^^^^^^^^^^^^ ----------------
Box filter computation time is constant relative to the radius and depends Box filter computation time is constant relative to the radius and depends
on source image size only. Because the new Gaussian blur implementation on source image size only. Because the new Gaussian blur implementation
@ -148,7 +150,7 @@ second for radius 1, 3.6 seconds for radius 10 and 17 seconds for 50, now blur
with any radius on same image is executed for 0.2 seconds. with any radius on same image is executed for 0.2 seconds.
Blur quality Blur quality
^^^^^^^^^^^^ ------------
The previous implementation takes into account only source pixels within The previous implementation takes into account only source pixels within
2 * standard deviation radius for every destination pixel. This was not enough, 2 * standard deviation radius for every destination pixel. This was not enough,
@ -157,7 +159,7 @@ so the quality was worse compared to other Gaussian blur software.
The new implementation does not have this drawback. The new implementation does not have this drawback.
TIFF Parameter Changes TIFF Parameter Changes
---------------------- ^^^^^^^^^^^^^^^^^^^^^^
Several kwarg parameters for saving TIFF images were previously Several kwarg parameters for saving TIFF images were previously
specified as strings with included spaces (e.g. 'x resolution'). This specified as strings with included spaces (e.g. 'x resolution'). This

View File

@ -1,8 +1,11 @@
2.8.0 2.8.0
===== -----
Other Changes
=============
Open HTTP response objects with Image.open Open HTTP response objects with Image.open
------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
HTTP response objects returned from ``urllib2.urlopen(url)`` or HTTP response objects returned from ``urllib2.urlopen(url)`` or
``requests.get(url, stream=True).raw`` are 'file-like' but do not support ``.seek()`` ``requests.get(url, stream=True).raw`` are 'file-like' but do not support ``.seek()``

View File

@ -1,32 +1,8 @@
3.0.0 3.0.0
===== -----
Saving Multipage Images Deprecations
----------------------- ============
There is now support for saving multipage images in the ``GIF`` and
``PDF`` formats. To enable this functionality, pass in ``save_all=True``
as a keyword argument to the save::
im.save('test.pdf', save_all=True)
Tiff ImageFileDirectory Rewrite
-------------------------------
The Tiff ImageFileDirectory metadata code has been rewritten. Where
previously it returned a somewhat arbitrary set of values and tuples,
it now returns bare values where appropriate and tuples when the
metadata item is a sequence or collection.
The original metadata is still available in the TiffImage.tags, the
new values are available in the TiffImage.tags_v2 member. The old
structures will be deprecated at some point in the future. When
saving Tiff metadata, new code should use the
TiffImagePlugin.ImageFileDirectory_v2 class.
Deprecated Methods
------------------
Several methods that have been marked as deprecated for many releases Several methods that have been marked as deprecated for many releases
have been removed in this release:: have been removed in this release::
@ -42,8 +18,34 @@ have been removed in this release::
ImageWin.fromstring() ImageWin.fromstring()
ImageWin.tostring() ImageWin.tostring()
LibJpeg and Zlib are Required by Default Other Changes
---------------------------------------- =============
Saving Multipage Images
^^^^^^^^^^^^^^^^^^^^^^^
There is now support for saving multipage images in the ``GIF`` and
``PDF`` formats. To enable this functionality, pass in ``save_all=True``
as a keyword argument to the save::
im.save('test.pdf', save_all=True)
Tiff ImageFileDirectory Rewrite
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The Tiff ImageFileDirectory metadata code has been rewritten. Where
previously it returned a somewhat arbitrary set of values and tuples,
it now returns bare values where appropriate and tuples when the
metadata item is a sequence or collection.
The original metadata is still available in the TiffImage.tags, the
new values are available in the TiffImage.tags_v2 member. The old
structures will be deprecated at some point in the future. When
saving Tiff metadata, new code should use the
TiffImagePlugin.ImageFileDirectory_v2 class.
LibJpeg and Zlib are required by default
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The external dependencies on libjpeg and zlib are now required by default. The external dependencies on libjpeg and zlib are now required by default.
If the headers or libraries are not found, then installation will abort If the headers or libraries are not found, then installation will abort

View File

@ -1,9 +1,11 @@
3.1.0 3.1.0
===== -----
Other Changes
=============
ImageDraw arc, chord and pieslice can now use floats ImageDraw arc, chord and pieslice can now use floats
---------------------------------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
There is no longer a need to ensure that the start and end arguments for ``arc``, There is no longer a need to ensure that the start and end arguments for ``arc``,
``chord`` and ``pieslice`` are integers. ``chord`` and ``pieslice`` are integers.
@ -12,7 +14,7 @@ Note that these numbers are not simply rounded internally, but are actually
utilised in the drawing process. utilised in the drawing process.
Consistent multiline text spacing Consistent multiline text spacing
--------------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
When using the ``ImageDraw`` multiline methods, the spacing between When using the ``ImageDraw`` multiline methods, the spacing between
lines was inconsistent, based on the combination on ascenders and lines was inconsistent, based on the combination on ascenders and
@ -24,7 +26,7 @@ not the absolute height of each line.
There is also now a default spacing of 4px between lines. There is also now a default spacing of 4px between lines.
Exif, Jpeg and Tiff Metadata Exif, Jpeg and Tiff Metadata
---------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
There were major changes in the TIFF ImageFileDirectory support in There were major changes in the TIFF ImageFileDirectory support in
Pillow 3.0 that led to a number of regressions. Some of them have been Pillow 3.0 that led to a number of regressions. Some of them have been
@ -32,7 +34,7 @@ fixed in Pillow 3.1, and some of them have been extended to have
different behavior. different behavior.
TiffImagePlugin.IFDRational TiffImagePlugin.IFDRational
+++++++++++++++++++++++++++ ---------------------------
Pillow 3.0 changed rational metadata to use a float. In Pillow 3.1, Pillow 3.0 changed rational metadata to use a float. In Pillow 3.1,
this has changed to allow the expression of 0/0 as a valid piece of this has changed to allow the expression of 0/0 as a valid piece of
@ -50,7 +52,7 @@ This class should be used when adding a rational value to an
ImageFileDirectory for saving to image metadata. ImageFileDirectory for saving to image metadata.
JpegImagePlugin._getexif JpegImagePlugin._getexif
++++++++++++++++++++++++ ------------------------
In Pillow 3.0, the dictionary returned from the private, experimental, In Pillow 3.0, the dictionary returned from the private, experimental,
but generally widely used ``_getexif`` function changed to reflect the but generally widely used ``_getexif`` function changed to reflect the
@ -65,7 +67,7 @@ The format returned by Pillow 3.0 has been abandoned. A more fully
featured interface for EXIF is anticipated in a future release. featured interface for EXIF is anticipated in a future release.
Out of Spec Metadata Out of Spec Metadata
++++++++++++++++++++ --------------------
In Pillow 3.0 and 3.1, images that contain metadata that is internally In Pillow 3.0 and 3.1, images that contain metadata that is internally
consistent, but not in agreement with the TIFF spec, may cause an consistent, but not in agreement with the TIFF spec, may cause an

View File

@ -1,9 +1,11 @@
3.2.0 3.2.0
----- -----
Other Changes
=============
New DDS and FTEX Image Plugins New DDS and FTEX Image Plugins
============================== ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The ``DdsImagePlugin`` reading DXT1 and DXT5 encoded ``.dds`` images was The ``DdsImagePlugin`` reading DXT1 and DXT5 encoded ``.dds`` images was
added. DXT3 images are not currently supported. added. DXT3 images are not currently supported.
@ -14,7 +16,7 @@ per file, in the ``.ftc`` (compressed) and ``.ftu`` (uncompressed)
formats. formats.
Updates to the GbrImagePlugin Updates to the GbrImagePlugin
============================= ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The ``GbrImagePlugin`` (GIMP brush format) has been updated to fix The ``GbrImagePlugin`` (GIMP brush format) has been updated to fix
support for version 1 files and add support for version 2 files. support for version 1 files and add support for version 2 files.

View File

@ -1,8 +1,11 @@
3.3.0 3.3.0
----- -----
Other Changes
=============
Libimagequant support Libimagequant support
===================== ^^^^^^^^^^^^^^^^^^^^^
There is now support for using libimagequant as a higher quality There is now support for using libimagequant as a higher quality
quantization option in ``Image.quantize()`` on Unix-like quantization option in ``Image.quantize()`` on Unix-like
@ -12,7 +15,7 @@ differences.
New Setup.py options New Setup.py options
==================== ^^^^^^^^^^^^^^^^^^^^
There are two new options to control the ``build_ext`` task in ``setup.py``: There are two new options to control the ``build_ext`` task in ``setup.py``:
@ -24,9 +27,8 @@ There are two new options to control the ``build_ext`` task in ``setup.py``:
cross compilers that specify that information in via environment cross compilers that specify that information in via environment
variables. variables.
Resizing Resizing
======== ^^^^^^^^
Image resampling for 8-bit per channel images was rewritten using only integer Image resampling for 8-bit per channel images was rewritten using only integer
computings. This is faster on most platforms and doesn't introduce precision computings. This is faster on most platforms and doesn't introduce precision
@ -36,18 +38,16 @@ makes resampling 60% faster on average.
Color calculation for images in the ``LA`` mode on semitransparent pixels Color calculation for images in the ``LA`` mode on semitransparent pixels
was fixed. was fixed.
Rotation Rotation
======== ^^^^^^^^
Rotation for angles divisible by 90 degrees now always uses transposition. Rotation for angles divisible by 90 degrees now always uses transposition.
This greatly improves both quality and performance in this case. This greatly improves both quality and performance in this case.
Also, the bug with wrong image size calculation when rotating by 90 degrees Also, the bug with wrong image size calculation when rotating by 90 degrees
was fixed. was fixed.
Image Metadata Image Metadata
============== ^^^^^^^^^^^^^^
The return type for binary data in version 2 Exif and Tiff metadata The return type for binary data in version 2 Exif and Tiff metadata
has been changed from a tuple of integers to bytes. This is a change has been changed from a tuple of integers to bytes. This is a change

View File

@ -1,9 +1,11 @@
3.3.2 3.3.2
===== -----
Security
========
Integer overflow in Map.c Integer overflow in Map.c
------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^
Pillow prior to 3.3.2 may experience integer overflow errors in map.c Pillow prior to 3.3.2 may experience integer overflow errors in map.c
when reading specially crafted image files. This may lead to memory when reading specially crafted image files. This may lead to memory
@ -26,7 +28,7 @@ memory without duplicating the image first.
This issue was found by Cris Neckar at Divergent Security. This issue was found by Cris Neckar at Divergent Security.
Sign Extension in Storage.c Sign Extension in Storage.c
--------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Pillow prior to 3.3.2 and PIL 1.1.7 (at least) do not check for Pillow prior to 3.3.2 and PIL 1.1.7 (at least) do not check for
negative image sizes in ``ImagingNew`` in ``Storage.c``. A negative negative image sizes in ``ImagingNew`` in ``Storage.c``. A negative

View File

@ -1,9 +1,29 @@
3.4.0 3.4.0
----- -----
Deprecations
============
Deprecation Warning when Saving JPEGs
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
JPEG images cannot contain an alpha channel. Pillow prior to 3.4.0
silently drops the alpha channel. With this release Pillow will now
issue a :py:exc:`DeprecationWarning` when attempting to save a ``RGBA`` mode
image as a JPEG. This will become an error in Pillow 4.2.
Image.core.open_ppm removed
^^^^^^^^^^^^^^^^^^^^^^^^^^^
The nominally private/debugging function ``Image.core.open_ppm`` has
been removed. If you were using this function, please use
``Image.open`` instead.
Other changes
=============
New resizing filters New resizing filters
==================== ^^^^^^^^^^^^^^^^^^^^
Two new filters available for ``Image.resize()`` and ``Image.thumbnail()`` Two new filters available for ``Image.resize()`` and ``Image.thumbnail()``
functions: ``BOX`` and ``HAMMING``. ``BOX`` is the high-performance filter with functions: ``BOX`` and ``HAMMING``. ``BOX`` is the high-performance filter with
@ -14,23 +34,15 @@ two times shorter window than ``BILINEAR``. It can be used for image reduction
providing the image downscaling quality comparable to ``BICUBIC``. providing the image downscaling quality comparable to ``BICUBIC``.
Both new filters don't show good quality for the image upscaling. Both new filters don't show good quality for the image upscaling.
Deprecation Warning when Saving JPEGs
=====================================
JPEG images cannot contain an alpha channel. Pillow prior to 3.4.0
silently drops the alpha channel. With this release Pillow will now
issue a :py:exc:`DeprecationWarning` when attempting to save a ``RGBA`` mode
image as a JPEG. This will become an error in Pillow 4.2.
New DDS Decoders New DDS Decoders
================ ^^^^^^^^^^^^^^^^
Pillow can now decode DXT3 images, as well as the previously supported Pillow can now decode DXT3 images, as well as the previously supported
DXT1 and DXT5 formats. All three formats are now decoded in C code for DXT1 and DXT5 formats. All three formats are now decoded in C code for
better performance. better performance.
Append images to GIF Append images to GIF
==================== ^^^^^^^^^^^^^^^^^^^^
Additional frames can now be appended when saving a GIF file, through the Additional frames can now be appended when saving a GIF file, through the
``append_images`` argument. The new frames are passed in as a list of images, ``append_images`` argument. The new frames are passed in as a list of images,
@ -42,16 +54,9 @@ in effect, e.g.::
im.save(out, save_all=True, append_images=[im1, im2, ...]) im.save(out, save_all=True, append_images=[im1, im2, ...])
Save multiple frame TIFF Save multiple frame TIFF
======================== ^^^^^^^^^^^^^^^^^^^^^^^^
Multiple frames can now be saved in a TIFF file by using the ``save_all`` option. Multiple frames can now be saved in a TIFF file by using the ``save_all`` option.
e.g.:: e.g.::
im.save("filename.tiff", format="TIFF", save_all=True) im.save("filename.tiff", format="TIFF", save_all=True)
Image.core.open_ppm removed
===========================
The nominally private/debugging function ``Image.core.open_ppm`` has
been removed. If you were using this function, please use
``Image.open`` instead.

View File

@ -1,6 +1,9 @@
4.0.0 4.0.0
----- -----
Other Changes
=============
Python 2.6 and 3.2 Dropped Python 2.6 and 3.2 Dropped
========================== ==========================

View File

@ -1,8 +1,8 @@
4.1.0 4.1.0
----- -----
Removed Deprecated Items Deprecations
======================== ============
Several deprecated items have been removed. Several deprecated items have been removed.
@ -15,8 +15,11 @@ Several deprecated items have been removed.
``PIL.ImageDraw.ImageDraw.setfont`` have been removed. ``PIL.ImageDraw.ImageDraw.setfont`` have been removed.
Other Changes
=============
Closing Files When Opening Images Closing Files When Opening Images
================================= ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The file handling when opening images has been overhauled. Previously, The file handling when opening images has been overhauled. Previously,
Pillow would attempt to close some, but not all image formats Pillow would attempt to close some, but not all image formats
@ -38,9 +41,8 @@ is specified:
the underlying file until we are done with the image. The mapping the underlying file until we are done with the image. The mapping
will be closed in the ``close`` or ``__del__`` method. will be closed in the ``close`` or ``__del__`` method.
Changes to GIF Handling When Saving Changes to GIF Handling When Saving
=================================== ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The :py:class:`PIL.GifImagePlugin` code has been refactored to fix the flow when The :py:class:`PIL.GifImagePlugin` code has been refactored to fix the flow when
saving images. There are two external changes that arise from this: saving images. There are two external changes that arise from this:

View File

@ -1,8 +1,11 @@
4.1.1 4.1.1
----- -----
Other Changes
=============
Fix Regression with reading DPI from EXIF data Fix Regression with reading DPI from EXIF data
============================================== ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Some JPEG images don't contain DPI information in the image metadata, Some JPEG images don't contain DPI information in the image metadata,
but do contain it in the EXIF data. A patch was added in 4.1.0 to read but do contain it in the EXIF data. A patch was added in 4.1.0 to read
@ -10,9 +13,8 @@ from the EXIF data, but it did not accept all possible types that
could be included there. This fix adds the ability to read ints as could be included there. This fix adds the ability to read ints as
well as rational values. well as rational values.
Incompatibility between 3.6.0 and 3.6.1 Incompatibility between 3.6.0 and 3.6.1
======================================= ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CPython 3.6.1 added a new symbol, PySlice_GetIndicesEx, which was not CPython 3.6.1 added a new symbol, PySlice_GetIndicesEx, which was not
present in 3.6.0. This had the effect of causing binaries compiled on present in 3.6.0. This had the effect of causing binaries compiled on

View File

@ -1,8 +1,11 @@
4.2.0 4.2.0
----- -----
Other Changes
=============
Added Complex Text Rendering Added Complex Text Rendering
============================ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Pillow now supports complex text rendering for scripts requiring glyph Pillow now supports complex text rendering for scripts requiring glyph
composition and bidirectional flow. This optional feature adds three composition and bidirectional flow. This optional feature adds three
@ -11,7 +14,7 @@ dependencies: harfbuzz, fribidi, and raqm. See the :doc:`install documentation
Unix and Mac, but has not yet been built on Windows platforms. Unix and Mac, but has not yet been built on Windows platforms.
New Optional Parameters New Optional Parameters
======================= ^^^^^^^^^^^^^^^^^^^^^^^
* :py:meth:`PIL.ImageDraw.floodfill` has a new optional parameter: * :py:meth:`PIL.ImageDraw.floodfill` has a new optional parameter:
threshold. This specifies a tolerance for the color to replace with threshold. This specifies a tolerance for the color to replace with
@ -22,16 +25,17 @@ New Optional Parameters
multipage outputs. multipage outputs.
New DecompressionBomb Warning New DecompressionBomb Warning
============================= ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:py:meth:`PIL.Image.Image.crop` now may raise a DecompressionBomb :py:meth:`PIL.Image.Image.crop` now may raise a DecompressionBomb
warning if the crop region enlarges the image over the threshold warning if the crop region enlarges the image over the threshold
specified by :py:data:`PIL.Image.MAX_IMAGE_PIXELS`. specified by :py:data:`PIL.Image.MAX_IMAGE_PIXELS`.
Removed Deprecated Items Deprections
======================== ===========
Several deprecated items have been removed. Several deprecated items have been removed
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* The methods ``PIL.ImageWin.Dib.fromstring``, * The methods ``PIL.ImageWin.Dib.fromstring``,
``PIL.ImageWin.Dib.tostring`` and ``PIL.ImageWin.Dib.tostring`` and
@ -44,7 +48,7 @@ Several deprecated items have been removed.
an :py:exc:`IOError` is raised. an :py:exc:`IOError` is raised.
Removed Core Image Function Removed Core Image Function
=========================== ^^^^^^^^^^^^^^^^^^^^^^^^^^^
The unused function ``Image.core.new_array`` was removed. This is an The unused function ``Image.core.new_array`` was removed. This is an
internal function that should not have been used by user code, but it internal function that should not have been used by user code, but it

View File

@ -3,8 +3,11 @@
There are no functional changes in this release. There are no functional changes in this release.
Other Changes
=============
Fixed Windows PyPy Build Fixed Windows PyPy Build
======================== ^^^^^^^^^^^^^^^^^^^^^^^^
A change in the 4.2.0 cycle broke the Windows PyPy build. This has A change in the 4.2.0 cycle broke the Windows PyPy build. This has
been fixed, and PyPy is now part of the Windows CI matrix. been fixed, and PyPy is now part of the Windows CI matrix.

View File

@ -1,15 +1,23 @@
5.1.0 5.1.0
----- -----
Other Changes
=============
New File Format New File Format
=============== ^^^^^^^^^^^^^^^
BLP File Format BLP File Format
^^^^^^^^^^^^^^^ ---------------
Pillow now supports reading the BLP "Blizzard Mipmap" file format used Pillow now supports reading the BLP "Blizzard Mipmap" file format used
for tiles in Blizzard's engine. for tiles in Blizzard's engine.
WebP memory leak
^^^^^^^^^^^^^^^^
A memory leak when opening ``WebP`` files has been fixed.
API Changes API Changes
=========== ===========
@ -26,11 +34,3 @@ Append to PDF Files
Images can now be appended to PDF files in place by passing in Images can now be appended to PDF files in place by passing in
``append=True`` when saving the image. ``append=True`` when saving the image.
Other Changes
=============
WebP memory leak
^^^^^^^^^^^^^^^^
A memory leak when opening ``WebP`` files has been fixed.

View File

@ -3,6 +3,9 @@
This release fixes regressions in 5.4.0. This release fixes regressions in 5.4.0.
Other Changes
=============
Installation on Termux Installation on Termux
^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^

View File

@ -1,8 +1,11 @@
7.1.1 7.1.1
----- -----
Other Changes
=============
Fix regression seeking PNG files Fix regression seeking PNG files
================================ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This fixes a regression introduced in 7.1.0 when adding support for APNG files when calling This fixes a regression introduced in 7.1.0 when adding support for APNG files when calling
``seek`` and ``tell``: ``seek`` and ``tell``:

View File

@ -1,8 +1,11 @@
7.1.2 7.1.2
----- -----
Other Changes
=============
Fix another regression seeking PNG files Fix another regression seeking PNG files
======================================== ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This fixes a regression introduced in 7.1.0 when adding support for APNG files. This fixes a regression introduced in 7.1.0 when adding support for APNG files.

View File

@ -1,8 +1,11 @@
8.3.1 8.3.1
----- -----
Other Changes
=============
Fixed regression converting to NumPy arrays Fixed regression converting to NumPy arrays
=========================================== ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This fixes a regression introduced in 8.3.0 when converting an image to a NumPy array This fixes a regression introduced in 8.3.0 when converting an image to a NumPy array
with a ``dtype`` argument. with a ``dtype`` argument.
@ -28,7 +31,7 @@ access.
The :py:exc:`OSError` is now silently caught. The :py:exc:`OSError` is now silently caught.
Fixed removing orientation in ImageOps.exif_transpose Fixed removing orientation in ImageOps.exif_transpose
===================================================== ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In 8.3.0, :py:meth:`~PIL.ImageOps.exif_transpose` was changed to ensure that the In 8.3.0, :py:meth:`~PIL.ImageOps.exif_transpose` was changed to ensure that the
original image EXIF data was not modified, and the orientation was only removed from original image EXIF data was not modified, and the orientation was only removed from