Skip to content

Latest commit

 

History

History
142 lines (105 loc) · 3.38 KB

9.4.0.rst

File metadata and controls

142 lines (105 loc) · 3.38 KB

9.4.0

Backwards Incompatible Changes

TODO

TODO

Deprecations

TODO

TODO

API Changes

TODO

TODO

API Additions

Added start position for getmask and getmask2

Text may render differently when starting at fractional coordinates, so :py.FreeTypeFont.getmask and :py.FreeTypeFont.getmask2 now support a start argument. This tuple of horizontal and vertical offset will be used internally by :py.ImageDraw.text to more accurately place text at the xy coordinates.

Added the exact encoding option for WebP

The exact encoding option for WebP is now supported. The WebP encoder removes the hidden RGB values for better compression by default in libwebp 0.5 or later. By setting this option to True, the encoder will keep the hidden RGB values.

Added IFD, Interop and LightSource ExifTags enums

:py~PIL.ExifTags.IFD has been added, allowing enums to be used with :py~PIL.Image.Exif.get_ifd:

from PIL import Image, ExifTags
im = Image.open("Tests/images/flower.jpg")
print(im.getexif().get_ifd(ExifTags.IFD.Exif))

IFD1 can also be used with :py~PIL.Image.Exif.get_ifd, but it should not be used in other contexts, as the enum value is only internally meaningful.

:py~PIL.ExifTags.Interop has been added for tags within the Interop IFD:

from PIL import Image, ExifTags
im = Image.open("Tests/images/flower.jpg")
interop_ifd = im.getexif().get_ifd(ExifTags.IFD.Interop)
print(interop_ifd.get(ExifTags.Interop.InteropIndex))  # R98

:py~PIL.ExifTags.LightSource has been added for values within the LightSource tag:

from PIL import Image, ExifTags
im = Image.open("Tests/images/iptc.jpg")
exif_ifd = im.getexif().get_ifd(ExifTags.IFD.Exif)
print(ExifTags.LightSource(exif_ifd[0x9208]))  # LightSource.Unknown

getxmp()

XMP data can now be decoded for WEBP images through getxmp().

Writing JPEG comments

When saving a JPEG image, a comment can now be written from :py~PIL.Image.Image.info, or by using an argument when saving:

im.save(out, comment="Test comment")

Security

TODO

TODO

Other Changes

Added support for DDS L and LA images

Support has been added to read and write L and LA DDS images in the uncompressed format, known as "luminance" textures.

Constants

In Pillow 9.1.0, the following constants were deprecated. Those deprecations have now been restored.

  • Image.NONE
  • Image.NEAREST
  • Image.ORDERED
  • Image.RASTERIZE
  • Image.FLOYDSTEINBERG
  • Image.WEB
  • Image.ADAPTIVE
  • Image.AFFINE
  • Image.EXTENT
  • Image.PERSPECTIVE
  • Image.QUAD
  • Image.MESH
  • Image.FLIP_LEFT_RIGHT
  • Image.FLIP_TOP_BOTTOM
  • Image.ROTATE_90
  • Image.ROTATE_180
  • Image.ROTATE_270
  • Image.TRANSPOSE
  • Image.TRANSVERSE
  • Image.BOX
  • Image.BILINEAR
  • Image.HAMMING
  • Image.BICUBIC
  • Image.LANCZOS
  • Image.MEDIANCUT
  • Image.MAXCOVERAGE
  • Image.FASTOCTREE
  • Image.LIBIMAGEQUANT