pillow v4.0.0 Release Notes

Release Date: 2017-01-01 // about 7 years ago
    • ๐Ÿ”จ Refactor out postprocessing hack to load_end in PcdImageFile [wiredfool]

    • โž• Add center and translate option to Image.rotate. #2328 [lambdafu]

    • โœ… Test: Relax WMF test condition, fixes #2323. #2327 [wiredfool]

    • ๐Ÿ‘ Allow 0 size images, Fixes #2259, Reverts to pre-3.4 behavior. #2262 [wiredfool]

    • SGI: Save uncompressed SGI/BW/RGB/RGBA files #2325 [jbltx]

    • โšก๏ธ Depends: Updated pngquant to 2.8.2 #2319 [radarhere]

    • โœ… Test: Added correctness tests for opening SGI images #2324 [wiredfool]

    • ๐Ÿ‘ Allow passing a list or tuple of individual frame durations when saving a GIF #2298 [Xdynix]

    • โšก๏ธ Unified different GIF optimize conditions #2196 [radarhere]

    • ๐Ÿ”จ Build: Refactor dependency installation #2305 [hugovk]

    • โœ… Test: Add python 3.6 to travis, tox #2304 [hugovk]

    • โœ… Test: Fix coveralls coverage for Python+C #2300 [hugovk]

    • โœ‚ Remove executable bit and shebang from OleFileIO.py #2308 [jwilk, radarhere]

    • โ†ช PyPy: Buffer interface workaround #2294 [wiredfool]

    • ๐Ÿ‘ท Test: Switch to Ubuntu Trusty 14.04 on Travis CI #2294

    • โœ‚ Remove vendored version of olefile Python package in favor of upstream #2199 [jdufresne]

    • โšก๏ธ Updated comments to use print as a function #2234 [radarhere]

    • โœ… Set executable flag on selftest.py, setup.py and added shebang line #2282, #2277 [radarhere, homm]

    • โœ… Test: Increase epsilon for FreeType 2.7 as rendering is slightly different. #2286 [hugovk]

    • Test: Faster assert_image_similar #2279 [homm]

    • โœ‚ Removed deprecated internal "stretch" method #2276 [homm]

    • โœ‚ Removed the handles_eof flag in decode.c #2223 [wiredfool]

    • Tiff: Fix for writing Tiff to BytesIO using libtiff #2263 [wiredfool]

    • ๐Ÿ“„ Doc: Design docs #2269 [wiredfool]

    • Test: Move tests requiring libtiff to test_file_libtiff #2273 [wiredfool]

    • โšก๏ธ Update Maxblock heuristic #2275 [wiredfool]

    • ๐Ÿ›  Fix for 2-bit palette corruption #2274 [pdknsk, wiredfool]

    • โšก๏ธ Tiff: Update info.icc_profile when using libtiff reader. #2193 [lambdafu]

    • Test: Fix bug in test_ifd_rational_save when libtiff is not available #2270 [ChristopherHogan]

    • ICO: Only save relevant sizes #2267 [hugovk]

    • ICO: Allow saving .ico files of 256x256 instead of 255x255 #2265 [hugovk]

    • ๐Ÿ›  Fix TIFFImagePlugin ICC color profile saving. #2087 [cskau]

    • Doc: Improved description of ImageOps.deform resample parameter #2256 [radarhere]

    • ๐Ÿ‘ EMF: support negative bounding box coordinates #2249 [glexey]

    • Close file if opened in WalImageFile #2216 [radarhere]

    • ๐Ÿ†• Use Image._new() instead of _makeself() #2248 [homm]

    • ๐Ÿ”Œ SunImagePlugin fixes #2241 [wiredfool]

    • ๐Ÿ‘‰ Use minimal scale for jpeg drafts #2240 [homm]

    • โšก๏ธ Updated dependency scripts to use FreeType 2.7, OpenJpeg 2.1.2, WebP 0.5.2 and Tcl/Tk 8.6.6 #2235, #2236, #2237, #2290, #2302 [radarhere]

    • ๐Ÿ›  Fix "invalid escape sequence" bytestring warnings in Python 3.6 #2186 [timgraham]

    • โœ‚ Removed support for Python 2.6 and Python 3.2 #2192 [jdufresne]

    • Setup: Raise custom exceptions when required/requested dependencies are not found #2213 [wiredfool]

    • ๐Ÿ‘‰ Use a context manager in FontFile.save() to ensure file is always closed #2226 [jdufresne]

    • ๐Ÿ›  Fixed bug in saving to fp-objects in Python >= 3.4 #2227 [radarhere]

    • Use a context manager in ImageFont._load_pilfont() to ensure file is always closed #2232 [jdufresne]

    • ๐Ÿ‘‰ Use generator expressions instead of list comprehension #2225 [jdufresne]

    • Close file after reading in ImagePalette.load() #2215 [jdufresne]

    • ๐Ÿ”„ Changed behaviour of default box argument for paste method to match docs #2211 [radarhere]

    • โž• Add support for another BMP bitfield #2221 [jmerdich]

    • Added missing top-level test main #2222 [radarhere]

    • Replaced range(len()) #2197 [radarhere]

    • ๐Ÿ›  Fix for ImageQt Segfault, fixes #1370 #2182 [wiredfool]

    • Setup: Close file in setup.py after finished reading #2208 [jdufresne]

    • Setup: optionally use pkg-config (when present) to detect dependencies #2074 [garbas]

    • Search for tkinter first in builtins #2210 [matthew-brett]

    • โœ… Tests: Replace try/except/fail pattern with TestCase.assertRaises() #2200 [jdufresne]

    • ๐Ÿšš Tests: Remove unused, open files at top level of tests #2188 [jdufresne]

    • Replace type() equality checks with isinstance #2184 [jdufresne]

    • ๐Ÿšš Doc: Move ICO out of the list of read-only file formats #2180 [alexwlchan]

    • Doc: Fix formatting, too-short title underlines and malformed table #2175 [hugovk]

    • ๐Ÿ›  Fix BytesWarnings #2172 [jdufresne]

    • ๐Ÿ—„ Use Integer division to eliminate deprecation warning. #2168 [mastermatt]

    • โšก๏ธ Doc: Update compatibility matrix [daavve, wiredfool]