Support for Tk/Tcl 8.4 is deprecated and will be removed in Pillow 10.0.0 (2023-01-02), when Tk/Tcl 8.5 will be the minimum supported.
When calling :py~PIL.Image.Image.alpha_composite
, the dest
argument now accepts negative co-ordinates, like the upper left corner of the box
argument of :py~PIL.Image.Image.paste
can be negative. Naturally, this has effect of cropping the overlaid image.
Previously, :py~PIL.Image.Image.getexif
flattened the EXIF IFD into the rest of the data, losing information. This information is now kept separate, moved under im.getexif().get_ifd(0x8769)
.
Direct access to the GPS IFD dictionary was possible through im.getexif()[0x8825]
. This is now consistent with other IFDs, and must be accessed through im.getexif().get_ifd(0x8825)
.
These changes only affect :py~PIL.Image.Image.getexif
, introduced in Pillow 6.0. The older _getexif()
methods are unaffected.
Added :py~PIL.ImageDraw.ImageDraw.rounded_rectangle
. It works the same as :py~PIL.ImageDraw.ImageDraw.rectangle
, except with an additional radius
argument. radius
is limited to half of the width or the height, so that users can create a circle, but not any other ellipse.
from PIL import Image, ImageDraw
im = Image.new("RGB", (200, 200))
draw = ImageDraw.Draw(im)
draw.rounded_rectangle(xy=(10, 20, 190, 180), radius=30, fill="red")
If IPython is present, this new :pyPIL.ImageShow.Viewer
subclass will be registered. It displays images on all IPython frontends. This will be helpful to users of Google Colab, allowing im.show()
to display images.
It is lower in priority than the other default :pyPIL.ImageShow.Viewer
instances, so it will only be used by im.show()
or :py.ImageShow.show()
if none of the other viewers are available. This means that the behaviour of :pyPIL.ImageShow
will stay the same for most Pillow users.
As is already possible for JPEG, PNG and WebP, the ICC profile for TIFF files can now be specified through a keyword argument:
im.save("out.tif", icc_profile=...)
TODO
Support has been added for PyQt6. If it is installed, it will be used instead of PySide6, PyQt5 or PySide2.
Support has been added for GraphicsMagick as an alternative to ImageMagick. This includes GraphicsMagick as a viewer (cf. :pyPIL.ImageShow.GmDisplayViewer <PIL.ImageShow.UnixViewer.GmDisplayViewer>
) and the capability to run the test suite with GraphicsMagick instead of ImageMagick. If both are installed, the test suite prefers ImageMagick over GraphicsMagick.