6.0.0¶
Backwards Incompatible Changes¶
Python 3.4 dropped¶
Python 3.4 is EOL since 2019-03-16 and no longer supported. We will not be creating binaries, testing, or retaining compatibility with this version. The final version of Pillow for Python 3.4 is 5.4.1.
Removed deprecated PIL.OleFileIO¶
PIL.OleFileIO was removed as a vendored file and in Pillow 4.0.0 (2017-01) in favour of
the upstream olefile Python package, and replaced with an ImportError
. The
deprecated file has now been removed from Pillow. If needed, install from PyPI (eg.
python3 -m pip install olefile
).
Removed deprecated ImageOps functions¶
Several undocumented functions in ImageOps
were deprecated in Pillow 4.3.0 (2017-10)
and have now been removed: gaussian_blur
, gblur
, unsharp_mask
, usm
and
box_blur
. Use the equivalent operations in ImageFilter
instead.
Removed deprecated VERSION¶
VERSION
(the old PIL version, always 1.1.7) has been removed. Use __version__
instead.
API Changes¶
Deprecations¶
Python 2.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 2.7, making Pillow 6.x the last series to support Python 2.
PyQt4 and PySide¶
Qt 4 reached end-of-life on 2015-12-19. Its Python bindings are also EOL: PyQt4 since 2018-08-31 and PySide since 2015-10-14.
Support for PyQt4 and PySide has been deprecated from ImageQt
and will be removed in
a future version. Please upgrade to PyQt5 or PySide2.
PIL.*ImagePlugin.__version__ attributes¶
These version constants have been deprecated and will be removed in a future version.
BmpImagePlugin.__version__
CurImagePlugin.__version__
DcxImagePlugin.__version__
EpsImagePlugin.__version__
FliImagePlugin.__version__
FpxImagePlugin.__version__
GdImageFile.__version__
GifImagePlugin.__version__
IcoImagePlugin.__version__
ImImagePlugin.__version__
ImtImagePlugin.__version__
IptcImagePlugin.__version__
Jpeg2KImagePlugin.__version__
JpegImagePlugin.__version__
McIdasImagePlugin.__version__
MicImagePlugin.__version__
MpegImagePlugin.__version__
MpoImagePlugin.__version__
MspImagePlugin.__version__
PalmImagePlugin.__version__
PcdImagePlugin.__version__
PcxImagePlugin.__version__
PdfImagePlugin.__version__
PixarImagePlugin.__version__
PngImagePlugin.__version__
PpmImagePlugin.__version__
PsdImagePlugin.__version__
SgiImagePlugin.__version__
SunImagePlugin.__version__
TgaImagePlugin.__version__
TiffImagePlugin.__version__
WmfImagePlugin.__version__
XbmImagePlugin.__version__
XpmImagePlugin.__version__
XVThumbImagePlugin.__version__
Use PIL.__version__
instead.
ImageCms.CmsProfile attributes¶
Some attributes in ImageCms.CmsProfile
have been deprecated since Pillow 3.2.0. From
6.0.0, they issue a DeprecationWarning
:
Deprecated |
Use instead |
---|---|
|
Padded |
|
Padded |
|
Unicode |
|
Unicode |
|
Unicode |
|
Unicode |
|
Unicode |
MIME type improvements¶
Previously, all JPEG2000 images had the MIME type “image/jpx”. This has now been
corrected. After the file format drivers have been loaded, Image.MIME["JPEG2000"]
will return “image/jp2”. ImageFile.get_format_mimetype
will return “image/jpx” if
a JPX profile is present, or “image/jp2” otherwise.
Previously, all SGI images had the MIME type “image/rgb”. This has now been
corrected. After the file format drivers have been loaded, Image.MIME["SGI"]
will return “image/sgi”. ImageFile.get_format_mimetype
will return “image/rgb” if
RGB image data is present, or “image/sgi” otherwise.
MIME types have been added to the PPM format. After the file format drivers have been
loaded, Image.MIME["PPM"]
will now return the generic “image/x-portable-anymap”.
ImageFile.get_format_mimetype
will return a MIME type specific to the color type.
The TGA, PCX and ICO formats also now have MIME types: “image/x-tga”, “image/x-pcx” and “image/x-icon” respectively.
API Additions¶
DIB file format¶
Pillow now supports reading and writing the Device Independent Bitmap file format.
Image.quantize¶
The dither
option is now a customisable parameter (was previously hardcoded to 1
).
This parameter takes the same values used in convert()
.
New language parameter¶
These text-rendering functions now accept a language
parameter to request
language-specific glyphs and ligatures from the font:
ImageDraw.ImageDraw.multiline_text()
ImageDraw.ImageDraw.multiline_textsize()
ImageDraw.ImageDraw.text()
ImageDraw.ImageDraw.textsize()
ImageFont.ImageFont.getmask()
ImageFont.ImageFont.getsize_multiline()
ImageFont.ImageFont.getsize()
Added EXIF class¶
getexif()
has been added, which returns an
Exif
instance. Values can be retrieved and set like a
dictionary. When saving JPEG, PNG or WEBP, the instance can be passed as an
exif
argument to include any changes in the output image.
Added ImageOps.exif_transpose¶
exif_transpose()
returns a copy of an image, transposed
according to its EXIF Orientation tag.
PNG EXIF data¶
EXIF data can now be read from and saved to PNG images. However, unlike other image
formats, EXIF data is not guaranteed to be present in info
until load()
has been called.
Other Changes¶
Reading new DDS image format¶
Pillow can now read uncompressed RGB data from DDS images.
Reading TIFF with old-style JPEG compression¶
Added support reading TIFF files with old-style JPEG compression through LibTIFF. All YCbCr TIFF images are now always read as RGB.
TIFF compression codecs¶
Support has been added for the LZMA, Zstd and WebP TIFF compression codecs.
Improved support for transposing I;16 images¶
I;16, I;16L and I;16B are now supported image modes for all
transpose()
operations.