TODO
Previously, it was 0, for the best speed. The default has now been changed to 4, to match WebP's default, for higher quality with still some speed optimisation.
Pillow 7.0 changed the default resampling filter to Image.BICUBIC
. However, as this is not supported yet for images with a custom number of bits, the default filter for those modes has been reverted to Image.NEAREST
.
For apply()
, match()
and get_on_pixels()
, if the image mode is not L, an :pyException
was thrown. This has now been changed to a :pyValueError
.
Returns a resized version of the image, set to the maximum width and height within size
, while maintaining the original aspect ratio.
To compare it to other ImageOps methods:
- :py
~PIL.ImageOps.fit
expands an image until is fillssize
, cropping the parts of the image that do not fit. - :py
~PIL.ImageOps.pad
expands an image to fillsize
, without cropping, but instead filling the extra space withcolor
. - :py
~PIL.ImageOps.contain
is similar to :py~PIL.ImageOps.pad
, but it does not fill the extra space. Instead, the original aspect ratio is maintained. So unlike the other two methods, it is not guaranteed to return an image ofsize
.
By default, Pillow saves ICO files in the PNG format. They can now also be saved in BMP format, through the new bitmap_format
argument:
im.save("out.ico", bitmap_format="bmp")
Pillow previously parsed XMP data using Python's xml
module. However, this module is not secure.
- :py
~PIL.Image.Image.getexif
has usedxml
to potentially retrieve orientation data since Pillow 7.2.0. It has been refactored to usere
instead. - :py
~PIL.JpegImagePlugin.JpegImageFile.getxmp
was added in Pillow 8.2.0. It will now usedefusedxml
instead. If the dependency is not present, an empty dictionary will be returned and a warning raised.
Support has been added to read the BC5 format of DDS images, whether UNORM, SNORM or TYPELESS.