mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-05-02 06:53:40 +03:00
Docs: use sentence case for headers (#8914)
Co-authored-by: Andrew Murray <3112309+radarhere@users.noreply.github.com>
This commit is contained in:
parent
d03ce3d235
commit
348589a367
|
@ -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``.
|
||||||
|
|
32
docs/PIL.rst
32
docs/PIL.rst
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -13,7 +13,7 @@ processing tool.
|
||||||
|
|
||||||
Let’s look at a few possible uses of this library.
|
Let’s 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, there’s also a :py:meth:`~PIL.Image.Image.show` method which saves an image to
|
For debugging, there’s 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.
|
||||||
|
|
|
@ -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. Here’s a simple script to quickly
|
of the file size and compression type. Here’s 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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
.. _basic-installation:
|
.. _basic-installation:
|
||||||
|
|
||||||
Basic Installation
|
Basic installation
|
||||||
==================
|
==================
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
.. _python-support:
|
.. _python-support:
|
||||||
|
|
||||||
Python Support
|
Python support
|
||||||
==============
|
==============
|
||||||
|
|
||||||
Pillow supports these Python versions.
|
Pillow supports these Python versions.
|
||||||
|
|
|
@ -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`
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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 don’t draw with
|
layer will automatically assign color indexes, as long as you don’t 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
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 don’t work on floating point images.
|
Bitwise operators don’t 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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Internal Reference
|
Internal reference
|
||||||
==================
|
==================
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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__
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
7.2.0
|
7.2.0
|
||||||
-----
|
-----
|
||||||
|
|
||||||
API Changes
|
API changes
|
||||||
===========
|
===========
|
||||||
|
|
||||||
Replaced TiffImagePlugin DEBUG with logging
|
Replaced TiffImagePlugin DEBUG with logging
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue
Block a user