11.1.0 ------ Security ======== TODO ^^^^ TODO :cve:`YYYY-XXXXX`: TODO ^^^^^^^^^^^^^^^^^^^^^^^ TODO Backwards Incompatible Changes ============================== TODO ^^^^ Deprecations ============ TODO ^^^^ TODO API Changes =========== Writing XMP bytes to JPEG and MPO ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Pillow 11.0.0 added writing XMP data to JPEG and MPO images:: im.info["xmp"] = b"test" im.save("out.jpg") However, this meant that XMP data was automatically kept from an opened image, which is inconsistent with the rest of Pillow's behaviour. This functionality has been removed. To write XMP data, the ``xmp`` argument can still be used for JPEG files:: im.save("out.jpg", xmp=b"test") To save XMP data to the second frame of an MPO image, ``encoderinfo`` can now be used:: second_im.encoderinfo = {"xmp": b"test"} im.save("out.mpo", save_all=True, append_images=[second_im]) API Additions ============= Check for zlib-ng ^^^^^^^^^^^^^^^^^ You can check if Pillow has been built against the zlib-ng version of the zlib library, and what version of zlib-ng is being used:: from PIL import features features.check_feature("zlib_ng") # True or False features.version_feature("zlib_ng") # "2.2.2" for example, or None Other Changes ============= zlib-ng in wheels ^^^^^^^^^^^^^^^^^ Wheels are now built against zlib-ng for improved speed. In tests, saving a PNG was found to be more than twice as fast at higher compression levels.