3.3.0

Libimagequant support

There is now support for using libimagequant as a higher qualityquantization option in Image.quantize() on Unix-likeplatforms. This support requires building Pillow from source againstlibimagequant. We cannot distribute binaries due to licensingdifferences.

New Setup.py options

There are two new options to control the build_ext task in setup.py:



  • —debug dumps all of the directories and files that are
    checked when searching for libraries or headers when building the
    extensions.

  • —disable-platform-guessing removes many of the directories
    that are checked for libraries and headers for build systems or
    cross compilers that specify that information in via environment
    variables.


Resizing

Image resampling for 8-bit per channel images was rewritten using only integercomputings. This is faster on most platforms and doesn’t introduce precisionerrors on the wide range of scales. With other performance improvements, thismakes resampling 60% faster on average.

Color calculation for images in the LA mode on semitransparent pixelswas fixed.

Rotation

Rotation for angles divisible by 90 degrees now always uses transposition.This greatly improves both quality and performance in this case.Also, the bug with wrong image size calculation when rotating by 90 degreeswas fixed.

Image Metadata

The return type for binary data in version 2 Exif and Tiff metadatahas been changed from a tuple of integers to bytes. This is a changefrom the behavior since 3.0.0.