Skip to content

Commit

Permalink
Update release notes to match template for #7864
Browse files Browse the repository at this point in the history
- Categorized previously uncategorized notes under ``Other Changes``
- TODO: Fix categorization of notes in ``Other Changes`` that belong in other categories
  • Loading branch information
aclark4life committed Mar 15, 2024
1 parent 44e6bbe commit 92bc8ee
Show file tree
Hide file tree
Showing 19 changed files with 172 additions and 123 deletions.
21 changes: 13 additions & 8 deletions docs/releasenotes/10.3.0.rst
@@ -1,6 +1,19 @@
10.3.0
------

Security
========

TODO
^^^^

TODO

:cve:`YYYY-XXXXX`: TODO
^^^^^^^^^^^^^^^^^^^^^^^

TODO

Backwards Incompatible Changes
==============================

Expand Down Expand Up @@ -63,14 +76,6 @@ Added PerspectiveTransform
that all of the :py:data:`~PIL.Image.Transform` values now have a corresponding
subclass of :py:class:`~PIL.ImageTransform.Transform`.

Security
========

TODO
^^^^

TODO

Other Changes
=============

Expand Down
36 changes: 19 additions & 17 deletions docs/releasenotes/2.7.0.rst
@@ -1,15 +1,17 @@
2.7.0
=====
-----

Other Changes
=============

Sane Plugin
-----------
^^^^^^^^^^^

The Sane plugin has now been split into its own repo:
https://github.com/python-pillow/Sane .


Png text chunk size limits
--------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^

To prevent potential denial of service attacks using compressed text
chunks, there are now limits to the decompressed size of text chunks
Expand All @@ -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.

Image resizing filters
----------------------
^^^^^^^^^^^^^^^^^^^^^^

Image resizing methods :py:meth:`~PIL.Image.Image.resize` and
:py:meth:`~PIL.Image.Image.thumbnail` take a ``resample`` argument, which tells
Expand All @@ -33,7 +35,7 @@ which filter should be used for resampling. Possible values are:
were changed in this version.

Bicubic and bilinear downscaling
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--------------------------------

From the beginning ``BILINEAR`` and ``BICUBIC`` filters were based on affine
transformations and used a fixed number of pixels from the source image for
Expand All @@ -50,7 +52,7 @@ If you have previously used any tricks to maintain quality when downscaling with
steps), they are unnecessary now.

Antialias renamed to Lanczos
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
----------------------------

A new ``LANCZOS`` constant was added instead of ``ANTIALIAS``.

Expand All @@ -64,19 +66,19 @@ The ``ANTIALIAS`` constant is left for backward compatibility and is an alias
for ``LANCZOS``.

Lanczos upscaling quality
^^^^^^^^^^^^^^^^^^^^^^^^^
-------------------------

The image upscaling quality with ``LANCZOS`` filter was almost the same as
``BILINEAR`` due to a bug. This has been fixed.

Bicubic upscaling quality
^^^^^^^^^^^^^^^^^^^^^^^^^
-------------------------

The ``BICUBIC`` filter for affine transformations produced sharp, slightly
pixelated image for upscaling. Bicubic for convolutions is more soft.

Resize performance
^^^^^^^^^^^^^^^^^^
------------------

In most cases, convolution is more a expensive algorithm for downscaling
because it takes into account all the pixels of source image. Therefore
Expand All @@ -93,7 +95,7 @@ The upscaling performance of the ``LANCZOS`` filter has remained the same. For
times.

Default filter for thumbnails
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-----------------------------

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
Expand All @@ -103,7 +105,7 @@ other filters gave poor quality for reduction. Starting from Pillow 2.7.0,
uses supersampling internally, not convolutions.

Image transposition
-------------------
^^^^^^^^^^^^^^^^^^^

A new method ``TRANSPOSE`` has been added for the
:py:meth:`~PIL.Image.Image.transpose` operation in addition to
Expand All @@ -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.

Gaussian blur and unsharp mask
------------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The :py:meth:`~PIL.ImageFilter.GaussianBlur` implementation has been replaced
with a sequential application of box filters. The new implementation is based on
Expand All @@ -125,7 +127,7 @@ implementations use Gaussian blur internally, all changes from this chapter
are also applicable to it.

Blur radius
^^^^^^^^^^^
-----------

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
Expand All @@ -136,7 +138,7 @@ If you used a Gaussian blur with some radius value, you need to divide this
value by two.

Blur performance
^^^^^^^^^^^^^^^^
----------------

Box filter computation time is constant relative to the radius and depends
on source image size only. Because the new Gaussian blur implementation
Expand All @@ -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.

Blur quality
^^^^^^^^^^^^
------------

The previous implementation takes into account only source pixels within
2 * standard deviation radius for every destination pixel. This was not enough,
Expand All @@ -157,7 +159,7 @@ so the quality was worse compared to other Gaussian blur software.
The new implementation does not have this drawback.

