All Versions
134
Latest Version
Avg Release Cycle
49 days
Latest Release
101 days ago

Changelog History
Page 5

  • v3.4.0 Changes

    October 03, 2016
    • ✂ Removed Image.core.open_ppm, added negative image size checks in Image.py. #2146 [wiredfool]

    • 🏁 Windows build: fetch dependencies from pillow-depends #2095 [hugovk]

    • ➕ Add TIFF save_all writer. #2140 [lambdafu, vashek]

    • Move libtiff fd duplication to _load_libtiff #2141 [sekrause]

    • 🛠 Speed up GIF save optimization step, fixes #2093. #2133 [wiredfool]

    • 🛠 Fix for ImageCms Segfault, Issue #2037. #2131 [wiredfool]

    • 👉 Make Image.crop an immediate operation, not lazy. #2138 [wiredfool]

    • Skip empty values in ImageFileDirectory #2024 [homm]

    • 👮 Force reloading palette when using mmap in ImageFile. #2139 [lambdafu]

    • 🛠 Fix "invalid escape sequence" warning in Python 3.6 #2136 [timgraham]

    • 📚 Update documentation about drafts #2137 [radarhere]

    • 📚 Converted documentation parameter format, comments to docstrings #2021 [radarhere]

    • 🛠 Fixed typos #2128 #2142 [radarhere]

    • 🍎 Renamed references to OS X to macOS #2125 2130 [radarhere]

    • ⚡️ Use truth value when checking for progressive and optimize option on save #2115, #2129 [radarhere]

    • Convert DPI to ints when saving as JPEG #2102 [radarhere]

    • ➕ Added append_images parameter to GIF saving #2103 [radarhere]

    • Speedup paste with masks up to 80% #2015 [homm]

    • Rewrite DDS decoders in C, add DXT3 and BC7 decoders #2068 [Mischanix]

    • 🛠 Fix PyArg_ParseTuple format in getink() #2070 [arjennienhuis]

    • 🛠 Fix saving originally missing TIFF tags. #2111 [anntzer]

    • 👍 Allow pathlib.Path in Image.open on Python 2.7 #2110 [patricksnape]

    • 🗄 Use modern base64 interface over deprecated #2121 [hugovk]

    • ImageColor.getrgb hexadecimal RGBA #2114 [homm]

    • ✅ Test fix for bigendian machines #2092 [wiredfool]

    • Resampling lookups, trailing empty coefficients, precision #2008 [homm]

    • ➕ Add (un)packing between RGBA and BGRa #2057 [arjennienhuis]

    • ➕ Added return for J2k (and fpx) Load to return a pixel access object #2061 [wiredfool]

    • ✅ Skip failing numpy tests on Pypy <= 5.3.1 #2090 [arjennienhuis]

    • ⚠ Show warning when trying to save RGBA image as JPEG #2010 [homm]

    • Respect pixel centers during transform #2022 [homm]

    • 👍 TOC for supported file formats #2056 [polarize]

    • 🛠 Fix conversion of bit images to numpy arrays Fixes #350, #2058 [matthew-brett]

    • ➕ Add ImageOps.scale to expand or contract a PIL image by a factor #2011 [vlmath]

    • 🛠 Flake8 fixes #2050 [hugovk]

    • ⚡️ Updated freetype to 2.6.5 on Appveyor builds #2035 [radarhere]

    • 🛠 PCX encoder fixes #2023, pr #2041 [homm]

    • 📄 Docs: Windows console prompts are > #2031 [techtonik]

    • 🔖 Expose Pillow package version as PIL.version #2027 [techtonik]

    • ➕ Add Box and Hamming filters for resampling #1959 [homm]

    • Retain a reference to core image object in PyAccess #2009 [homm]

  • v3.3.3 Changes

    October 04, 2016
    • 🛠 Fix fix for map.c overflow #2151 [wiredfool]
  • v3.3.2 Changes

    October 03, 2016
    • 🛠 Fix negative image sizes in Storage.c #2146 [wiredfool]

    • 🛠 Fix integer overflow in map.c #2146 [wiredfool]

  • v3.3.1 Changes

    August 18, 2016
    • 🛠 Fix C90 compilation error for Tcl / Tk rewrite #2033 [matthew-brett]

    • 🛠 Fix image loading when rotating by 0 deg #2052 [homm]

  • v3.3.0 Changes

    July 01, 2016
    • 🛠 Fixed enums for Resolution Unit and Predictor in TiffTags.py #1998 [wiredfool]

    • 🛠 Fix issue converting P mode to LA #1986 [didrix]

    • Moved test_j2k_overflow to check_j2k_overflow, prevent DOS of our 32bit testing machines #1995 [wiredfool]

    • Skip CRC checks in PNG files when LOAD_TRUNCATED_IMAGES is enabled #1991 [kkopachev]

    • ➕ Added CMYK mode for opening EPS files #1826 [radarhere]

    • 📄 Docs: OSX build instruction clarification #1994 [wiredfool]

    • 📄 Docs: Filter comparison table #1993 [homm]

    • 🛠 Removal of pthread based Incremental.c, new interface for file decoders/encoders to access the python file. Fixes assorted J2k Hangs. #1934 [wiredfool]

    • Skip unnecessary passes when resizing #1954 [homm]

    • ✂ Removed duplicate code in ImagePalette #1832 [radarhere]

    • ✅ test_imagecms: Reduce precision of extended info due to 32 bit machine precision #1990 [AbdealiJK]

    • 📇 Binary Tiff Metadata/ICC profile. #1988 [wiredfool]

    • Ignore large text blocks in PNG if LOAD_TRUNCATED_IMAGES is enabled #1970 [homm]

    • 📄 Replace index = index+1 in docs with +=1 [cclauss]

    • Skip extra 0xff00 in jpeg #1977 [kkopachev]

    • 👉 Use bytearray for palette mutable storage #1985 [radarhere, wiredfool]

    • ➕ Added additional uint modes for Image.fromarray, more extensive tests of fromarray #1984 [mairsbw, wiredfool]

    • 🛠 Fix for program importing PyQt4 when PyQt5 also installed #1942 [hugovk]

    • 🔄 Changed depends/install_*.sh urls to point to github pillow-depends repo #1983 [wiredfool]

    • 👍 Allow ICC profile from encoderinfo while saving PNGs #1909 [homm]

    • 🛠 Fix integer overflow on ILP32 systems (32-bit Linux). #1975 [lambdafu]

    • 🔄 Change function declaration to match Tcl_CmdProc type #1966 [homm]

    • Integer overflow checks on all calls to *alloc #1781 [wiredfool]

    • 🔄 Change equals method on Image so it short circuits #1967 [mattBoros]

    • 🏗 Runtime loading of TCL/TK libraries, eliminating build time dependency. #1932 [matthew-brett]

    • Cleanup of transform methods #1941 [homm]

    • 🛠 Fix "Fatal Python error: UNREF invalid object" in debug builds #1936 [wiredfool]

    • 🐧 Setup fixes for Alpine linux #1937 [wiredfool]

    • Split resample into horizontal + vertical passes #1933 [homm]

    • Box blur with premultiplied alpha #1914 [homm]

    • ➕ Add libimagequant support in quantize() #1889 [rr-]

    • ➕ Added internal Premultiplied luminosity (La) mode #1912 [homm]

    • 🛠 Fixed point integer resample #1881 [homm]

    • ✂ Removed docs/BUILDME script #1924 [radarhere]

    • 🚚 Moved comments to docstrings #1926 [hugovk]

    • Include Python.h before wchar.h so _GNU_SOURCE is set consistently #1906 [hugovk]

    • 📚 Updated example decoder in documentation #1899 [radarhere]

    • ➕ Added support for GIF comment extension #1896 [radarhere]

    • ✂ Removed support for pre- 1.5.2 list form of Image info in Image.new #1897 [radarhere]

    • 🛠 Fix typos in TIFF tags #1918 [radarhere]

    • ✅ Skip tests that require libtiff if it is not installed #1893 (fixes #1866) [wiredfool]

    • ✅ Skip test when icc profile is not available, fixes #1887. #1892 [doko42]

    • 🗄 Make deprecated functions raise NotImplementedError instead of Exception. #1862, #1890 [daniel-leicht, radarhere]

    • Replaced os.system with subprocess.call in setup.py #1879 [radarhere]

    • 📚 Corrected Image show documentation #1886 [radarhere]

    • ➕ Added check for executable permissions to ImageShow #1880 [radarhere]

    • 🛠 Fixed tutorial code and added explanation #1877 [radarhere]

    • ➕ Added OS X support for ImageGrab grabclipboard #1837 [radarhere]

    • Combined duplicate code in ImageTk #1856 [radarhere]

    • ➕ Added --disable-platform-guessing option to setup.py build extension #1861 [angeloc]

    • 🛠 Fixed loading Transparent PNGs with a transparent black color #1840 [olt]

    • ➕ Add support for LA mode in Image.fromarray #1865 [pierriko]

    • 👉 Make ImageFile load images in read-only mode #1864 [hdante]

    • ➕ Added _accept hook for XVThumbImagePlugin #1853 [radarhere]

    • ✅ Test TIFF with LZW compression #1855, TGA RLE file #1854 [hugovk]

    • 👌 Improved SpiderImagePlugin help text #1863 [radarhere]

    • ⚡️ Updated Sphinx project description #1870 [radarhere]

    • ✂ Remove support for Python 3.0 from _imaging.c #1851 [radarhere]

    • Jpeg qtables are unsigned chars #1814, #1921 [thebostik]

    • ➕ Added additional EXIF tags #1841, TIFF Tags #1821 [radarhere]

    • 📚 Changed documentation to refer to ImageSequence Iterator #1833 [radarhere]

    • 🛠 Fix Fedora prerequisites in installation docs, depends script #1842 [living180]

    • ➕ Added _accept hook for PixarImagePlugin #1843 [radarhere]

    • ✂ Removed outdated scanner classifier #1823 [radarhere]

    • Combined identical error messages in _imaging #1825 [radarhere]

    • ➕ Added debug option for setup.py to trace header and library finding #1790 [wiredfool]

    • 🛠 Fix doc building on travis #1820, #1844 [wiredfool]

    • 🛠 Fix for DIB/BMP images #1813, #1847 [wiredfool]

    • ➕ Add PixarImagePlugin file extension #1809 [radarhere]

    • Catch struct.errors when verifying png files #1805 [wiredfool]

    • 👀 SpiderImagePlugin: raise an error when seeking in a non-stack file #1794 [radarhere, jmichalon]

    • ➕ Added support for 2/4 bpp Tiff grayscale images #1789 [zwhfly]

    • ✂ Removed unused variable from selftest #1788 [radarhere]

    • ➕ Added warning for as_dict method (deprecated in 3.0.0) #1799 [radarhere]

    • ✂ Removed powf support for older Python versions #1784 [radarhere]

    • 🛠 Health fixes #1625 #1903 [radarhere]

  • v3.2.0 Changes

    April 01, 2016
    • ➕ Added install docs for Fedora 23 and FreeBSD #1729, #1739, #1792 [koobs, zandermartin, wiredfool]

    • 🛠 Fixed TIFF multiframe load when the frames have different compression types #1782 [radarhere, geka000]

    • Added copy method to Image #1772 [radarhere]

    • ⚡️ Updated dates in PIL license in OleFileIO README #1787 [radarhere]

    • Corrected Tiff tag names #1786 [radarhere]

    • 🛠 Fixed documented name of JPEG property #1783 [radarhere]

    • 🛠 Fixed UnboundLocalError when loading a corrupt jpeg2k file #1780 [wiredfool]

    • 🛠 Fixed integer overflow in path.c #1773 [wiredfool, nedwill]

    • ➕ Added debug to command line help text for pilprint #1766 [radarhere]

    • 🔦 Expose many more fields in ICC Profiles #1756 [lambdafu]

    • 📚 Documentation changes, URL update, transpose, release checklist [radarhere]

    • 🛠 Fixed saving to nonexistant files specified by pathlib.Path objects #1748 (fixes #1747) [radarhere]

    • 🛠 Round Image.crop arguments to the nearest integer #1745 (fixes #1744) [hugovk]

    • 🛠 Fix uninitialized variable warning in _imaging.c:getink #1663 (fixes #486) [wiredfool]

    • 🛠 Disable multiprocessing install on cygwin #1700 (fixes #1690) [wiredfool]

    • 🛠 Fix the error reported when libz is not found #1764 [wiredfool]

    • More general error check to avoid Symbol not found: _PyUnicodeUCS2_AsLatin1String on OS X #1761 [wiredfool]

    • ➕ Added py35 to tox envlist #1724 [radarhere]

    • 🛠 Fix EXIF tag name typos #1736 [zarlant, radarhere]

    • ⚡️ Updated freetype to 2.6.3, Tk/Tcl to 8.6.5 and 8.5.19 #1725, #1752 [radarhere]

    • ➕ Add a loader for the FTEX format from Independence War 2: Edge of Chaos #1688 [jleclanche]

    • 👌 Improved alpha_composite documentation #1698 [radarhere]

    • Extend ImageDraw.text method to pass on multiline_text method specific arguments #1647 [radarhere]

    • 👍 Allow ImageSequence to seek to zero #1686 [radarhere]

    • ImageSequence Iterator is now an iterator #1649 [radarhere]

    • ⚡️ Updated windows test builds to jpeg9b #1673 [radarhere]

    • 🛠 Fixed support for .gbr version 1 images, added support for version 2 in GbrImagePlugin #1653 [wiredfool]

    • Clarified which YCbCr format is used #1677 [radarhere]

    • ➕ Added TiffTags documentation, Moved windows build documentation to winbuild/ #1667 [wiredfool]

    • ➕ Add tests for OLE file based formats #1678 [radarhere]

    • ➕ Add TIFF IFD test #1671 [radarhere]

    • ➕ Add a basic DDS image plugin with more tests #1654 [jleclanche, hugovk, wiredfool]

    • 🛠 Fix incorrect conditional in encode.c #1638 [manisandro]

  • v3.1.2 Changes

    April 01, 2016
    • 🛠 Fixed an integer overflow in Jpeg2KEncode.c causing a buffer overflow. CVE-2016-3076 [wiredfool]
  • v3.1.1 Changes

    February 04, 2016
    • 🛠 Fixed an integer overflow in Resample.c causing writes in the Python heap. [nedwill]

    • 🛠 Fixed a buffer overflow in PcdDecode.c causing a segfault when opening PhotoCD files. CVE-2016-2533 [wiredfool]

    • 🛠 Fixed a buffer overflow in FliDecode.c causing a segfault when opening FLI files. CVE-2016-0775 [wiredfool]

    • 🛠 Fixed a buffer overflow in TiffDecode.c causing an arbitrary amount of memory to be overwritten when opening a specially crafted invalid TIFF file. CVE-2016-0740 [wiredfool]

  • v3.1.0 Changes

    January 04, 2016
    • 🛠 Fixing test failures on Python 2.6/Windows #1633 [wiredfool]

    • 📇 Limit metadata tags when writing using libtiff #1620 [wiredfool]

    • 👍 Rolling back exif support to pre-3.0 format #1627 [wiredfool]

    • 🛠 Fix Divide by zero in Exif, add IFDRational class #1531 [wiredfool]

    • Catch the IFD error near the source #1622 [wiredfool]

    • ➕ Added release notes for 3.1.0 #1623 [radarhere]

    • ⚡️ Updated spacing to be consistent between multiline methods #1624 [radarhere]

    • Let EditorConfig take care of some basic formatting #1489 [hugovk]

    • ⏪ Restore gpsexif data to the v1 form #1619 [wiredfool]

    • ➕ Add /usr/local include and library directories for freebsd #1613 [leforestier]

    • ⚡️ Updated installation docs for new versions of dependencies #1611 [radarhere]

    • ✂ Removed unrunnable test file #1610 [radarhere]

    • 🔄 Changed register calls to use format property #1608 [radarhere]

    • ➕ Added field type constants to TiffTags #1596 [radarhere]

    • 👍 Allow saving RowsPerStrip with libtiff #1594 [wiredfool]

    • Enabled conversion to numpy array for HSV images #1578 [cartisan]

    • 🔄 Changed some urls in the docs to use https #1580 [hugovk]

    • ✂ Removed logger.exception from ImageFile.py #1590 [radarhere]

    • ✂ Removed warnings module check #1587 [radarhere]

    • 🔄 Changed arcs, chords and pie slices to use floats #1577 [radarhere]

    • ⚡️ Update unit test asserts #1584, #1598 [radarhere]

    • 🛠 Fix command to invoke ghostscript for eps files #1478 [baumatron, radarhere]

    • Consistent multiline text spacing #1574 [wiredfool, hugovk]

    • ✂ Removed unused lines in BDFFontFile #1530 [radarhere]

    • 🔄 Changed ImageQt import of Image #1560 [radarhere, ericfrederich]

    • Throw TypeError if no cursors were found in .cur file #1556 [radarhere]

    • 🛠 Fix crash in ImageTk.PhotoImage on win-amd64 #1553 [cgohlke]

    • ExtraSamples tag should be a SHORT, not a BYTE #1555 [Nexuapex]

    • 📄 Docs and code health fixes #1565 #1566 #1581 #1586 #1591 #1621 [radarhere]

    • ⚡️ Updated freetype to 2.6.2 #1564 [radarhere]

    • ⚡️ Updated WebP to 0.5.0 for Travis #1515 #1609 [radarhere]

    • Fix missing 'version' key value in array_interface #1519 [mattip]

    • 🖨 Replaced os.popen with subprocess.Popen to pilprint script #1523 [radarhere]

    • 🔌 Catch OverflowError in SpiderImagePlugin #1545 [radarhere, MrShark]

    • 🛠 Fix the definition of icc_profile in TiffTags #1539 [wiredfool]

    • ✂ Remove old _imagingtiff.c and pilplus stuff #1499 [hugovk]

    • 🛠 Fix Exception when requiring jpeg #1501 [hansmosh]

    • Dependency scripts for Debian and Ubuntu #1486 [wiredfool]

    • ➕ Added Usage message to painter script #1482 [radarhere]

    • ➕ Add tag info for iccprofile, fixes #1462. #1465 [wiredfool]

    • ➕ Added some requirements for make release-test #1451 [wiredfool]

    • 📇 Flatten tiff metadata value SAMPLEFORMAT to initial value #1467 (fixes #1466) [wiredfool]

    • 🛠 Fix handling of pathlib in Image.save #1464 (fixes #1460) [wiredfool]

    • ✅ Make tests more robust #1469 [hugovk]

    • 🏁 Use correctly sized pointers for windows handle types #1458 [nu744]

  • v3.0.0 Changes

    October 01, 2015
    • Check flush method existence for file-like object #1398 [mrTable, radarhere]

    • ➕ Added PDF multipage saving #1445 [radarhere]

    • ✂ Removed deprecated code, Image.tostring, Image.fromstring, Image.offset, ImageDraw.setink, ImageDraw.setfill, ImageFileIO, ImageFont.FreeTypeFont and ImageFont.truetype file kwarg, ImagePalette private _make functions, ImageWin.fromstring and ImageWin.tostring #1343 [radarhere]

    • Load more broken images #1428 [homm]

    • Require zlib and libjpeg #1439 [wiredfool]

    • Preserve alpha when converting from a QImage to a Pillow Image by using png instead of ppm #1429 [ericfrederich]

    • Qt needs 32 bit aligned image data #1430 [ericfrederich]

    • Tiff ImageFileDirectory rewrite #1419 [anntzer, wiredfool, homm]

    • ✂ Removed spammy debug logging #1423 [wiredfool]

    • 💾 Save as GiF89a with support for animation parameters #1384 [radarhere]

    • 📄 Correct convert matrix docs #1426 [wiredfool]

    • Catch TypeError in _getexif #1414 [radarhere, wiredfool]

    • 🛠 Fix for UnicodeDecodeError in TiffImagePlugin #1416 [bogdan199, wiredfool]

    • Dedup code in image.open #1415 [wiredfool]

    • Skip any number extraneous chars at the end of JPEG chunks #1337 [homm]

    • 🔨 Single threaded build for pypy3, refactor #1413 [wiredfool]

    • Fix loading of truncated images with LOAD_TRUNCATED_IMAGES enabled #1366 [homm]

    • 📚 Documentation update for concepts: bands #1406 [merriam]

    • ➕ Add Solaris/SmartOS include and library directories #1356 [njones11]

    • 👌 Improved handling of getink color #1387 [radarhere]

    • 🛠 Disable compiler optimizations for topalette and tobilevel functions for all msvc versions #1402 (fixes #1357) [cgohlke]

    • ✅ Skip ImageFont_bitmap test if _imagingft C module is not installed #1409 [homm]

    • ➕ Add param documentation to ImagePalette #1381 [bwrsandman]

    • Corrected scripts path #1407 [radarhere]

    • ⚡️ Updated libtiff to 4.0.6 #1405, #1421 [radarhere]

    • ⚡️ Updated Platform Support for Yosemite #1403 [radarhere]

    • 🛠 Fixed infinite loop on truncated file #1401 [radarhere]

    • Check that images are L mode in ImageMorph methods #1400 [radarhere]

    • In tutorial of pasting images, add to mask text #1389 [merriam]

    • 💅 Style/health fixes #1391, #1397, #1417, #1418 [radarhere]

    • ✅ Test on Python 3.5 dev and 3.6 nightly #1361 [hugovk]

    • 🛠 Fix fast rotate operations #1373 [radarhere]

    • ➕ Added support for pathlib Path objects to open and save #1372 [radarhere]

    • 🔄 Changed register calls to use format property #1333 [radarhere]

    • ➕ Added support for ImageGrab.grab to OS X #1367, #1443 [radarhere, hugovk]

    • 🛠 Fixed PSDraw stdout Python 3 compatibility #1365 [radarhere]

    • ➕ Added Python 3.3 to AppVeyor #1363 [radarhere]

    • Treat MPO with unknown header as base JPEG file #1350 [hugovk, radarhere]

    • ➕ Added various tests #1330, #1344 [radarhere]

    • ✅ More ImageFont tests #1327 [hugovk]

    • 🖨 Use logging instead of print #1207 [anntzer]