2017-08-12 01:24:53 +03:00
|
|
|
4.3.0
|
|
|
|
-----
|
|
|
|
|
|
|
|
Get One Channel From Image
|
2017-08-12 14:22:36 +03:00
|
|
|
==========================
|
2017-08-12 01:24:53 +03:00
|
|
|
|
2017-09-15 00:55:19 +03:00
|
|
|
New method :py:meth:`PIL.Image.Image.getchannel` is added.
|
2017-08-12 01:24:53 +03:00
|
|
|
It returns single channel by index or name. For example,
|
2017-09-06 06:30:22 +03:00
|
|
|
``image.getchannel("A")`` will return alpha channel as separate image.
|
2017-08-26 18:19:04 +03:00
|
|
|
``getchannel`` should work up to 6 times faster than ``image.split()[0]``
|
|
|
|
in previous Pillow versions.
|
2017-09-06 06:41:57 +03:00
|
|
|
|
2017-08-26 18:19:04 +03:00
|
|
|
|
2017-09-15 00:55:19 +03:00
|
|
|
Box Blur
|
|
|
|
========
|
|
|
|
|
|
|
|
New filter :py:class:`PIL.ImageFilter.BoxBlur` is added.
|
|
|
|
|
|
|
|
|
2017-08-26 18:19:04 +03:00
|
|
|
Partial Resampling
|
|
|
|
==================
|
|
|
|
|
2017-09-09 13:29:49 +03:00
|
|
|
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.
|
2017-08-26 18:19:04 +03:00
|
|
|
|
|
|
|
|
|
|
|
Loading 16-bit TIFF Images
|
|
|
|
==========================
|
|
|
|
|
|
|
|
Pillow now can read 16-bit multichannel TIFF files including files
|
2017-09-09 13:29:49 +03:00
|
|
|
with alpha transparency. The image data is truncated to 8-bit
|
|
|
|
precision.
|
2017-08-26 18:19:04 +03:00
|
|
|
|
|
|
|
|
|
|
|
Performance
|
|
|
|
===========
|
|
|
|
|
2017-09-09 13:29:49 +03:00
|
|
|
This release contains several performance improvements:
|
2017-08-26 18:19:04 +03:00
|
|
|
|
|
|
|
* Many memory bandwidth-bounded operations such as crop, image allocation,
|
2017-09-09 13:29:49 +03:00
|
|
|
conversion, split into bands and merging from bands are up to 2x faster.
|
2017-08-26 18:19:04 +03:00
|
|
|
* Upscaling of multichannel images (such as RGB) is accelerated by 5-10%
|
2017-09-09 13:29:49 +03:00
|
|
|
* JPEG loading is accelerated up to 15% and JPEG saving up to 20% when
|
|
|
|
using a recent version of libjpeg-turbo.
|
2017-08-26 18:19:04 +03:00
|
|
|
|
|
|
|
|
2017-09-14 22:16:14 +03:00
|
|
|
TIFF Metadata Changes
|
|
|
|
=====================
|
|
|
|
|
|
|
|
* TIFF tags with unknown type/quantity now default to being bare
|
|
|
|
values if they are 1 element, where previously they would be a
|
|
|
|
single element tuple. This is only with the new api, not the legacy
|
|
|
|
api. This normalizes the handling of fields, so that the metadata
|
|
|
|
with inferred or image specified counts are handled the same as
|
|
|
|
metadata with count specified in the TIFF spec.
|
|
|
|
* The ``PhotoshopInfo``, ``XMP``, and ``JPEGTables`` tags now have a
|
|
|
|
defined type (bytes) and a count of 1.
|
|
|
|
* The ``ImageJMetaDataByteCounts`` tag now has an arbitrary number of
|
|
|
|
items, as there can be multiple items, one for UTF-8, and one for
|
|
|
|
UTF-16.
|
|
|
|
|
|
|
|
|
2017-09-09 13:29:49 +03:00
|
|
|
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.
|
2017-08-26 18:19:04 +03:00
|
|
|
|
2017-09-09 13:29:49 +03:00
|
|
|
The ``PIL.Image.core.copy`` and ``PIL.Image.Image.im.copy2`` methods
|
|
|
|
have been removed.
|