docs/releasenotes/4.3.0.rst
Deprecations ^^^^^^^^^^^^
Several undocumented functions in ImageOps have been deprecated:
gaussian_blur, gblur, unsharp_mask, usm and
box_blur. Use the equivalent operations in ImageFilter
instead. These functions will be removed in a future release.
TIFF metadata changes ^^^^^^^^^^^^^^^^^^^^^
PhotoshopInfo, XMP, and JPEGTables tags now have a
defined type (bytes) and a count of 1.ImageJMetaDataByteCounts tag now has an arbitrary number of
items, as there can be multiple items, one for UTF-8, and one for
UTF-16.Core Image API changes ^^^^^^^^^^^^^^^^^^^^^^
These are internal functions that should not have been used by user code, but they were accessible from the python layer.
Debugging code within Image.core.grabclipboard was removed. It had been
marked as will be removed in future versions since PIL. When enabled, it
identified the format of the clipboard data.
The PIL.Image.core.copy and PIL.Image.Image.im.copy2 methods
have been removed.
The PIL.Image.core.getcount methods have been removed, use
PIL.Image.core.get_stats()['new_count'] property instead.
Get one channel from image ^^^^^^^^^^^^^^^^^^^^^^^^^^
A new method :py:meth:PIL.Image.Image.getchannel has been added to
return a single channel by index or name. For example,
image.getchannel("A") will return alpha channel as separate image.
getchannel should work up to 6 times faster than
image.split()[0] in previous Pillow versions.
Box blur ^^^^^^^^
A new filter, :py:class:PIL.ImageFilter.BoxBlur, has been
added. This is a filter with similar results to a Gaussian blur, but
is much faster.
Partial resampling ^^^^^^^^^^^^^^^^^^
Added new argument box for :py:meth:PIL.Image.Image.resize. This
argument defines a source rectangle from within the source image to be
resized. This is very similar to the image.crop(box).resize(size)
sequence except that box can be specified with subpixel accuracy.
New transpose operation ^^^^^^^^^^^^^^^^^^^^^^^
The Image.TRANSVERSE operation has been added to
:py:meth:PIL.Image.Image.transpose. This is equivalent to a transpose
operation about the opposite diagonal.
Multiband filters ^^^^^^^^^^^^^^^^^
There is a new :py:class:PIL.ImageFilter.MultibandFilter base class
for image filters that can run on all channels of an image in one
operation. The original :py:class:PIL.ImageFilter.Filter class
remains for image filters that can process only single band images, or
require splitting of channels prior to filtering.
Loading 16-bit TIFF images ^^^^^^^^^^^^^^^^^^^^^^^^^^
Pillow now can read 16-bit multichannel TIFF files including files with alpha transparency. The image data is truncated to 8-bit precision.
Pillow now can read 16-bit signed integer single channel TIFF files. The image data is promoted to 32-bit for storage and processing.
SGI images ^^^^^^^^^^
Pillow can now read and write uncompressed 16-bit multichannel SGI images to and from RGB and RGBA formats. The image data is truncated to 8-bit precision.
Pillow can now read RLE encoded SGI images in both 8 and 16-bit precision.
Performance ^^^^^^^^^^^
This release contains several performance improvements:
Image.transpose has been accelerated 15% or more by using a cache
friendly algorithm.~PIL.ImageFilter.MultibandFilter feature.CMYK conversion ^^^^^^^^^^^^^^^
The basic CMYK->RGB conversion has been tweaked to match the formula from Google Chrome. This produces an image that is generally lighter than the previous formula, and more in line with what color managed applications produce.