TIFF Parameter Changes
----------------------
^^^^^^^^^^^^^^^^^^^^^^

Several kwarg parameters for saving TIFF images were previously
specified as strings with included spaces (e.g. 'x resolution'). This
Expand Down
7 changes: 5 additions & 2 deletions docs/releasenotes/2.8.0.rst
@@ -1,8 +1,11 @@
2.8.0
=====
-----

Other Changes
=============

Open HTTP response objects with Image.open
------------------------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

HTTP response objects returned from ``urllib2.urlopen(url)`` or
``requests.get(url, stream=True).raw`` are 'file-like' but do not support ``.seek()``
Expand Down
48 changes: 25 additions & 23 deletions docs/releasenotes/3.0.0.rst
@@ -1,9 +1,28 @@

3.0.0
=====
-----

Deprecations
============

Several methods that have been marked as deprecated for many releases
have been removed in this release::

Image.tostring()
Image.fromstring()
Image.offset()
ImageDraw.setink()
ImageDraw.setfill()
The ImageFileIO module
The ImageFont.FreeTypeFont and ImageFont.truetype ``file`` keyword arg
The ImagePalette private _make functions
ImageWin.fromstring()
ImageWin.tostring()

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``
Expand All @@ -12,7 +31,7 @@ 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,
Expand All @@ -25,25 +44,8 @@ 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
have been removed in this release::

Image.tostring()
Image.fromstring()
Image.offset()
ImageDraw.setink()
ImageDraw.setfill()
The ImageFileIO module
The ImageFont.FreeTypeFont and ImageFont.truetype ``file`` keyword arg
The ImagePalette private _make functions
ImageWin.fromstring()
ImageWin.tostring()

LibJpeg and Zlib are Required by Default
----------------------------------------
LibJpeg and Zlib are 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
Expand Down
18 changes: 10 additions & 8 deletions docs/releasenotes/3.1.0.rst
@@ -1,9 +1,11 @@

3.1.0
=====
-----

Other Changes
=============

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``,
``chord`` and ``pieslice`` are integers.
Expand All @@ -12,7 +14,7 @@ Note that these numbers are not simply rounded internally, but are actually
utilised in the drawing process.

Consistent multiline text spacing
---------------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

When using the ``ImageDraw`` multiline methods, the spacing between
lines was inconsistent, based on the combination on ascenders and
Expand All @@ -24,15 +26,15 @@ not the absolute height of each line.
There is also now a default spacing of 4px between lines.

Exif, Jpeg and Tiff Metadata
----------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

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
fixed in Pillow 3.1, and some of them have been extended to have
different behavior.

TiffImagePlugin.IFDRational
+++++++++++++++++++++++++++
---------------------------

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
Expand All @@ -50,7 +52,7 @@ This class should be used when adding a rational value to an
ImageFileDirectory for saving to image metadata.

JpegImagePlugin._getexif
++++++++++++++++++++++++
------------------------

In Pillow 3.0, the dictionary returned from the private, experimental,
but generally widely used ``_getexif`` function changed to reflect the
Expand All @@ -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.

Out of Spec Metadata
++++++++++++++++++++
--------------------

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
Expand Down
8 changes: 5 additions & 3 deletions docs/releasenotes/3.2.0.rst
@@ -1,9 +1,11 @@

3.2.0
-----

Other Changes
=============

New DDS and FTEX Image Plugins
==============================
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The ``DdsImagePlugin`` reading DXT1 and DXT5 encoded ``.dds`` images was
added. DXT3 images are not currently supported.
Expand All @@ -14,7 +16,7 @@ per file, in the ``.ftc`` (compressed) and ``.ftu`` (uncompressed)
formats.

Updates to the GbrImagePlugin
=============================
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The ``GbrImagePlugin`` (GIMP brush format) has been updated to fix
support for version 1 files and add support for version 2 files.
Expand Down
16 changes: 8 additions & 8 deletions docs/releasenotes/3.3.0.rst
@@ -1,8 +1,11 @@
3.3.0
-----

Other Changes
=============

Libimagequant support
=====================
^^^^^^^^^^^^^^^^^^^^^

There is now support for using libimagequant as a higher quality
quantization option in ``Image.quantize()`` on Unix-like
Expand All @@ -12,7 +15,7 @@ differences.


New Setup.py options
====================
^^^^^^^^^^^^^^^^^^^^

There are two new options to control the ``build_ext`` task in ``setup.py``:

Expand All @@ -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
variables.


Resizing
========
^^^^^^^^

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
Expand All @@ -36,18 +38,16 @@ makes resampling 60% faster on average.
Color calculation for images in the ``LA`` mode on semitransparent pixels
was fixed.


Rotation
========
^^^^^^^^

Rotation for angles divisible by 90 degrees now always uses transposition.
This greatly improves both quality and performance in this case.
Also, the bug with wrong image size calculation when rotating by 90 degrees
was fixed.


Image 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
Expand Down

0 comments on commit 92bc8ee

Please sign in to comment.