pillow v1.1.3.c1 Release Notes

    • ➕ Added ANTIALIAS downsampling filter for high-quality "resize" and "thumbnail" operations. Also added filter option to the "thumbnail" operation; the default value is NEAREST, but this will most likely change in future versions.

    • Fixed plugin loader to be more robust if the file variable isn't set.

    • ➕ Added seek/tell support (for layers) to the PhotoShop loader. Layer 0 is the main image.

    • ➕ Added new (but experimental) "ImageOps" module, which provides shortcuts for commonly used operations on entire images.

    • Don't mess up when loading PNG images if the decoder leaves data in the output buffer. This could cause internal errors on some PNG images, with some versions of ZLIB. (Bug report and patch provided by Bernhard Herzog.)

    • Don't mess up on Unicode filenames.

    • Don't mess up when drawing on big endian platforms.

    • Made the TIFF loader a bit more robust; it can now read some more slightly broken TIFF files (based on input from Ted Wright, Bob Klimek, and D. Alan Stewart)

    • ➕ Added OS/2 EMX build files (from Andrew MacIntyre)

    • 🔄 Change "ImageFont" to reject image files if they don't have the right mode. Older versions could leak memory for "P" images. (Bug reported by Markus Gritsch).

    • 🏗 Renamed some internal functions to avoid potential build problem on Mac OS X.

    • ➕ Added DL_EXPORT where relevant (for Cygwin, based on input from Robert Yodlowski)

    • (re)moved bogus init call in BdfFontFile (bug spotted by Fred Clare)

    • ➕ Added "ImageGrab" support (Windows only)

    • ➕ Added support for XBM hotspots (based on code contributed by Bernhard Herzog).

    • ➕ Added write support for more TIFF tags, namely the Artist, Copyright, DateTime, ResolutionUnit, Software, XResolution and YResolution tags (from Greg Couch)

    • ➕ Added TransposedFont wrapper to ImageFont module

    • ➕ Added "optimize" flag to GIF encoder. If optimize is present and non-zero, PIL will work harder to create a small file.

    • Raise "EOFError" (not IndexError) when reading beyond the end of a TIFF sequence.

    • 👌 Support rewind ("seek(0)") for GIF and TIFF sequences.

    • Load grayscale GIF images as mode "L"

    • ➕ Added DPI read/write support to the JPEG codec. The decoder sets the info["dpi"] attribute for JPEG files with JFIF dpi settings. The encoder uses the "dpi" option::

      im = Image.open("file.jpg") dpi = im.info["dpi"] # raises KeyError if DPI not known im.save("out.jpg", dpi=dpi)

    Note that PIL doesn't always preserve the "info" attribute for normal image operations.