Docs: use sentence case for headers (#8914)

Co-authored-by: Andrew Murray <3112309+radarhere@users.noreply.github.com>
This commit is contained in:
Hugo van Kemenade 2025-04-21 12:03:31 +03:00 committed by GitHub
parent d03ce3d235
commit 348589a367
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
99 changed files with 313 additions and 313 deletions

View File

@ -1,4 +1,4 @@
Pillow Tests Pillow tests
============ ============
Test scripts are named ``test_xxx.py``. Helper classes and functions can be found in ``helper.py``. Test scripts are named ``test_xxx.py``. Helper classes and functions can be found in ``helper.py``.

View File

@ -1,10 +1,10 @@
PIL Package (autodoc of remaining modules) PIL package (autodoc of remaining modules)
========================================== ==========================================
Reference for modules whose documentation has not yet been ported or written Reference for modules whose documentation has not yet been ported or written
can be found here. can be found here.
:mod:`PIL` Module :mod:`PIL` module
----------------- -----------------
.. py:module:: PIL .. py:module:: PIL
@ -12,7 +12,7 @@ can be found here.
.. autoexception:: UnidentifiedImageError .. autoexception:: UnidentifiedImageError
:show-inheritance: :show-inheritance:
:mod:`~PIL.BdfFontFile` Module :mod:`~PIL.BdfFontFile` module
------------------------------ ------------------------------
.. automodule:: PIL.BdfFontFile .. automodule:: PIL.BdfFontFile
@ -20,7 +20,7 @@ can be found here.
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.ContainerIO` Module :mod:`~PIL.ContainerIO` module
------------------------------ ------------------------------
.. automodule:: PIL.ContainerIO .. automodule:: PIL.ContainerIO
@ -28,7 +28,7 @@ can be found here.
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.FontFile` Module :mod:`~PIL.FontFile` module
--------------------------- ---------------------------
.. automodule:: PIL.FontFile .. automodule:: PIL.FontFile
@ -36,7 +36,7 @@ can be found here.
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.GdImageFile` Module :mod:`~PIL.GdImageFile` module
------------------------------ ------------------------------
.. automodule:: PIL.GdImageFile .. automodule:: PIL.GdImageFile
@ -44,7 +44,7 @@ can be found here.
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.GimpGradientFile` Module :mod:`~PIL.GimpGradientFile` module
----------------------------------- -----------------------------------
.. automodule:: PIL.GimpGradientFile .. automodule:: PIL.GimpGradientFile
@ -52,7 +52,7 @@ can be found here.
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.GimpPaletteFile` Module :mod:`~PIL.GimpPaletteFile` module
---------------------------------- ----------------------------------
.. automodule:: PIL.GimpPaletteFile .. automodule:: PIL.GimpPaletteFile
@ -60,7 +60,7 @@ can be found here.
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.ImageDraw2` Module :mod:`~PIL.ImageDraw2` module
----------------------------- -----------------------------
.. automodule:: PIL.ImageDraw2 .. automodule:: PIL.ImageDraw2
@ -69,7 +69,7 @@ can be found here.
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.ImageMode` Module :mod:`~PIL.ImageMode` module
---------------------------- ----------------------------
.. automodule:: PIL.ImageMode .. automodule:: PIL.ImageMode
@ -77,7 +77,7 @@ can be found here.
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.PaletteFile` Module :mod:`~PIL.PaletteFile` module
------------------------------ ------------------------------
.. automodule:: PIL.PaletteFile .. automodule:: PIL.PaletteFile
@ -85,7 +85,7 @@ can be found here.
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.PcfFontFile` Module :mod:`~PIL.PcfFontFile` module
------------------------------ ------------------------------
.. automodule:: PIL.PcfFontFile .. automodule:: PIL.PcfFontFile
@ -93,7 +93,7 @@ can be found here.
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:class:`.PngImagePlugin.iTXt` Class :class:`.PngImagePlugin.iTXt` class
----------------------------------- -----------------------------------
.. autoclass:: PIL.PngImagePlugin.iTXt .. autoclass:: PIL.PngImagePlugin.iTXt
@ -107,7 +107,7 @@ can be found here.
:param lang: language code :param lang: language code
:param tkey: UTF-8 version of the key name :param tkey: UTF-8 version of the key name
:class:`.PngImagePlugin.PngInfo` Class :class:`.PngImagePlugin.PngInfo` class
-------------------------------------- --------------------------------------
.. autoclass:: PIL.PngImagePlugin.PngInfo .. autoclass:: PIL.PngImagePlugin.PngInfo
@ -116,7 +116,7 @@ can be found here.
:show-inheritance: :show-inheritance:
:mod:`~PIL.TarIO` Module :mod:`~PIL.TarIO` module
------------------------ ------------------------
.. automodule:: PIL.TarIO .. automodule:: PIL.TarIO
@ -124,7 +124,7 @@ can be found here.
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.WalImageFile` Module :mod:`~PIL.WalImageFile` module
------------------------------- -------------------------------
.. automodule:: PIL.WalImageFile .. automodule:: PIL.WalImageFile

View File

@ -155,7 +155,7 @@ JpegImageFile.huffman_ac and JpegImageFile.huffman_dc
The ``huffman_ac`` and ``huffman_dc`` dictionaries on JPEG images were unused. They The ``huffman_ac`` and ``huffman_dc`` dictionaries on JPEG images were unused. They
have been deprecated, and will be removed in Pillow 12 (2025-10-15). have been deprecated, and will be removed in Pillow 12 (2025-10-15).
Specific WebP Feature Checks Specific WebP feature checks
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. deprecated:: 11.0.0 .. deprecated:: 11.0.0

View File

@ -84,7 +84,7 @@ pixels.
.. _coordinate-system: .. _coordinate-system:
Coordinate System Coordinate system
----------------- -----------------
The Python Imaging Library uses a Cartesian pixel coordinate system, with (0,0) The Python Imaging Library uses a Cartesian pixel coordinate system, with (0,0)

View File

@ -1222,7 +1222,7 @@ numbers are returned as a tuple of ``(numerator, denominator)``.
.. deprecated:: 3.0.0 .. deprecated:: 3.0.0
Reading Multi-frame TIFF Images Reading multi-frame TIFF images
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The TIFF loader supports the :py:meth:`~PIL.Image.Image.seek` and The TIFF loader supports the :py:meth:`~PIL.Image.Image.seek` and
@ -1664,7 +1664,7 @@ The :py:meth:`~PIL.Image.open` method sets the following
Transparency color index. This key is omitted if the image is not Transparency color index. This key is omitted if the image is not
transparent. transparent.
XV Thumbnails XV thumbnails
^^^^^^^^^^^^^ ^^^^^^^^^^^^^
Pillow can read XV thumbnail files. Pillow can read XV thumbnail files.

View File

@ -13,7 +13,7 @@ processing tool.
Lets look at a few possible uses of this library. Lets look at a few possible uses of this library.
Image Archives Image archives
-------------- --------------
The Python Imaging Library is ideal for image archival and batch processing The Python Imaging Library is ideal for image archival and batch processing
@ -24,7 +24,7 @@ The current version identifies and reads a large number of formats. Write
support is intentionally restricted to the most commonly used interchange and support is intentionally restricted to the most commonly used interchange and
presentation formats. presentation formats.
Image Display Image display
------------- -------------
The current release includes Tk :py:class:`~PIL.ImageTk.PhotoImage` and The current release includes Tk :py:class:`~PIL.ImageTk.PhotoImage` and
@ -36,7 +36,7 @@ support.
For debugging, theres also a :py:meth:`~PIL.Image.Image.show` method which saves an image to For debugging, theres also a :py:meth:`~PIL.Image.Image.show` method which saves an image to
disk, and calls an external display utility. disk, and calls an external display utility.
Image Processing Image processing
---------------- ----------------
The library contains basic image processing functionality, including point operations, filtering with a set of built-in convolution kernels, and colour space conversions. The library contains basic image processing functionality, including point operations, filtering with a set of built-in convolution kernels, and colour space conversions.

View File

@ -122,7 +122,7 @@ This means that opening an image file is a fast operation, which is independent
of the file size and compression type. Heres a simple script to quickly of the file size and compression type. Heres a simple script to quickly
identify a set of image files: identify a set of image files:
Identify Image Files Identify image files
^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^
:: ::
@ -399,7 +399,7 @@ Applying filters
.. image:: enhanced_hopper.webp .. image:: enhanced_hopper.webp
:align: center :align: center
Point Operations Point operations
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
The :py:meth:`~PIL.Image.Image.point` method can be used to translate the pixel The :py:meth:`~PIL.Image.Image.point` method can be used to translate the pixel

View File

@ -1,6 +1,6 @@
.. _image-plugins: .. _image-plugins:
Writing Your Own Image Plugin Writing your own image plugin
============================= =============================
Pillow uses a plugin model which allows you to add your own Pillow uses a plugin model which allows you to add your own
@ -329,7 +329,7 @@ The fields are used as follows:
.. _file-codecs: .. _file-codecs:
Writing Your Own File Codec in C Writing your own file codec in C
================================ ================================
There are 3 stages in a file codec's lifetime: There are 3 stages in a file codec's lifetime:
@ -414,7 +414,7 @@ memory and release any resources from external libraries.
.. _file-codecs-py: .. _file-codecs-py:
Writing Your Own File Codec in Python Writing your own file codec in Python
===================================== =====================================
Python file decoders and encoders should derive from Python file decoders and encoders should derive from

View File

@ -3,27 +3,27 @@
Installation Installation
============ ============
Basic Installation Basic installation
------------------ ------------------
.. Note:: This section has moved to :ref:`basic-installation`. Please update references accordingly. .. Note:: This section has moved to :ref:`basic-installation`. Please update references accordingly.
Python Support Python support
-------------- --------------
.. Note:: This section has moved to :ref:`python-support`. Please update references accordingly. .. Note:: This section has moved to :ref:`python-support`. Please update references accordingly.
Platform Support Platform support
---------------- ----------------
.. Note:: This section has moved to :ref:`platform-support`. Please update references accordingly. .. Note:: This section has moved to :ref:`platform-support`. Please update references accordingly.
Building From Source Building from source
-------------------- --------------------
.. Note:: This section has moved to :ref:`building-from-source`. Please update references accordingly. .. Note:: This section has moved to :ref:`building-from-source`. Please update references accordingly.
Old Versions Old versions
------------ ------------
.. Note:: This section has moved to :ref:`old-versions`. Please update references accordingly. .. Note:: This section has moved to :ref:`old-versions`. Please update references accordingly.

View File

@ -8,7 +8,7 @@
.. _basic-installation: .. _basic-installation:
Basic Installation Basic installation
================== ==================
.. note:: .. note::

View File

@ -8,12 +8,12 @@
.. _building-from-source: .. _building-from-source:
Building From Source Building from source
==================== ====================
.. _external-libraries: .. _external-libraries:
External Libraries External libraries
------------------ ------------------
.. note:: .. note::
@ -271,7 +271,7 @@ After navigating to the Pillow directory, run::
.. _compressed archive from PyPI: https://pypi.org/project/pillow/#files .. _compressed archive from PyPI: https://pypi.org/project/pillow/#files
Build Options Build options
^^^^^^^^^^^^^ ^^^^^^^^^^^^^
* Config setting: ``-C parallel=n``. Can also be given * Config setting: ``-C parallel=n``. Can also be given
@ -319,7 +319,7 @@ Sample usage::
.. _old-versions: .. _old-versions:
Old Versions Old versions
============ ============
You can download old distributions from the `release history at PyPI You can download old distributions from the `release history at PyPI

View File

@ -1,6 +1,6 @@
.. _platform-support: .. _platform-support:
Platform Support Platform support
================ ================
Current platform support for Pillow. Binary distributions are Current platform support for Pillow. Binary distributions are
@ -9,7 +9,7 @@ should compile and run everywhere platform support is listed. In
general, we aim to support all current versions of Linux, macOS, and general, we aim to support all current versions of Linux, macOS, and
Windows. Windows.
Continuous Integration Targets Continuous integration targets
------------------------------ ------------------------------
These platforms are built and tested for every change. These platforms are built and tested for every change.
@ -59,7 +59,7 @@ These platforms are built and tested for every change.
+----------------------------------+----------------------------+---------------------+ +----------------------------------+----------------------------+---------------------+
Other Platforms Other platforms
--------------- ---------------
These platforms have been reported to work at the versions mentioned. These platforms have been reported to work at the versions mentioned.

View File

@ -1,6 +1,6 @@
.. _python-support: .. _python-support:
Python Support Python support
============== ==============
Pillow supports these Python versions. Pillow supports these Python versions.

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ExifTags .. py:module:: PIL.ExifTags
.. py:currentmodule:: PIL.ExifTags .. py:currentmodule:: PIL.ExifTags
:py:mod:`~PIL.ExifTags` Module :py:mod:`~PIL.ExifTags` module
============================== ==============================
The :py:mod:`~PIL.ExifTags` module exposes several :py:class:`enum.IntEnum` The :py:mod:`~PIL.ExifTags` module exposes several :py:class:`enum.IntEnum`

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.Image .. py:module:: PIL.Image
.. py:currentmodule:: PIL.Image .. py:currentmodule:: PIL.Image
:py:mod:`~PIL.Image` Module :py:mod:`~PIL.Image` module
=========================== ===========================
The :py:mod:`~PIL.Image` module provides a class with the same name which is The :py:mod:`~PIL.Image` module provides a class with the same name which is
@ -113,7 +113,7 @@ Registering plugins
.. autofunction:: register_decoder .. autofunction:: register_decoder
.. autofunction:: register_encoder .. autofunction:: register_encoder
The Image Class The Image class
--------------- ---------------
.. autoclass:: PIL.Image.Image .. autoclass:: PIL.Image.Image
@ -261,7 +261,7 @@ method. ::
.. automethod:: PIL.Image.Image.load .. automethod:: PIL.Image.Image.load
.. automethod:: PIL.Image.Image.close .. automethod:: PIL.Image.Image.close
Image Attributes Image attributes
---------------- ----------------
Instances of the :py:class:`Image` class have the following attributes: Instances of the :py:class:`Image` class have the following attributes:

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageChops .. py:module:: PIL.ImageChops
.. py:currentmodule:: PIL.ImageChops .. py:currentmodule:: PIL.ImageChops
:py:mod:`~PIL.ImageChops` ("Channel Operations") Module :py:mod:`~PIL.ImageChops` ("channel operations") module
======================================================= =======================================================
The :py:mod:`~PIL.ImageChops` module contains a number of arithmetical image The :py:mod:`~PIL.ImageChops` module contains a number of arithmetical image

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageCms .. py:module:: PIL.ImageCms
.. py:currentmodule:: PIL.ImageCms .. py:currentmodule:: PIL.ImageCms
:py:mod:`~PIL.ImageCms` Module :py:mod:`~PIL.ImageCms` module
============================== ==============================
The :py:mod:`~PIL.ImageCms` module provides color profile management The :py:mod:`~PIL.ImageCms` module provides color profile management

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageColor .. py:module:: PIL.ImageColor
.. py:currentmodule:: PIL.ImageColor .. py:currentmodule:: PIL.ImageColor
:py:mod:`~PIL.ImageColor` Module :py:mod:`~PIL.ImageColor` module
================================ ================================
The :py:mod:`~PIL.ImageColor` module contains color tables and converters from The :py:mod:`~PIL.ImageColor` module contains color tables and converters from
@ -11,7 +11,7 @@ others.
.. _color-names: .. _color-names:
Color Names Color names
----------- -----------
The ImageColor module supports the following string formats: The ImageColor module supports the following string formats:

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageDraw .. py:module:: PIL.ImageDraw
.. py:currentmodule:: PIL.ImageDraw .. py:currentmodule:: PIL.ImageDraw
:py:mod:`~PIL.ImageDraw` Module :py:mod:`~PIL.ImageDraw` module
=============================== ===============================
The :py:mod:`~PIL.ImageDraw` module provides simple 2D graphics for The :py:mod:`~PIL.ImageDraw` module provides simple 2D graphics for
@ -54,7 +54,7 @@ later, you can also use RGB 3-tuples or color names (see below). The drawing
layer will automatically assign color indexes, as long as you dont draw with layer will automatically assign color indexes, as long as you dont draw with
more than 256 colors. more than 256 colors.
Color Names Color names
^^^^^^^^^^^ ^^^^^^^^^^^
See :ref:`color-names` for the color names supported by Pillow. See :ref:`color-names` for the color names supported by Pillow.
@ -75,7 +75,7 @@ To load a OpenType/TrueType font, use the truetype function in the
:py:mod:`~PIL.ImageFont` module. Note that this function depends on third-party :py:mod:`~PIL.ImageFont` module. Note that this function depends on third-party
libraries, and may not available in all PIL builds. libraries, and may not available in all PIL builds.
Example: Draw Partial Opacity Text Example: Draw partial opacity text
---------------------------------- ----------------------------------
:: ::
@ -102,7 +102,7 @@ Example: Draw Partial Opacity Text
out.show() out.show()
Example: Draw Multiline Text Example: Draw multiline text
---------------------------- ----------------------------
:: ::

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageEnhance .. py:module:: PIL.ImageEnhance
.. py:currentmodule:: PIL.ImageEnhance .. py:currentmodule:: PIL.ImageEnhance
:py:mod:`~PIL.ImageEnhance` Module :py:mod:`~PIL.ImageEnhance` module
================================== ==================================
The :py:mod:`~PIL.ImageEnhance` module contains a number of classes that can be used The :py:mod:`~PIL.ImageEnhance` module contains a number of classes that can be used

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageFile .. py:module:: PIL.ImageFile
.. py:currentmodule:: PIL.ImageFile .. py:currentmodule:: PIL.ImageFile
:py:mod:`~PIL.ImageFile` Module :py:mod:`~PIL.ImageFile` module
=============================== ===============================
The :py:mod:`~PIL.ImageFile` module provides support functions for the image open The :py:mod:`~PIL.ImageFile` module provides support functions for the image open

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageFilter .. py:module:: PIL.ImageFilter
.. py:currentmodule:: PIL.ImageFilter .. py:currentmodule:: PIL.ImageFilter
:py:mod:`~PIL.ImageFilter` Module :py:mod:`~PIL.ImageFilter` module
================================= =================================
The :py:mod:`~PIL.ImageFilter` module contains definitions for a pre-defined set of The :py:mod:`~PIL.ImageFilter` module contains definitions for a pre-defined set of

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageFont .. py:module:: PIL.ImageFont
.. py:currentmodule:: PIL.ImageFont .. py:currentmodule:: PIL.ImageFont
:py:mod:`~PIL.ImageFont` Module :py:mod:`~PIL.ImageFont` module
=============================== ===============================
The :py:mod:`~PIL.ImageFont` module defines a class with the same name. Instances of The :py:mod:`~PIL.ImageFont` module defines a class with the same name. Instances of

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageGrab .. py:module:: PIL.ImageGrab
.. py:currentmodule:: PIL.ImageGrab .. py:currentmodule:: PIL.ImageGrab
:py:mod:`~PIL.ImageGrab` Module :py:mod:`~PIL.ImageGrab` module
=============================== ===============================
The :py:mod:`~PIL.ImageGrab` module can be used to copy the contents of the screen The :py:mod:`~PIL.ImageGrab` module can be used to copy the contents of the screen

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageMath .. py:module:: PIL.ImageMath
.. py:currentmodule:: PIL.ImageMath .. py:currentmodule:: PIL.ImageMath
:py:mod:`~PIL.ImageMath` Module :py:mod:`~PIL.ImageMath` module
=============================== ===============================
The :py:mod:`~PIL.ImageMath` module can be used to evaluate “image expressions”, that The :py:mod:`~PIL.ImageMath` module can be used to evaluate “image expressions”, that
@ -86,7 +86,7 @@ Expression syntax
It is not recommended to process expressions without considering this. It is not recommended to process expressions without considering this.
:py:meth:`lambda_eval` is a more secure alternative. :py:meth:`lambda_eval` is a more secure alternative.
Standard Operators Standard operators
^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
You can use standard arithmetical operators for addition (+), subtraction (-), You can use standard arithmetical operators for addition (+), subtraction (-),
@ -102,7 +102,7 @@ an 8-bit image, the result will be a 32-bit floating point image.
You can force conversion using the ``convert()``, ``float()``, and ``int()`` You can force conversion using the ``convert()``, ``float()``, and ``int()``
functions described below. functions described below.
Bitwise Operators Bitwise operators
^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^
The module also provides operations that operate on individual bits. This The module also provides operations that operate on individual bits. This
@ -116,7 +116,7 @@ mask off unwanted bits.
Bitwise operators dont work on floating point images. Bitwise operators dont work on floating point images.
Logical Operators Logical operators
^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^
Logical operators like ``and``, ``or``, and ``not`` work Logical operators like ``and``, ``or``, and ``not`` work
@ -128,7 +128,7 @@ treated as true.
Note that ``and`` and ``or`` return the last evaluated operand, Note that ``and`` and ``or`` return the last evaluated operand,
while not always returns a boolean value. while not always returns a boolean value.
Built-in Functions Built-in functions
^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
These functions are applied to each individual pixel. These functions are applied to each individual pixel.

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageMorph .. py:module:: PIL.ImageMorph
.. py:currentmodule:: PIL.ImageMorph .. py:currentmodule:: PIL.ImageMorph
:py:mod:`~PIL.ImageMorph` Module :py:mod:`~PIL.ImageMorph` module
================================ ================================
The :py:mod:`~PIL.ImageMorph` module provides morphology operations on images. The :py:mod:`~PIL.ImageMorph` module provides morphology operations on images.

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageOps .. py:module:: PIL.ImageOps
.. py:currentmodule:: PIL.ImageOps .. py:currentmodule:: PIL.ImageOps
:py:mod:`~PIL.ImageOps` Module :py:mod:`~PIL.ImageOps` module
============================== ==============================
The :py:mod:`~PIL.ImageOps` module contains a number of ready-made image The :py:mod:`~PIL.ImageOps` module contains a number of ready-made image

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImagePalette .. py:module:: PIL.ImagePalette
.. py:currentmodule:: PIL.ImagePalette .. py:currentmodule:: PIL.ImagePalette
:py:mod:`~PIL.ImagePalette` Module :py:mod:`~PIL.ImagePalette` module
================================== ==================================
The :py:mod:`~PIL.ImagePalette` module contains a class of the same name to The :py:mod:`~PIL.ImagePalette` module contains a class of the same name to

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImagePath .. py:module:: PIL.ImagePath
.. py:currentmodule:: PIL.ImagePath .. py:currentmodule:: PIL.ImagePath
:py:mod:`~PIL.ImagePath` Module :py:mod:`~PIL.ImagePath` module
=============================== ===============================
The :py:mod:`~PIL.ImagePath` module is used to store and manipulate 2-dimensional The :py:mod:`~PIL.ImagePath` module is used to store and manipulate 2-dimensional

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageQt .. py:module:: PIL.ImageQt
.. py:currentmodule:: PIL.ImageQt .. py:currentmodule:: PIL.ImageQt
:py:mod:`~PIL.ImageQt` Module :py:mod:`~PIL.ImageQt` module
============================= =============================
The :py:mod:`~PIL.ImageQt` module contains support for creating PyQt6 or PySide6 The :py:mod:`~PIL.ImageQt` module contains support for creating PyQt6 or PySide6

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageSequence .. py:module:: PIL.ImageSequence
.. py:currentmodule:: PIL.ImageSequence .. py:currentmodule:: PIL.ImageSequence
:py:mod:`~PIL.ImageSequence` Module :py:mod:`~PIL.ImageSequence` module
=================================== ===================================
The :py:mod:`~PIL.ImageSequence` module contains a wrapper class that lets you The :py:mod:`~PIL.ImageSequence` module contains a wrapper class that lets you

View File

@ -1,10 +1,10 @@
.. py:module:: PIL.ImageShow .. py:module:: PIL.ImageShow
.. py:currentmodule:: PIL.ImageShow .. py:currentmodule:: PIL.ImageShow
:py:mod:`~PIL.ImageShow` Module :py:mod:`~PIL.ImageShow` module
=============================== ===============================
The :py:mod:`~PIL.ImageShow` Module is used to display images. The :py:mod:`~PIL.ImageShow` module is used to display images.
All default viewers convert the image to be shown to PNG format. All default viewers convert the image to be shown to PNG format.
.. autofunction:: PIL.ImageShow.show .. autofunction:: PIL.ImageShow.show

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageStat .. py:module:: PIL.ImageStat
.. py:currentmodule:: PIL.ImageStat .. py:currentmodule:: PIL.ImageStat
:py:mod:`~PIL.ImageStat` Module :py:mod:`~PIL.ImageStat` module
=============================== ===============================
The :py:mod:`~PIL.ImageStat` module calculates global statistics for an image, or The :py:mod:`~PIL.ImageStat` module calculates global statistics for an image, or

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageTk .. py:module:: PIL.ImageTk
.. py:currentmodule:: PIL.ImageTk .. py:currentmodule:: PIL.ImageTk
:py:mod:`~PIL.ImageTk` Module :py:mod:`~PIL.ImageTk` module
============================= =============================
The :py:mod:`~PIL.ImageTk` module contains support to create and modify Tkinter The :py:mod:`~PIL.ImageTk` module contains support to create and modify Tkinter

View File

@ -2,7 +2,7 @@
.. py:module:: PIL.ImageTransform .. py:module:: PIL.ImageTransform
.. py:currentmodule:: PIL.ImageTransform .. py:currentmodule:: PIL.ImageTransform
:py:mod:`~PIL.ImageTransform` Module :py:mod:`~PIL.ImageTransform` module
==================================== ====================================
The :py:mod:`~PIL.ImageTransform` module contains implementations of The :py:mod:`~PIL.ImageTransform` module contains implementations of

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.ImageWin .. py:module:: PIL.ImageWin
.. py:currentmodule:: PIL.ImageWin .. py:currentmodule:: PIL.ImageWin
:py:mod:`~PIL.ImageWin` Module (Windows-only) :py:mod:`~PIL.ImageWin` module (Windows-only)
============================================= =============================================
The :py:mod:`~PIL.ImageWin` module contains support to create and display images on The :py:mod:`~PIL.ImageWin` module contains support to create and display images on

View File

@ -1,6 +1,6 @@
.. py:currentmodule:: PIL.JpegPresets .. py:currentmodule:: PIL.JpegPresets
:py:mod:`~PIL.JpegPresets` Module :py:mod:`~PIL.JpegPresets` module
================================= =================================
.. automodule:: PIL.JpegPresets .. automodule:: PIL.JpegPresets

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.PSDraw .. py:module:: PIL.PSDraw
.. py:currentmodule:: PIL.PSDraw .. py:currentmodule:: PIL.PSDraw
:py:mod:`~PIL.PSDraw` Module :py:mod:`~PIL.PSDraw` module
============================ ============================
The :py:mod:`~PIL.PSDraw` module provides simple print support for PostScript The :py:mod:`~PIL.PSDraw` module provides simple print support for PostScript

View File

@ -1,6 +1,6 @@
.. _PixelAccess: .. _PixelAccess:
:py:class:`PixelAccess` Class :py:class:`PixelAccess` class
============================= =============================
The PixelAccess class provides read and write access to The PixelAccess class provides read and write access to
@ -40,7 +40,7 @@ Access using negative indexes is also possible. ::
:py:class:`PixelAccess` Class :py:class:`PixelAccess` class
----------------------------- -----------------------------
.. class:: PixelAccess .. class:: PixelAccess

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.TiffTags .. py:module:: PIL.TiffTags
.. py:currentmodule:: PIL.TiffTags .. py:currentmodule:: PIL.TiffTags
:py:mod:`~PIL.TiffTags` Module :py:mod:`~PIL.TiffTags` module
============================== ==============================
The :py:mod:`~PIL.TiffTags` module exposes many of the standard TIFF The :py:mod:`~PIL.TiffTags` module exposes many of the standard TIFF

View File

@ -1,7 +1,7 @@
.. _arrow-support: .. _arrow-support:
============= =============
Arrow Support Arrow support
============= =============
`Arrow <https://arrow.apache.org/>`__ `Arrow <https://arrow.apache.org/>`__
@ -18,7 +18,7 @@ with any Arrow provider or consumer in the Python ecosystem.
full-copy memory cost to reading an Arrow image. full-copy memory cost to reading an Arrow image.
Data Formats Data formats
============ ============
Pillow currently supports exporting Arrow images in all modes Pillow currently supports exporting Arrow images in all modes
@ -43,7 +43,7 @@ interpreted using the mode-specific interpretation of the bytes.
The image mode must match the Arrow band format when reading single The image mode must match the Arrow band format when reading single
channel images. channel images.
Memory Allocator Memory allocator
================ ================
Pillow's default memory allocator, the :ref:`block_allocator`, Pillow's default memory allocator, the :ref:`block_allocator`,
@ -59,7 +59,7 @@ To enable the single block allocator::
Note that this is a global setting, not a per-image setting. Note that this is a global setting, not a per-image setting.
Unsupported Features Unsupported features
==================== ====================
* Table/dataframe protocol. We support a single array. * Table/dataframe protocol. We support a single array.
@ -71,7 +71,7 @@ Unsupported Features
parameter. parameter.
* Array metadata. * Array metadata.
Internal Details Internal details
================ ================
Python Arrow C interface: Python Arrow C interface:

View File

@ -1,10 +1,10 @@
.. _block_allocator: .. _block_allocator:
Block Allocator Block allocator
=============== ===============
Previous Design Previous design
--------------- ---------------
Historically there have been two image allocators in Pillow: Historically there have been two image allocators in Pillow:
@ -16,7 +16,7 @@ large images and makes one allocation for each scan line of size
between one allocation and potentially thousands of small allocations, between one allocation and potentially thousands of small allocations,
leading to unpredictable performance penalties around the transition. leading to unpredictable performance penalties around the transition.
New Design New design
---------- ----------
``ImagingAllocateArray`` now allocates space for images as a chain of ``ImagingAllocateArray`` now allocates space for images as a chain of
@ -28,7 +28,7 @@ line. This is now the default for all internal allocations.
specifically requesting a single segment of memory for sharing with specifically requesting a single segment of memory for sharing with
other code. other code.
Memory Pools Memory pools
------------ ------------
There is now a memory pool to contain a supply of recently freed There is now a memory pool to contain a supply of recently freed

View File

@ -1,5 +1,5 @@
C Extension debugging on Linux, with gbd/valgrind. C extension debugging on Linux, with GBD/Valgrind
================================================== =================================================
Install the tools Install the tools
----------------- -----------------
@ -17,7 +17,7 @@ Then ``sudo apt-get install libtiff5-dbgsym``
- There's a bug with the ``python3-dbg`` package for at least Python 3.8 on - There's a bug with the ``python3-dbg`` package for at least Python 3.8 on
Ubuntu 20.04, and you need to add a new link or two to make it autoload when Ubuntu 20.04, and you need to add a new link or two to make it autoload when
running python: running Python:
:: ::
@ -49,7 +49,7 @@ Then ``sudo apt-get install libtiff5-dbgsym``
source ~/vpy38-dbg/bin/activate source ~/vpy38-dbg/bin/activate
cd ~/Pillow && make install cd ~/Pillow && make install
Test Case Test case
--------- ---------
Take your test image, and make a really simple harness. Take your test image, and make a really simple harness.

View File

@ -1,7 +1,7 @@
.. py:module:: PIL.features .. py:module:: PIL.features
.. py:currentmodule:: PIL.features .. py:currentmodule:: PIL.features
:py:mod:`~PIL.features` Module :py:mod:`~PIL.features` module
============================== ==============================
The :py:mod:`PIL.features` module can be used to detect which Pillow features are available on your system. The :py:mod:`PIL.features` module can be used to detect which Pillow features are available on your system.

View File

@ -1,4 +1,4 @@
Internal Reference Internal reference
================== ==================
.. toctree:: .. toctree::

View File

@ -1,7 +1,7 @@
Internal Modules Internal modules
================ ================
:mod:`~PIL._binary` Module :mod:`~PIL._binary` module
-------------------------- --------------------------
.. automodule:: PIL._binary .. automodule:: PIL._binary
@ -9,7 +9,7 @@ Internal Modules
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL._deprecate` Module :mod:`~PIL._deprecate` module
----------------------------- -----------------------------
.. automodule:: PIL._deprecate .. automodule:: PIL._deprecate
@ -17,7 +17,7 @@ Internal Modules
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL._tkinter_finder` Module :mod:`~PIL._tkinter_finder` module
---------------------------------- ----------------------------------
.. automodule:: PIL._tkinter_finder .. automodule:: PIL._tkinter_finder
@ -25,7 +25,7 @@ Internal Modules
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL._typing` Module :mod:`~PIL._typing` module
-------------------------- --------------------------
.. module:: PIL._typing .. module:: PIL._typing
@ -58,7 +58,7 @@ on some Python versions.
See :py:obj:`typing.TypeGuard`. See :py:obj:`typing.TypeGuard`.
:mod:`~PIL._util` Module :mod:`~PIL._util` module
------------------------ ------------------------
.. automodule:: PIL._util .. automodule:: PIL._util
@ -66,7 +66,7 @@ on some Python versions.
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL._version` Module :mod:`~PIL._version` module
--------------------------- ---------------------------
.. module:: PIL._version .. module:: PIL._version
@ -78,7 +78,7 @@ on some Python versions.
This is the master version number for Pillow, This is the master version number for Pillow,
all other uses reference this module. all other uses reference this module.
:mod:`PIL.Image.core` Module :mod:`PIL.Image.core` module
---------------------------- ----------------------------
.. module:: PIL._imaging .. module:: PIL._imaging

View File

@ -4,7 +4,7 @@ Limits
This page is documentation to the various fundamental size limits in This page is documentation to the various fundamental size limits in
the Pillow implementation. the Pillow implementation.
Internal Limits Internal limits
=============== ===============
* Image sizes cannot be negative. These are checked both in * Image sizes cannot be negative. These are checked both in
@ -25,10 +25,10 @@ Internal Limits
is smaller than 2GB, as calculated by ``y*stride`` (so 2Gpx for 'L' is smaller than 2GB, as calculated by ``y*stride`` (so 2Gpx for 'L'
images, and .5Gpx for 'RGB' images, and .5Gpx for 'RGB'
Format Size Limits Format size limits
================== ==================
* ICO: Max size is 256x256 * ICO: Max size is 256x256
* Webp: 16383x16383 (underlying library size limit: * WebP: 16383x16383 (underlying library size limit:
https://developers.google.com/speed/webp/docs/api) https://developers.google.com/speed/webp/docs/api)

View File

@ -1,6 +1,6 @@
.. _file-handling: .. _file-handling:
File Handling in Pillow File handling in Pillow
======================= =======================
When opening a file as an image, Pillow requires a filename, ``os.PathLike`` When opening a file as an image, Pillow requires a filename, ``os.PathLike``
@ -36,7 +36,7 @@ have multiple frames.
Pillow cannot in general close and reopen a file, so any access to Pillow cannot in general close and reopen a file, so any access to
that file needs to be prior to the close. that file needs to be prior to the close.
Image Lifecycle Image lifecycle
--------------- ---------------
* ``Image.open()`` Filenames and ``Path`` objects are opened as a file. * ``Image.open()`` Filenames and ``Path`` objects are opened as a file.
@ -97,7 +97,7 @@ Complications
im6.load() # FAILS, closed file im6.load() # FAILS, closed file
Proposed File Handling Proposed file handling
---------------------- ----------------------
* ``Image.Image.load()`` should close the image file, unless there are * ``Image.Image.load()`` should close the image file, unless there are

View File

@ -1,7 +1,7 @@
Plugin reference Plugin reference
================ ================
:mod:`~PIL.AvifImagePlugin` Module :mod:`~PIL.AvifImagePlugin` module
---------------------------------- ----------------------------------
.. automodule:: PIL.AvifImagePlugin .. automodule:: PIL.AvifImagePlugin
@ -9,7 +9,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.BmpImagePlugin` Module :mod:`~PIL.BmpImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.BmpImagePlugin .. automodule:: PIL.BmpImagePlugin
@ -17,7 +17,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.BufrStubImagePlugin` Module :mod:`~PIL.BufrStubImagePlugin` module
-------------------------------------- --------------------------------------
.. automodule:: PIL.BufrStubImagePlugin .. automodule:: PIL.BufrStubImagePlugin
@ -25,7 +25,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.CurImagePlugin` Module :mod:`~PIL.CurImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.CurImagePlugin .. automodule:: PIL.CurImagePlugin
@ -33,7 +33,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.DcxImagePlugin` Module :mod:`~PIL.DcxImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.DcxImagePlugin .. automodule:: PIL.DcxImagePlugin
@ -41,7 +41,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.DdsImagePlugin` Module :mod:`~PIL.DdsImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.DdsImagePlugin .. automodule:: PIL.DdsImagePlugin
@ -49,7 +49,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.EpsImagePlugin` Module :mod:`~PIL.EpsImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.EpsImagePlugin .. automodule:: PIL.EpsImagePlugin
@ -57,15 +57,15 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.FitsImagePlugin` Module :mod:`~PIL.FitsImagePlugin` module
-------------------------------------- ----------------------------------
.. automodule:: PIL.FitsImagePlugin .. automodule:: PIL.FitsImagePlugin
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.FliImagePlugin` Module :mod:`~PIL.FliImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.FliImagePlugin .. automodule:: PIL.FliImagePlugin
@ -73,7 +73,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.FpxImagePlugin` Module :mod:`~PIL.FpxImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.FpxImagePlugin .. automodule:: PIL.FpxImagePlugin
@ -81,7 +81,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.GbrImagePlugin` Module :mod:`~PIL.GbrImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.GbrImagePlugin .. automodule:: PIL.GbrImagePlugin
@ -89,7 +89,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.GifImagePlugin` Module :mod:`~PIL.GifImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.GifImagePlugin .. automodule:: PIL.GifImagePlugin
@ -97,7 +97,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.GribStubImagePlugin` Module :mod:`~PIL.GribStubImagePlugin` module
-------------------------------------- --------------------------------------
.. automodule:: PIL.GribStubImagePlugin .. automodule:: PIL.GribStubImagePlugin
@ -105,7 +105,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.Hdf5StubImagePlugin` Module :mod:`~PIL.Hdf5StubImagePlugin` module
-------------------------------------- --------------------------------------
.. automodule:: PIL.Hdf5StubImagePlugin .. automodule:: PIL.Hdf5StubImagePlugin
@ -113,7 +113,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.IcnsImagePlugin` Module :mod:`~PIL.IcnsImagePlugin` module
---------------------------------- ----------------------------------
.. automodule:: PIL.IcnsImagePlugin .. automodule:: PIL.IcnsImagePlugin
@ -121,7 +121,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.IcoImagePlugin` Module :mod:`~PIL.IcoImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.IcoImagePlugin .. automodule:: PIL.IcoImagePlugin
@ -129,7 +129,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.ImImagePlugin` Module :mod:`~PIL.ImImagePlugin` module
-------------------------------- --------------------------------
.. automodule:: PIL.ImImagePlugin .. automodule:: PIL.ImImagePlugin
@ -137,7 +137,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.ImtImagePlugin` Module :mod:`~PIL.ImtImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.ImtImagePlugin .. automodule:: PIL.ImtImagePlugin
@ -145,7 +145,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.IptcImagePlugin` Module :mod:`~PIL.IptcImagePlugin` module
---------------------------------- ----------------------------------
.. automodule:: PIL.IptcImagePlugin .. automodule:: PIL.IptcImagePlugin
@ -153,7 +153,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.JpegImagePlugin` Module :mod:`~PIL.JpegImagePlugin` module
---------------------------------- ----------------------------------
.. automodule:: PIL.JpegImagePlugin .. automodule:: PIL.JpegImagePlugin
@ -161,7 +161,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.Jpeg2KImagePlugin` Module :mod:`~PIL.Jpeg2KImagePlugin` module
------------------------------------ ------------------------------------
.. automodule:: PIL.Jpeg2KImagePlugin .. automodule:: PIL.Jpeg2KImagePlugin
@ -169,7 +169,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.McIdasImagePlugin` Module :mod:`~PIL.McIdasImagePlugin` module
------------------------------------ ------------------------------------
.. automodule:: PIL.McIdasImagePlugin .. automodule:: PIL.McIdasImagePlugin
@ -177,7 +177,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.MicImagePlugin` Module :mod:`~PIL.MicImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.MicImagePlugin .. automodule:: PIL.MicImagePlugin
@ -185,7 +185,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.MpegImagePlugin` Module :mod:`~PIL.MpegImagePlugin` module
---------------------------------- ----------------------------------
.. automodule:: PIL.MpegImagePlugin .. automodule:: PIL.MpegImagePlugin
@ -193,15 +193,15 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.MpoImagePlugin` Module :mod:`~PIL.MpoImagePlugin` module
---------------------------------- ---------------------------------
.. automodule:: PIL.MpoImagePlugin .. automodule:: PIL.MpoImagePlugin
:members: :members:
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.MspImagePlugin` Module :mod:`~PIL.MspImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.MspImagePlugin .. automodule:: PIL.MspImagePlugin
@ -209,7 +209,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.PalmImagePlugin` Module :mod:`~PIL.PalmImagePlugin` module
---------------------------------- ----------------------------------
.. automodule:: PIL.PalmImagePlugin .. automodule:: PIL.PalmImagePlugin
@ -217,7 +217,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.PcdImagePlugin` Module :mod:`~PIL.PcdImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.PcdImagePlugin .. automodule:: PIL.PcdImagePlugin
@ -225,7 +225,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.PcxImagePlugin` Module :mod:`~PIL.PcxImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.PcxImagePlugin .. automodule:: PIL.PcxImagePlugin
@ -233,7 +233,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.PdfImagePlugin` Module :mod:`~PIL.PdfImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.PdfImagePlugin .. automodule:: PIL.PdfImagePlugin
@ -241,7 +241,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.PixarImagePlugin` Module :mod:`~PIL.PixarImagePlugin` module
----------------------------------- -----------------------------------
.. automodule:: PIL.PixarImagePlugin .. automodule:: PIL.PixarImagePlugin
@ -249,7 +249,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.PngImagePlugin` Module :mod:`~PIL.PngImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.PngImagePlugin .. automodule:: PIL.PngImagePlugin
@ -260,7 +260,7 @@ Plugin reference
:member-order: groupwise :member-order: groupwise
:mod:`~PIL.PpmImagePlugin` Module :mod:`~PIL.PpmImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.PpmImagePlugin .. automodule:: PIL.PpmImagePlugin
@ -268,7 +268,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.PsdImagePlugin` Module :mod:`~PIL.PsdImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.PsdImagePlugin .. automodule:: PIL.PsdImagePlugin
@ -276,7 +276,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.SgiImagePlugin` Module :mod:`~PIL.SgiImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.SgiImagePlugin .. automodule:: PIL.SgiImagePlugin
@ -284,7 +284,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.SpiderImagePlugin` Module :mod:`~PIL.SpiderImagePlugin` module
------------------------------------ ------------------------------------
.. automodule:: PIL.SpiderImagePlugin .. automodule:: PIL.SpiderImagePlugin
@ -292,7 +292,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.SunImagePlugin` Module :mod:`~PIL.SunImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.SunImagePlugin .. automodule:: PIL.SunImagePlugin
@ -300,7 +300,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.TgaImagePlugin` Module :mod:`~PIL.TgaImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.TgaImagePlugin .. automodule:: PIL.TgaImagePlugin
@ -308,7 +308,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.TiffImagePlugin` Module :mod:`~PIL.TiffImagePlugin` module
---------------------------------- ----------------------------------
.. automodule:: PIL.TiffImagePlugin .. automodule:: PIL.TiffImagePlugin
@ -316,7 +316,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.WebPImagePlugin` Module :mod:`~PIL.WebPImagePlugin` module
---------------------------------- ----------------------------------
.. automodule:: PIL.WebPImagePlugin .. automodule:: PIL.WebPImagePlugin
@ -324,7 +324,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.WmfImagePlugin` Module :mod:`~PIL.WmfImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.WmfImagePlugin .. automodule:: PIL.WmfImagePlugin
@ -332,7 +332,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.XVThumbImagePlugin` Module :mod:`~PIL.XVThumbImagePlugin` module
------------------------------------- -------------------------------------
.. automodule:: PIL.XVThumbImagePlugin .. automodule:: PIL.XVThumbImagePlugin
@ -340,7 +340,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.XbmImagePlugin` Module :mod:`~PIL.XbmImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.XbmImagePlugin .. automodule:: PIL.XbmImagePlugin
@ -348,7 +348,7 @@ Plugin reference
:undoc-members: :undoc-members:
:show-inheritance: :show-inheritance:
:mod:`~PIL.XpmImagePlugin` Module :mod:`~PIL.XpmImagePlugin` module
--------------------------------- ---------------------------------
.. automodule:: PIL.XpmImagePlugin .. automodule:: PIL.XpmImagePlugin

View File

@ -28,7 +28,7 @@ This threshold can be changed by setting
:py:data:`PIL.ImageFont.MAX_STRING_LENGTH`. It can be disabled by setting :py:data:`PIL.ImageFont.MAX_STRING_LENGTH`. It can be disabled by setting
``ImageFont.MAX_STRING_LENGTH = None``. ``ImageFont.MAX_STRING_LENGTH = None``.
Backwards Incompatible Changes Backwards incompatible changes
============================== ==============================
Categories Categories
@ -164,7 +164,7 @@ Since Pillow's C API is now faster than PyAccess on PyPy,
``Image.USE_CFFI_ACCESS``, for switching from the C API to PyAccess, is ``Image.USE_CFFI_ACCESS``, for switching from the C API to PyAccess, is
similarly deprecated. similarly deprecated.
API Changes API changes
=========== ===========
Added line width parameter to ImageDraw regular_polygon Added line width parameter to ImageDraw regular_polygon
@ -173,7 +173,7 @@ Added line width parameter to ImageDraw regular_polygon
An optional line ``width`` parameter has been added to An optional line ``width`` parameter has been added to
``ImageDraw.Draw.regular_polygon``. ``ImageDraw.Draw.regular_polygon``.
API Additions API additions
============= =============
Added ``alpha_only`` argument to ``getbbox()`` Added ``alpha_only`` argument to ``getbbox()``
@ -184,7 +184,7 @@ Added ``alpha_only`` argument to ``getbbox()``
and the image has an alpha channel, trim transparent pixels. Otherwise, trim and the image has an alpha channel, trim transparent pixels. Otherwise, trim
pixels when all channels are zero. pixels when all channels are zero.
Other Changes Other changes
============= =============
32-bit wheels 32-bit wheels

View File

@ -11,7 +11,7 @@ This release provides an updated install script and updated wheels to
include libwebp 1.3.2, preventing a potential heap buffer overflow in include libwebp 1.3.2, preventing a potential heap buffer overflow in
WebP. WebP.
Other Changes Other changes
============= =============
Updated tests to pass with latest zlib version Updated tests to pass with latest zlib version

View File

@ -1,7 +1,7 @@
10.1.0 10.1.0
------ ------
API Changes API changes
=========== ===========
Setting image mode Setting image mode
@ -35,7 +35,7 @@ to be specified, rather than a single number for both dimensions. ::
ImageFilter.BoxBlur((2, 5)) ImageFilter.BoxBlur((2, 5))
ImageFilter.GaussianBlur((2, 5)) ImageFilter.GaussianBlur((2, 5))
API Additions API additions
============= =============
EpsImagePlugin.gs_binary EpsImagePlugin.gs_binary
@ -84,7 +84,7 @@ font size for this new builtin font::
draw.multiline_text((0, 0), "test", font_size=24) draw.multiline_text((0, 0), "test", font_size=24)
draw.multiline_textbbox((0, 0), "test", font_size=24) draw.multiline_textbbox((0, 0), "test", font_size=24)
Other Changes Other changes
============= =============
Python 3.12 Python 3.12

View File

@ -53,7 +53,7 @@ The functions ``IptcImageFile.dump`` and ``IptcImageFile.i``, and the constant
for internal use, so there is no replacement. They can each be replaced for internal use, so there is no replacement. They can each be replaced
by a single line of code using builtin functions in Python. by a single line of code using builtin functions in Python.
API Changes API changes
=========== ===========
Zero or negative font size error Zero or negative font size error
@ -63,7 +63,7 @@ When creating a :py:class:`~PIL.ImageFont.FreeTypeFont` instance, either directl
through :py:func:`~PIL.ImageFont.truetype`, if the font size is zero or less, a through :py:func:`~PIL.ImageFont.truetype`, if the font size is zero or less, a
:py:exc:`ValueError` will now be raised. :py:exc:`ValueError` will now be raised.
API Additions API additions
============= =============
Added DdsImagePlugin enums Added DdsImagePlugin enums
@ -95,7 +95,7 @@ JPEG tables-only streamtype
When saving JPEG files, ``streamtype`` can now be set to 1, for tables-only. This will When saving JPEG files, ``streamtype`` can now be set to 1, for tables-only. This will
output only the quantization and Huffman tables for the image. output only the quantization and Huffman tables for the image.
Other Changes Other changes
============= =============
Added DDS BC4U and DX10 BC1 and BC4 reading Added DDS BC4U and DX10 BC1 and BC4 reading

View File

@ -65,7 +65,7 @@ ImageMath.eval()
:py:meth:`~PIL.ImageMath.unsafe_eval` instead. See earlier security notes for more :py:meth:`~PIL.ImageMath.unsafe_eval` instead. See earlier security notes for more
information. information.
API Changes API changes
=========== ===========
Added alpha_quality argument when saving WebP images Added alpha_quality argument when saving WebP images
@ -87,7 +87,7 @@ Negative P1-P3 PPM value error
If a P1-P3 PPM image contains a negative value, a :py:exc:`ValueError` will now be If a P1-P3 PPM image contains a negative value, a :py:exc:`ValueError` will now be
raised. raised.
API Additions API additions
============= =============
Added PerspectiveTransform Added PerspectiveTransform
@ -97,7 +97,7 @@ 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`.
Other Changes Other changes
============= =============
Portable FloatMap (PFM) images Portable FloatMap (PFM) images

View File

@ -41,7 +41,7 @@ ImageDraw.getdraw hints parameter
The ``hints`` parameter in :py:meth:`~PIL.ImageDraw.getdraw()` has been deprecated. The ``hints`` parameter in :py:meth:`~PIL.ImageDraw.getdraw()` has been deprecated.
API Additions API additions
============= =============
ImageDraw.circle ImageDraw.circle
@ -51,7 +51,7 @@ Added :py:meth:`~PIL.ImageDraw.ImageDraw.circle`. It provides the same functiona
:py:meth:`~PIL.ImageDraw.ImageDraw.ellipse`, but instead of taking a bounding box, it :py:meth:`~PIL.ImageDraw.ImageDraw.ellipse`, but instead of taking a bounding box, it
takes a center point and radius. takes a center point and radius.
Other Changes Other changes
============= =============
Python 3.13 beta Python 3.13 beta

View File

@ -1,7 +1,7 @@
11.0.0 11.0.0
------ ------
Backwards Incompatible Changes Backwards incompatible changes
============================== ==============================
Python 3.8 Python 3.8
@ -103,7 +103,7 @@ JpegImageFile.huffman_ac and JpegImageFile.huffman_dc
The ``huffman_ac`` and ``huffman_dc`` dictionaries on JPEG images were unused. They The ``huffman_ac`` and ``huffman_dc`` dictionaries on JPEG images were unused. They
have been deprecated, and will be removed in Pillow 12 (2025-10-15). have been deprecated, and will be removed in Pillow 12 (2025-10-15).
Specific WebP Feature Checks Specific WebP feature checks
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. deprecated:: 11.0.0 .. deprecated:: 11.0.0
@ -113,7 +113,7 @@ Specific WebP Feature Checks
``True`` if the WebP module is installed, until they are removed in Pillow ``True`` if the WebP module is installed, until they are removed in Pillow
12.0.0 (2025-10-15). 12.0.0 (2025-10-15).
API Changes API changes
=========== ===========
Default resampling filter for I;16* image modes Default resampling filter for I;16* image modes
@ -122,7 +122,7 @@ Default resampling filter for I;16* image modes
The default resampling filter for I;16, I;16L, I;16B and I;16N has been changed from The default resampling filter for I;16, I;16L, I;16B and I;16N has been changed from
``Image.NEAREST`` to ``Image.BICUBIC``, to match the majority of modes. ``Image.NEAREST`` to ``Image.BICUBIC``, to match the majority of modes.
API Additions API additions
============= =============
Writing XMP bytes to JPEG and MPO Writing XMP bytes to JPEG and MPO
@ -138,7 +138,7 @@ either JPEG or MPO images::
im.info["xmp"] = b"test" im.info["xmp"] = b"test"
im.save("out.jpg") im.save("out.jpg")
Other Changes Other changes
============= =============
Python 3.13 Python 3.13
@ -154,7 +154,7 @@ Support has also been added for the experimental free-threaded mode of :pep:`703
Python 3.13 only supports macOS versions 10.13 and later. Python 3.13 only supports macOS versions 10.13 and later.
C-level Flags C-level flags
^^^^^^^^^^^^^ ^^^^^^^^^^^^^
Some compiling flags like ``WITH_THREADING``, ``WITH_IMAGECHOPS``, and other Some compiling flags like ``WITH_THREADING``, ``WITH_IMAGECHOPS``, and other

View File

@ -10,7 +10,7 @@ ExifTags.IFD.Makernote
``ExifTags.IFD.Makernote`` has been deprecated. Instead, use ``ExifTags.IFD.Makernote`` has been deprecated. Instead, use
``ExifTags.IFD.MakerNote``. ``ExifTags.IFD.MakerNote``.
API Changes API changes
=========== ===========
Writing XMP bytes to JPEG and MPO Writing XMP bytes to JPEG and MPO
@ -34,7 +34,7 @@ be used::
second_im.encoderinfo = {"xmp": b"test"} second_im.encoderinfo = {"xmp": b"test"}
im.save("out.mpo", save_all=True, append_images=[second_im]) im.save("out.mpo", save_all=True, append_images=[second_im])
API Additions API additions
============= =============
Check for zlib-ng Check for zlib-ng
@ -54,7 +54,7 @@ TIFF images can now be saved as BigTIFF using a ``big_tiff`` argument::
im.save("out.tiff", big_tiff=True) im.save("out.tiff", big_tiff=True)
Other Changes Other changes
============= =============
Reading JPEG 2000 comments Reading JPEG 2000 comments

View File

@ -32,7 +32,7 @@ Image.Image.get_child_images()
method uses an image's file pointer, and so child images could only be retrieved from method uses an image's file pointer, and so child images could only be retrieved from
an :py:class:`PIL.ImageFile.ImageFile` instance. an :py:class:`PIL.ImageFile.ImageFile` instance.
API Changes API changes
=========== ===========
``append_images`` no longer requires ``save_all`` ``append_images`` no longer requires ``save_all``
@ -44,7 +44,7 @@ supports saving multiple frames::
im.save("out.gif", append_images=ims) im.save("out.gif", append_images=ims)
API Additions API additions
============= =============
``"justify"`` multiline text alignment ``"justify"`` multiline text alignment
@ -86,7 +86,7 @@ DXT5, BC2, BC3 and BC5 are supported::
im.save("out.dds", pixel_format="DXT1") im.save("out.dds", pixel_format="DXT1")
Other Changes Other changes
============= =============
Arrow support Arrow support

View File

@ -1,13 +1,13 @@
2.7.0 2.7.0
----- -----
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
@ -155,7 +155,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

View File

@ -1,7 +1,7 @@
3.0.0 3.0.0
----- -----
Backwards Incompatible Changes Backwards incompatible changes
============================== ==============================
Several methods that have been marked as deprecated for many releases Several methods that have been marked as deprecated for many releases
@ -18,10 +18,10 @@ have been removed in this release:
* ``ImageWin.fromstring()`` * ``ImageWin.fromstring()``
* ``ImageWin.tostring()`` * ``ImageWin.tostring()``
Other Changes Other changes
============= =============
Saving Multipage Images Saving multipage images
^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^
There is now support for saving multipage images in the ``GIF`` and There is now support for saving multipage images in the ``GIF`` and
@ -30,10 +30,10 @@ as a keyword argument to the save::
im.save('test.pdf', save_all=True) im.save('test.pdf', save_all=True)
Tiff ImageFileDirectory Rewrite TIFF ImageFileDirectory rewrite
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The Tiff ImageFileDirectory metadata code has been rewritten. Where The TIFF ImageFileDirectory metadata code has been rewritten. Where
previously it returned a somewhat arbitrary set of values and tuples, previously it returned a somewhat arbitrary set of values and tuples,
it now returns bare values where appropriate and tuples when the it now returns bare values where appropriate and tuples when the
metadata item is a sequence or collection. metadata item is a sequence or collection.
@ -41,7 +41,7 @@ metadata item is a sequence or collection.
The original metadata is still available in the TiffImage.tags, the The original metadata is still available in the TiffImage.tags, the
new values are available in the TiffImage.tags_v2 member. The old new values are available in the TiffImage.tags_v2 member. The old
structures will be deprecated at some point in the future. When structures will be deprecated at some point in the future. When
saving Tiff metadata, new code should use the saving TIFF metadata, new code should use the
TiffImagePlugin.ImageFileDirectory_v2 class. TiffImagePlugin.ImageFileDirectory_v2 class.
LibJpeg and Zlib are required by default LibJpeg and Zlib are required by default

View File

@ -22,7 +22,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
@ -63,7 +63,7 @@ single item tuples have been unwrapped and return a bare element.
The format returned by Pillow 3.0 has been abandoned. A more fully 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

View File

@ -1,7 +1,7 @@
3.2.0 3.2.0
----- -----
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
@ -18,7 +18,7 @@ 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.
Passthrough Parameters for ImageDraw.text Passthrough parameters for ImageDraw.text
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
``ImageDraw.multiline_text`` and ``ImageDraw.multiline_size`` take extra ``ImageDraw.multiline_text`` and ``ImageDraw.multiline_size`` take extra

View File

@ -11,7 +11,7 @@ libimagequant. We cannot distribute binaries due to licensing
differences. 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``:
@ -43,7 +43,7 @@ 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

View File

@ -4,7 +4,7 @@
Security 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
@ -27,7 +27,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

View File

@ -1,7 +1,7 @@
3.4.0 3.4.0
----- -----
Backwards Incompatible Changes Backwards incompatible changes
============================== ==============================
Image.core.open_ppm removed Image.core.open_ppm removed
@ -14,7 +14,7 @@ been removed. If you were using this function, please use
Deprecations Deprecations
============ ============
Deprecation Warning when Saving JPEGs Deprecation warning when saving JPEGs
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
JPEG images cannot contain an alpha channel. Pillow prior to 3.4.0 JPEG images cannot contain an alpha channel. Pillow prior to 3.4.0
@ -22,7 +22,7 @@ silently drops the alpha channel. With this release Pillow will now
issue a :py:exc:`DeprecationWarning` when attempting to save a ``RGBA`` mode 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 as a JPEG. This will become an error in Pillow 4.2.
API Additions API additions
============= =============
New resizing filters New resizing filters
@ -37,7 +37,7 @@ 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.
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

View File

@ -1,7 +1,7 @@
4.0.0 4.0.0
----- -----
Python 2.6 and 3.2 Dropped Python 2.6 and 3.2 dropped
^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
Pillow 4.0 no longer supports Python 2.6 and 3.2. We will not be Pillow 4.0 no longer supports Python 2.6 and 3.2. We will not be

View File

@ -15,10 +15,10 @@ Several deprecated items have been removed.
``PIL.ImageDraw.ImageDraw.setfont`` have been removed. ``PIL.ImageDraw.ImageDraw.setfont`` have been removed.
Other Changes 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,
@ -41,7 +41,7 @@ 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
@ -57,14 +57,14 @@ saving images. There are two external changes that arise from this:
This refactor fixed some bugs with palette handling when saving This refactor fixed some bugs with palette handling when saving
multiple frame GIFs. multiple frame GIFs.
New Method: Image.remap_palette New method: Image.remap_palette
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The method :py:meth:`PIL.Image.Image.remap_palette()` has been The method :py:meth:`PIL.Image.Image.remap_palette()` has been
added. This method was hoisted from the GifImagePlugin code used to added. This method was hoisted from the GifImagePlugin code used to
optimize the palette. optimize the palette.
Added Decoder Registry and Support for Python Based Decoders Added decoder registry and support for Python-based decoders
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
There is now a decoder registry similar to the image plugin There is now a decoder registry similar to the image plugin

View File

@ -1,7 +1,7 @@
4.1.1 4.1.1
----- -----
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,

View File

@ -1,7 +1,7 @@
4.2.0 4.2.0
----- -----
Backwards Incompatible Changes Backwards incompatible changes
============================== ==============================
Several deprecated items have been removed Several deprecated items have been removed
@ -17,17 +17,17 @@ Several deprecated items have been removed
was shown. From Pillow 4.2.0, the deprecation warning is removed and was shown. From Pillow 4.2.0, the deprecation warning is removed and
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
was accessible from the python layer. was accessible from the python layer.
Other Changes 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
@ -36,7 +36,7 @@ dependencies: harfbuzz, fribidi, and raqm. See the :doc:`install documentation
<../installation>` for further details. This feature is tested and works on <../installation>` for further details. This feature is tested and works on
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:
@ -47,7 +47,7 @@ New Optional Parameters
optional parameter for specifying additional images to create optional parameter for specifying additional images to create
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

View File

@ -3,7 +3,7 @@
There are no functional changes in this release. There are no functional changes in this release.
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

View File

@ -1,7 +1,7 @@
4.3.0 4.3.0
----- -----
API Changes API changes
=========== ===========
Deprecations Deprecations
@ -12,7 +12,7 @@ Several undocumented functions in ImageOps have been deprecated:
``box_blur``. Use the equivalent operations in ``ImageFilter`` ``box_blur``. Use the equivalent operations in ``ImageFilter``
instead. These functions will be removed in a future release. instead. These functions will be removed in a future release.
TIFF Metadata Changes TIFF metadata changes
^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
* TIFF tags with unknown type/quantity now default to being bare * TIFF tags with unknown type/quantity now default to being bare
@ -27,7 +27,7 @@ TIFF Metadata Changes
items, as there can be multiple items, one for UTF-8, and one for items, as there can be multiple items, one for UTF-8, and one for
UTF-16. UTF-16.
Core Image API Changes Core Image API changes
^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^
These are internal functions that should not have been used by user These are internal functions that should not have been used by user
@ -44,10 +44,10 @@ The ``PIL.Image.core.getcount`` methods have been removed, use
``PIL.Image.core.get_stats()['new_count']`` property instead. ``PIL.Image.core.get_stats()['new_count']`` property instead.
API Additions API additions
============= =============
Get One Channel From Image Get one channel from image
^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
A new method :py:meth:`PIL.Image.Image.getchannel` has been added to A new method :py:meth:`PIL.Image.Image.getchannel` has been added to
@ -56,14 +56,14 @@ return a single channel by index or name. For example,
``getchannel`` should work up to 6 times faster than ``getchannel`` should work up to 6 times faster than
``image.split()[0]`` in previous Pillow versions. ``image.split()[0]`` in previous Pillow versions.
Box Blur Box blur
^^^^^^^^ ^^^^^^^^
A new filter, :py:class:`PIL.ImageFilter.BoxBlur`, has been A new filter, :py:class:`PIL.ImageFilter.BoxBlur`, has been
added. This is a filter with similar results to a Gaussian blur, but added. This is a filter with similar results to a Gaussian blur, but
is much faster. is much faster.
Partial Resampling Partial resampling
^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
Added new argument ``box`` for :py:meth:`PIL.Image.Image.resize`. This Added new argument ``box`` for :py:meth:`PIL.Image.Image.resize`. This
@ -71,14 +71,14 @@ argument defines a source rectangle from within the source image to be
resized. This is very similar to the ``image.crop(box).resize(size)`` resized. This is very similar to the ``image.crop(box).resize(size)``
sequence except that ``box`` can be specified with subpixel accuracy. sequence except that ``box`` can be specified with subpixel accuracy.
New Transpose Operation New transpose operation
^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^
The ``Image.TRANSVERSE`` operation has been added to The ``Image.TRANSVERSE`` operation has been added to
:py:meth:`PIL.Image.Image.transpose`. This is equivalent to a transpose :py:meth:`PIL.Image.Image.transpose`. This is equivalent to a transpose
operation about the opposite diagonal. operation about the opposite diagonal.
Multiband Filters Multiband filters
^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^
There is a new :py:class:`PIL.ImageFilter.MultibandFilter` base class There is a new :py:class:`PIL.ImageFilter.MultibandFilter` base class
@ -87,10 +87,10 @@ operation. The original :py:class:`PIL.ImageFilter.Filter` class
remains for image filters that can process only single band images, or remains for image filters that can process only single band images, or
require splitting of channels prior to filtering. require splitting of channels prior to filtering.
Other Changes Other changes
============= =============
Loading 16-bit TIFF Images Loading 16-bit TIFF images
^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
Pillow now can read 16-bit multichannel TIFF files including files Pillow now can read 16-bit multichannel TIFF files including files
@ -101,7 +101,7 @@ Pillow now can read 16-bit signed integer single channel TIFF
files. The image data is promoted to 32-bit for storage and files. The image data is promoted to 32-bit for storage and
processing. processing.
SGI Images SGI images
^^^^^^^^^^ ^^^^^^^^^^
Pillow can now read and write uncompressed 16-bit multichannel SGI Pillow can now read and write uncompressed 16-bit multichannel SGI
@ -129,7 +129,7 @@ This release contains several performance improvements:
falling back to an allocation for each scan line for images larger falling back to an allocation for each scan line for images larger
than the block size. than the block size.
CMYK Conversion CMYK conversion
^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^
The basic CMYK->RGB conversion has been tweaked to match the formula The basic CMYK->RGB conversion has been tweaked to match the formula

View File

@ -1,10 +1,10 @@
5.0.0 5.0.0
----- -----
Backwards Incompatible Changes Backwards incompatible changes
============================== ==============================
Python 3.3 Dropped Python 3.3 dropped
^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
Python 3.3 is EOL and no longer supported due to moving testing from nose, Python 3.3 is EOL and no longer supported due to moving testing from nose,
@ -12,7 +12,7 @@ which is deprecated, to pytest, which doesn't support Python 3.3. We will not
be creating binaries, testing, or retaining compatibility with this version. be creating binaries, testing, or retaining compatibility with this version.
The final version of Pillow for Python 3.3 is 4.3.0. The final version of Pillow for Python 3.3 is 4.3.0.
Decompression Bombs now raise Exceptions Decompression bombs now raise exceptions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Pillow has previously emitted warnings for images that are Pillow has previously emitted warnings for images that are
@ -31,7 +31,7 @@ separate package, pillow-scripts, living at
https://github.com/python-pillow/pillow-scripts. https://github.com/python-pillow/pillow-scripts.
API Changes API changes
=========== ===========
OleFileIO.py OleFileIO.py
@ -54,7 +54,7 @@ Several image plugins supported a named ``check`` parameter on their
nominally private ``_save`` method to preflight if the image could be nominally private ``_save`` method to preflight if the image could be
saved in that format. That parameter has been removed. saved in that format. That parameter has been removed.
API Additions API additions
============= =============
Image.transform Image.transform
@ -65,16 +65,16 @@ A new named parameter, ``fillcolor``, has been added to
the area outside the transformed area in the output image. This the area outside the transformed area in the output image. This
parameter takes the same color specifications as used in ``Image.new``. parameter takes the same color specifications as used in ``Image.new``.
GIF Disposal GIF disposal
^^^^^^^^^^^^ ^^^^^^^^^^^^
Multiframe GIF images now take an optional disposal parameter to Multiframe GIF images now take an optional disposal parameter to
specify the disposal option for changed pixels. specify the disposal option for changed pixels.
Other Changes Other changes
============= =============
Compressed TIFF Images Compressed TIFF images
^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^
Previously, there were some compression modes (JPEG, Packbits, and Previously, there were some compression modes (JPEG, Packbits, and
@ -82,7 +82,7 @@ LZW) that were supported with Pillow's internal TIFF decoder. All
compressed TIFFs are now read using the ``libtiff`` decoder, as it compressed TIFFs are now read using the ``libtiff`` decoder, as it
implements the compression schemes more correctly. implements the compression schemes more correctly.
Libraqm is now Dynamically Linked Libraqm is now dynamically linked
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The libraqm dependency for complex text scripts is now linked The libraqm dependency for complex text scripts is now linked
@ -90,14 +90,14 @@ dynamically at runtime rather than at packaging time. This allows us
to release binaries with support for libraqm if it is installed on the to release binaries with support for libraqm if it is installed on the
user's machine. user's machine.
Source Layout Changes Source layout changes
^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
The Pillow source is now stored within the ``src`` directory of the The Pillow source is now stored within the ``src`` directory of the
distribution. This prevents accidental imports of the PIL directory distribution. This prevents accidental imports of the PIL directory
when running Python from the project directory. when running Python from the project directory.
Setup.py Changes Setup.py changes
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
Multiarch support on Linux should be more robust, especially on Debian Multiarch support on Linux should be more robust, especially on Debian

View File

@ -1,7 +1,7 @@
5.1.0 5.1.0
----- -----
API Changes API changes
=========== ===========
Optional channels for TIFF files Optional channels for TIFF files
@ -12,22 +12,22 @@ and ``CMYK`` with up to 6 8-bit channels, discarding any extra
channels if the content is tagged as UNSPECIFIED. Pillow still does channels if the content is tagged as UNSPECIFIED. Pillow still does
not store more than 4 8-bit channels of image data. not store more than 4 8-bit channels of image data.
API Additions API additions
============= =============
Append to PDF Files 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.
New BLP File Format New 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.
Other Changes Other changes
============= =============
WebP memory leak WebP memory leak

View File

@ -1,7 +1,7 @@
5.2.0 5.2.0
----- -----
API Changes API changes
=========== ===========
Deprecations Deprecations
@ -17,7 +17,7 @@ Pillow 6.0.0, and ``PILLOW_VERSION`` will be removed after that.
Use ``PIL.__version__`` instead. Use ``PIL.__version__`` instead.
API Additions API additions
============= =============
3D color lookup tables 3D color lookup tables
@ -75,7 +75,7 @@ TGA file format
Pillow can now read and write LA data (in addition to L, P, RGB and RGBA), and Pillow can now read and write LA data (in addition to L, P, RGB and RGBA), and
write RLE data (in addition to uncompressed). write RLE data (in addition to uncompressed).
Other Changes Other changes
============= =============
Support added for Python 3.7 Support added for Python 3.7

View File

@ -1,7 +1,7 @@
5.3.0 5.3.0
----- -----
API Changes API changes
=========== ===========
Image size Image size
@ -20,7 +20,7 @@ The exceptions to this are:
as direct image size setting was previously necessary to work around an issue with tile extents. as direct image size setting was previously necessary to work around an issue with tile extents.
API Additions API additions
============= =============
Added line width parameter to rectangle and ellipse-based shapes Added line width parameter to rectangle and ellipse-based shapes
@ -59,7 +59,7 @@ 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 ratio and size, filling new space with a provided ``color`` and positioning the
image within the new area through a ``centering`` argument. image within the new area through a ``centering`` argument.
Other Changes Other changes
============= =============
Added support for reading tiled TIFF images through LibTIFF. Compressed TIFF Added support for reading tiled TIFF images through LibTIFF. Compressed TIFF

View File

@ -1,7 +1,7 @@
5.4.0 5.4.0
----- -----
API Changes API changes
=========== ===========
APNG extension to PNG plugin APNG extension to PNG plugin
@ -55,7 +55,7 @@ TIFF images can now be saved with custom integer, float and string TIFF tags::
print(im2.tag_v2[37002]) # "custom tag value" print(im2.tag_v2[37002]) # "custom tag value"
print(im2.tag_v2[37004]) # b"custom tag value" print(im2.tag_v2[37004]) # b"custom tag value"
Other Changes Other changes
============= =============
ImageOps.fit ImageOps.fit

View File

@ -1,7 +1,7 @@
6.0.0 6.0.0
----- -----
Backwards Incompatible Changes Backwards incompatible changes
============================== ==============================
Python 3.4 dropped Python 3.4 dropped
@ -32,7 +32,7 @@ Removed deprecated VERSION
``VERSION`` (the old PIL version, always 1.1.7) has been removed. Use ``__version__`` ``VERSION`` (the old PIL version, always 1.1.7) has been removed. Use ``__version__``
instead. instead.
API Changes API changes
=========== ===========
Deprecations Deprecations
@ -137,7 +137,7 @@ loaded, ``Image.MIME["PPM"]`` will now return the generic "image/x-portable-anym
The TGA, PCX and ICO formats also now have MIME types: "image/x-tga", "image/x-pcx" and The TGA, PCX and ICO formats also now have MIME types: "image/x-tga", "image/x-pcx" and
"image/x-icon" respectively. "image/x-icon" respectively.
API Additions API additions
============= =============
DIB file format DIB file format
@ -186,7 +186,7 @@ EXIF data can now be read from and saved to PNG images. However, unlike other im
formats, EXIF data is not guaranteed to be present in :py:attr:`~PIL.Image.Image.info` formats, EXIF data is not guaranteed to be present in :py:attr:`~PIL.Image.Image.info`
until :py:meth:`~PIL.Image.Image.load` has been called. until :py:meth:`~PIL.Image.Image.load` has been called.
Other Changes Other changes
============= =============
Reading new DDS image format Reading new DDS image format

View File

@ -23,7 +23,7 @@ Use instead::
with Image.open("hopper.png") as im: with Image.open("hopper.png") as im:
im.save("out.jpg") im.save("out.jpg")
API Additions API additions
============= =============
Image.entropy Image.entropy
@ -61,7 +61,7 @@ file. ``ImageFont.FreeTypeFont`` has four new methods,
instead. An :py:exc:`IOError` will be raised if the font is not a variation font. FreeType instead. An :py:exc:`IOError` will be raised if the font is not a variation font. FreeType
2.9.1 or greater is required. 2.9.1 or greater is required.
Other Changes Other changes
============= =============
ImageTk.getimage ImageTk.getimage

View File

@ -29,7 +29,7 @@ perform operations on it.
The CVE is regarding DOS problems, such as consuming large amounts of memory, The CVE is regarding DOS problems, such as consuming large amounts of memory,
or taking a large amount of time to process an image. or taking a large amount of time to process an image.
API Changes API changes
=========== ===========
Image.getexif Image.getexif
@ -48,7 +48,7 @@ There has been a longstanding warning that the defaults of ``Image.frombuffer``
may change in the future for the "raw" decoder. The change will now take place may change in the future for the "raw" decoder. The change will now take place
in Pillow 7.0. in Pillow 7.0.
API Additions API additions
============= =============
Text stroking Text stroking
@ -93,7 +93,7 @@ ImageGrab on multi-monitor Windows
An ``all_screens`` argument has been added to ``ImageGrab.grab``. If ``True``, An ``all_screens`` argument has been added to ``ImageGrab.grab``. If ``True``,
all monitors will be included in the created image. all monitors will be included in the created image.
Other Changes Other changes
============= =============
Removed bdist_wininst .exe installers Removed bdist_wininst .exe installers

View File

@ -1,7 +1,7 @@
6.2.1 6.2.1
----- -----
API Changes API changes
=========== ===========
Deprecations Deprecations
@ -15,7 +15,7 @@ Python 2.7 reaches end-of-life on 2020-01-01.
Pillow 7.0.0 will be released on 2020-01-01 and will drop support for Python Pillow 7.0.0 will be released on 2020-01-01 and will drop support for Python
2.7, making Pillow 6.2.x the last release series to support Python 2. 2.7, making Pillow 6.2.x the last release series to support Python 2.
Other Changes Other changes
============= =============
Support added for Python 3.8 Support added for Python 3.8

View File

@ -1,7 +1,7 @@
7.0.0 7.0.0
----- -----
Backwards Incompatible Changes Backwards incompatible changes
============================== ==============================
Python 2.7 Python 2.7
@ -78,7 +78,7 @@ bounds of resulting image. This may be useful in a subsequent
.. _chain methods: https://en.wikipedia.org/wiki/Method_chaining .. _chain methods: https://en.wikipedia.org/wiki/Method_chaining
API Additions API additions
============= =============
Custom unidentified image error Custom unidentified image error
@ -124,7 +124,7 @@ now also be loaded at another resolution::
with Image.open("drawing.wmf") as im: with Image.open("drawing.wmf") as im:
im.load(dpi=144) im.load(dpi=144)
Other Changes Other changes
============= =============
Image.__del__ Image.__del__

View File

@ -35,7 +35,7 @@ out-of-bounds reads via a crafted JP2 file.
In ``libImaging/SgiRleDecode.c`` in Pillow through 7.0.0, a number of out-of-bounds In ``libImaging/SgiRleDecode.c`` in Pillow through 7.0.0, a number of out-of-bounds
reads exist in the parsing of SGI image files, a different issue than :cve:`2020-5311`. reads exist in the parsing of SGI image files, a different issue than :cve:`2020-5311`.
API Changes API changes
=========== ===========
Allow saving of zero quality JPEG images Allow saving of zero quality JPEG images
@ -50,7 +50,7 @@ been resolved. ::
im = Image.open("hopper.jpg") im = Image.open("hopper.jpg")
im.save("out.jpg", quality=0) im.save("out.jpg", quality=0)
API Additions API additions
============= =============
New channel operations New channel operations
@ -101,7 +101,7 @@ Passing a different value on Windows or macOS will force taking a snapshot
using the selected X server; pass an empty string to use the default X server. using the selected X server; pass an empty string to use the default X server.
XCB support is not included in pre-compiled wheels for Windows and macOS. XCB support is not included in pre-compiled wheels for Windows and macOS.
Other Changes Other changes
============= =============
If present, only use alpha channel for bounding box If present, only use alpha channel for bounding box

View File

@ -1,7 +1,7 @@
7.2.0 7.2.0
----- -----
API Changes API changes
=========== ===========
Replaced TiffImagePlugin DEBUG with logging Replaced TiffImagePlugin DEBUG with logging

View File

@ -1,7 +1,7 @@
8.0.0 8.0.0
----- -----
Backwards Incompatible Changes Backwards incompatible changes
============================== ==============================
Python 3.5 Python 3.5
@ -44,7 +44,7 @@ Removed Use instead
``product_model`` Unicode :py:attr:`~.CmsProfile.model` ``product_model`` Unicode :py:attr:`~.CmsProfile.model`
======================== =================================================== ======================== ===================================================
API Changes API changes
=========== ===========
ImageDraw.text: stroke_width ImageDraw.text: stroke_width
@ -67,7 +67,7 @@ Add MIME type to PsdImagePlugin
"image/vnd.adobe.photoshop" is now registered as the "image/vnd.adobe.photoshop" is now registered as the
:py:class:`.PsdImagePlugin.PsdImageFile` MIME type. :py:class:`.PsdImagePlugin.PsdImageFile` MIME type.
API Additions API additions
============= =============
Image.open: add formats parameter Image.open: add formats parameter
@ -135,7 +135,7 @@ and :py:meth:`.FreeTypeFont.getbbox` return the bounding box of rendered text.
These functions accept an ``anchor`` parameter, see :ref:`text-anchors` for details. These functions accept an ``anchor`` parameter, see :ref:`text-anchors` for details.
Other Changes Other changes
============= =============
Improved ellipse-drawing algorithm Improved ellipse-drawing algorithm

View File

@ -26,7 +26,7 @@ leading to an out-of-bounds write in ``TiffDecode.c``. This potentially affects
versions from 6.0.0 to 8.0.1, depending on the version of LibTIFF. This was reported through versions from 6.0.0 to 8.0.1, depending on the version of LibTIFF. This was reported through
`Tidelift`_. `Tidelift`_.
:cve:`2020-35655`: SGI Decode buffer overrun :cve:`2020-35655`: SGI decode buffer overrun
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 byte read overflow in ``SgiRleDecode.c``, where the code was not correctly 4 byte read overflow in ``SgiRleDecode.c``, where the code was not correctly
@ -64,7 +64,7 @@ Makefile
The ``install-venv`` target has been deprecated. The ``install-venv`` target has been deprecated.
API Additions API additions
============= =============
Append images to ICO Append images to ICO
@ -77,7 +77,7 @@ With this release, a list of images can be provided to the ``append_images`` par
when saving, to replace the scaled down versions. This is the same functionality that when saving, to replace the scaled down versions. This is the same functionality that
already exists for the ICNS format. already exists for the ICNS format.
Other Changes Other changes
============= =============
Makefile Makefile

View File

@ -32,7 +32,7 @@ DOS attack.
There is an out-of-bounds read in ``SgiRleDecode.c`` since Pillow 4.3.0. There is an out-of-bounds read in ``SgiRleDecode.c`` since Pillow 4.3.0.
Other Changes Other changes
============= =============
A crash with the feature flags for libimagequant, libjpeg-turbo, WebP and XCB on A crash with the feature flags for libimagequant, libjpeg-turbo, WebP and XCB on

View File

@ -74,7 +74,7 @@ Tk/Tcl 8.4
Support for Tk/Tcl 8.4 is deprecated and will be removed in Pillow 10.0.0 (2023-07-01), Support for Tk/Tcl 8.4 is deprecated and will be removed in Pillow 10.0.0 (2023-07-01),
when Tk/Tcl 8.5 will be the minimum supported. when Tk/Tcl 8.5 will be the minimum supported.
API Changes API changes
=========== ===========
Image.alpha_composite: dest Image.alpha_composite: dest
@ -107,7 +107,7 @@ removed. Instead, ``Image.getmodebase()``, ``Image.getmodetype()``,
``Image.getmodebandnames()``, ``Image.getmodebands()`` or ``ImageMode.getmode()`` ``Image.getmodebandnames()``, ``Image.getmodebands()`` or ``ImageMode.getmode()``
can be used. can be used.
API Additions API additions
============= =============
getxmp() for JPEG images getxmp() for JPEG images
@ -177,7 +177,7 @@ be specified through a keyword argument::
im.save("out.tif", icc_profile=...) im.save("out.tif", icc_profile=...)
Other Changes Other changes
============= =============
GIF writer uses LZW encoding GIF writer uses LZW encoding

View File

@ -33,7 +33,7 @@ dictionary. The ``convert_dict_qtables`` method no longer
performs any operations on the data given to it, has been deprecated and will be performs any operations on the data given to it, has been deprecated and will be
removed in Pillow 10.0.0 (2023-07-01). removed in Pillow 10.0.0 (2023-07-01).
API Changes API changes
=========== ===========
Changed WebP default "method" value when saving Changed WebP default "method" value when saving
@ -73,7 +73,7 @@ through :py:meth:`~PIL.Image.Image.getexif`. This also provides access to the GP
EXIF IFDs, through ``im.getexif().get_ifd(0x8825)`` and EXIF IFDs, through ``im.getexif().get_ifd(0x8825)`` and
``im.getexif().get_ifd(0x8769)`` respectively. ``im.getexif().get_ifd(0x8769)`` respectively.
API Additions API additions
============= =============
ImageOps.contain ImageOps.contain
@ -100,7 +100,7 @@ format, through the new ``bitmap_format`` argument::
im.save("out.ico", bitmap_format="bmp") im.save("out.ico", bitmap_format="bmp")
Other Changes Other changes
============= =============
Added DDS BC5 reading and uncompressed saving Added DDS BC5 reading and uncompressed saving

View File

@ -20,7 +20,7 @@ bytes off the end of the allocated buffer from the heap. Present since Pillow 7.
This bug was found by Google's `OSS-Fuzz`_ `CIFuzz`_ runs. This bug was found by Google's `OSS-Fuzz`_ `CIFuzz`_ runs.
Other Changes Other changes
============= =============
Python 3.10 wheels Python 3.10 wheels

View File

@ -13,7 +13,7 @@ Before Pillow 8.3.0, ``ImagePalette`` required palette data of particular length
default, and the size parameter could be used to override that. Pillow 8.3.0 removed default, and the size parameter could be used to override that. Pillow 8.3.0 removed
the default required length, also removing the need for the size parameter. the default required length, also removing the need for the size parameter.
API Additions API additions
============= =============
Added "transparency" argument for loading EPS images Added "transparency" argument for loading EPS images
@ -33,7 +33,7 @@ Added WalImageFile class
:py:class:`PIL.Image.Image` instance. It now returns a dedicated :py:class:`PIL.Image.Image` instance. It now returns a dedicated
:py:class:`PIL.WalImageFile.WalImageFile` class. :py:class:`PIL.WalImageFile.WalImageFile` class.
Other Changes Other changes
============= =============
Speed improvement when rotating square images Speed improvement when rotating square images

View File

@ -59,7 +59,7 @@ initializing ``ImagePath.Path``.
.. _OSS-Fuzz: https://github.com/google/oss-fuzz .. _OSS-Fuzz: https://github.com/google/oss-fuzz
Backwards Incompatible Changes Backwards incompatible changes
============================== ==============================
Python 3.6 Python 3.6
@ -102,7 +102,7 @@ ImageFile.raise_ioerror
has been removed. Use ``ImageFile.raise_oserror`` instead. has been removed. Use ``ImageFile.raise_oserror`` instead.
API Changes API changes
=========== ===========
Added line width parameter to ImageDraw polygon Added line width parameter to ImageDraw polygon
@ -111,7 +111,7 @@ Added line width parameter to ImageDraw polygon
An optional line ``width`` parameter has been added to ``ImageDraw.Draw.polygon``. An optional line ``width`` parameter has been added to ``ImageDraw.Draw.polygon``.
API Additions API additions
============= =============
ImageShow.XDGViewer ImageShow.XDGViewer
@ -132,7 +132,7 @@ Support has been added for the "title" argument in
argument will also now be supported, e.g. ``im.show(title="My Image")`` and argument will also now be supported, e.g. ``im.show(title="My Image")`` and
``ImageShow.show(im, title="My Image")``. ``ImageShow.show(im, title="My Image")``.
Other Changes Other changes
============= =============
Convert subsequent GIF frames to RGB or RGBA Convert subsequent GIF frames to RGB or RGBA

View File

@ -21,7 +21,7 @@ While Pillow 9.0 restricted top-level builtins available to
:py:meth:`!PIL.ImageMath.eval`, it did not prevent builtins :py:meth:`!PIL.ImageMath.eval`, it did not prevent builtins
available to lambda expressions. These are now also restricted. available to lambda expressions. These are now also restricted.
Other Changes Other changes
============= =============
Pillow 9.0 added support for ``xdg-open`` as an image viewer, but there have been Pillow 9.0 added support for ``xdg-open`` as an image viewer, but there have been

View File

@ -94,7 +94,7 @@ The stub image plugin ``FitsStubImagePlugin`` has been deprecated and will be re
Pillow 10.0.0 (2023-07-01). FITS images can be read without a handler through Pillow 10.0.0 (2023-07-01). FITS images can be read without a handler through
:mod:`~PIL.FitsImagePlugin` instead. :mod:`~PIL.FitsImagePlugin` instead.
API Changes API changes
=========== ===========
Raise an error when performing a negative crop Raise an error when performing a negative crop
@ -137,7 +137,7 @@ On macOS, the last argument may need to be wrapped in quotes, e.g.
Therefore ``requirements.txt`` has been removed along with the ``make install-req`` Therefore ``requirements.txt`` has been removed along with the ``make install-req``
command for installing its contents. command for installing its contents.
API Additions API additions
============= =============
Added get_photoshop_blocks() to parse Photoshop TIFF tag Added get_photoshop_blocks() to parse Photoshop TIFF tag
@ -193,7 +193,7 @@ palette. ::
from PIL import GifImagePlugin from PIL import GifImagePlugin
GifImagePlugin.LOADING_STRATEGY = GifImagePlugin.LoadingStrategy.RGB_AFTER_DIFFERENT_PALETTE_ONLY GifImagePlugin.LOADING_STRATEGY = GifImagePlugin.LoadingStrategy.RGB_AFTER_DIFFERENT_PALETTE_ONLY
Other Changes Other changes
============= =============
musllinux wheels musllinux wheels

View File

@ -126,7 +126,7 @@ Use instead::
draw = ImageDraw.Draw(im) draw = ImageDraw.Draw(im)
draw.text((100 / 2, 100 / 2), "Hello world", font=font, anchor="mm") draw.text((100 / 2, 100 / 2), "Hello world", font=font, anchor="mm")
API Additions API additions
============= =============
Image.apply_transparency Image.apply_transparency
@ -137,7 +137,7 @@ with "transparency" in ``im.info``, and apply the transparency to the palette in
The image's palette mode will become "RGBA", and "transparency" will be removed from The image's palette mode will become "RGBA", and "transparency" will be removed from
``im.info``. ``im.info``.
Other Changes Other changes
============= =============
Using gnome-screenshot on Linux Using gnome-screenshot on Linux

View File

@ -28,7 +28,7 @@ This was introduced in Pillow 9.2.0, found with `OSS-Fuzz`_ and fixed by limitin
``SAMPLESPERPIXEL`` to the number of planes that we can decode. ``SAMPLESPERPIXEL`` to the number of planes that we can decode.
API Additions API additions
============= =============
Allow default ImageDraw font to be set Allow default ImageDraw font to be set
@ -65,7 +65,7 @@ The data from :py:data:`~PIL.ExifTags.TAGS` and
:py:data:`~PIL.ExifTags.GPS`. :py:data:`~PIL.ExifTags.GPS`.
Other Changes Other changes
============= =============
Python 3.11 wheels Python 3.11 wheels

View File

@ -20,7 +20,7 @@ Pillow attempted to dereference a null pointer in ``ImageFont``, leading to a
crash. An error is now raised instead. This has been present since crash. An error is now raised instead. This has been present since
Pillow 8.0.0. Pillow 8.0.0.
API Additions API additions
============= =============
Added start position for getmask and getmask2 Added start position for getmask and getmask2
@ -88,7 +88,7 @@ When saving a JPEG image, a comment can now be written from
im.save(out, comment="Test comment") im.save(out, comment="Test comment")
Other Changes Other changes
============= =============
Added support for DDS L and LA images Added support for DDS L and LA images

View File

@ -37,7 +37,7 @@ be removed in Pillow 11 (2024-10-15). This class was only made as a helper to
be used internally, so there is no replacement. If you need this functionality be used internally, so there is no replacement. If you need this functionality
though, it is a very short class that can easily be recreated in your own code. though, it is a very short class that can easily be recreated in your own code.
API Additions API additions
============= =============
QOI file format QOI file format
@ -71,7 +71,7 @@ If OpenJPEG 2.4.0 or later is available and the ``plt`` keyword argument
is present and true when saving JPEG2000 images, tell the encoder to generate is present and true when saving JPEG2000 images, tell the encoder to generate
PLT markers. PLT markers.
Other Changes Other changes
============= =============
Added support for saving PDFs in RGBA mode Added support for saving PDFs in RGBA mode

View File

@ -1,4 +1,4 @@
Release Notes Release notes
============= =============
Pillow is released quarterly on January 2nd, April 1st, July 1st and October 15th. Pillow is released quarterly on January 2nd, April 1st, July 1st and October 15th.

View File

@ -14,7 +14,7 @@ TODO
TODO TODO
Backwards Incompatible Changes Backwards incompatible changes
============================== ==============================
TODO TODO
@ -28,7 +28,7 @@ TODO
TODO TODO
API Changes API changes
=========== ===========
TODO TODO
@ -36,7 +36,7 @@ TODO
TODO TODO
API Additions API additions
============= =============
TODO TODO
@ -44,7 +44,7 @@ TODO
TODO TODO
Other Changes Other changes
============= =============
TODO TODO