All Versions
132
Latest Version
Avg Release Cycle
50 days
Latest Release
46 days ago

Changelog History
Page 1

  • v9.1.1 Changes

    May 17, 2022
    • When reading past the end of a TGA scan line, reduce bytes left. CVE-2022-30595 [radarhere]

    • Do not open images with zero or negative height #6269 [radarhere]

  • v9.1.0 Changes

    April 01, 2022
    • โž• Add support for multiple component transformation to JPEG2000 #5500 [scaramallion, radarhere, hugovk]

    • ๐Ÿ›  Fix loading FriBiDi on Alpine #6165 [nulano]

    • โž• Added setting for converting GIF P frames to RGB #6150 [radarhere]

    • ๐Ÿ‘ Allow 1 mode images to be inverted #6034 [radarhere]

    • Raise ValueError when trying to save empty JPEG #6159 [radarhere]

    • ๐Ÿ”ง Always save TIFF with contiguous planar configuration #5973 [radarhere]

    • Connected discontiguous polygon corners #5980 [radarhere]

    • Ensure Tkinter hook is activated for getimage() #6032 [radarhere]

    • ๐ŸŽ Use screencapture arguments to crop on macOS #6152 [radarhere]

    • Do not mark L mode JPEG as 1 bit in PDF #6151 [radarhere]

    • โž• Added support for reading I;16R TIFF images #6132 [radarhere]

    • ๐Ÿšš If an error occurs after creating a file, remove the file #6134 [radarhere]

    • ๐Ÿ›  Fixed calling DisplayViewer or XVViewer without a title #6136 [radarhere]

    • Retain RGBA transparency when saving multiple GIF frames #6128 [radarhere]

    • ๐Ÿ’พ Save additional ICO frames with other bit depths if supplied #6122 [radarhere]

    • ๐Ÿ– Handle EXIF data truncated to just the header #6124 [radarhere]

    • โž• Added support for reading BMP images with RLE8 compression #6102 [radarhere]

    • ๐Ÿ‘Œ Support Python distributions where _tkinter is compiled in #6006 [lukegb]

    • โž• Added support for PPM arbitrary maxval #6119 [radarhere]

    • โž• Added BigTIFF reading #6097 [radarhere]

    • When converting, clip I;16 to be unsigned, not signed #6112 [radarhere]

    • ๐Ÿ›  Fixed loading L mode GIF with transparency #6086 [radarhere]

    • ๐Ÿ‘Œ Improved handling of PPM header #5121 [Piolie, radarhere]

    • ๐Ÿ‘€ Reset size when seeking away from "Large Thumbnail" MPO frame #6101 [radarhere]

    • Replace requirements.txt with extras #6072 [hugovk, radarhere]

    • โž• Added PyEncoder and support BLP saving #6069 [radarhere]

    • ๐Ÿ– Handle TGA images with packets that cross scan lines #6087 [radarhere]

    • โž• Added FITS reading #6056 [radarhere, hugovk]

    • โž• Added rawmode argument to Image.getpalette() #6061 [radarhere]

    • ๐Ÿ›  Fixed BUFR, GRIB and HDF5 stub saving #6071 [radarhere]

    • ๐Ÿšš Do not automatically remove temporary ImageShow files on Unix #6045 [radarhere]

    • Correctly read JPEG compressed BLP images #4685 [Meithal, radarhere]

    • Merged _MODE_CONV typ into ImageMode as typestr #6057 [radarhere]

    • Consider palette size when converting and in getpalette() #6060 [radarhere]

    • โž• Added enums #5954 [radarhere]

    • Ensure image is opaque after converting P to PA with RGB palette #6052 [radarhere]

    • Attach RGBA palettes from putpalette() when suitable #6054 [radarhere]

    • Added get_photoshop_blocks() to parse Photoshop TIFF tag #6030 [radarhere]

    • โฌ‡๏ธ Drop excess values in BITSPERSAMPLE #6041 [mikhail-iurkov]

    • โž• Added unpacker from RGBA;15 to RGB #6031 [radarhere]

    • ๐Ÿ Enable arm64 for MSVC on Windows #5811 [gaborkertesz-linaro, gaborkertesz]

    • Keep IPython/Jupyter text/plain output stable #5891 [shamrin, radarhere]

    • Raise an error when performing a negative crop #5972 [radarhere, hugovk]

    • ๐Ÿ—„ Deprecated show_file "file" argument in favour of "path" #5959 [radarhere]

    • ๐Ÿ›  Fixed SPIDER images for use with Bio-formats library #5956 [radarhere]

    • Ensure duplicated file pointer is closed #5946 [radarhere]

    • โž• Added specific error if path coordinate type is incorrect #5942 [radarhere]

    • โœ… Return an empty bytestring from tobytes() for an empty image #5938 [radarhere]

    • Remove readonly from Image.eq #5930 [hugovk]

  • v9.0.1 Changes

    February 03, 2022
    • ๐Ÿšš In show_file, use os.remove to remove temporary images. CVE-2022-24303 #6010 [radarhere, hugovk]

    • Restrict builtins within lambdas for ImageMath.eval. CVE-2022-22817 #6009 [radarhere]

  • v9.0.0 Changes

    January 02, 2022
    • Restrict builtins for ImageMath.eval(). CVE-2022-22817 #5923 [radarhere]

    • ๐Ÿ”Œ Ensure JpegImagePlugin stops at the end of a truncated file #5921 [radarhere]

    • ๐Ÿ›  Fixed ImagePath.Path array handling. CVE-2022-22815, CVE-2022-22816 #5920 [radarhere]

    • โœ‚ Remove consecutive duplicate tiles that only differ by their offset #5919 [radarhere]

    • ๐Ÿ‘Œ Improved I;16 operations on big endian #5901 [radarhere]

    • Limit quantized palette to number of colors #5879 [radarhere]

    • ๐Ÿ›  Fixed palette index for zeroed color in FASTOCTREE quantize #5869 [radarhere]

    • When saving RGBA to GIF, make use of first transparent palette entry #5859 [radarhere]

    • Pass SAMPLEFORMAT to libtiff #5848 [radarhere]

    • โž• Added rounding when converting P and PA #5824 [radarhere]

    • ๐Ÿ‘Œ Improved putdata() documentation and data handling #5910 [radarhere]

    • Exclude carriage return in PDF regex to help prevent ReDoS #5912 [hugovk]

    • ๐Ÿ›  Fixed freeing pointer in ImageDraw.Outline.transform #5909 [radarhere]

    • โž• Added ImageShow support for xdg-open #5897 [m-shinder, radarhere]

    • ๐Ÿ‘Œ Support 16-bit grayscale ImageQt conversion #5856 [cmbruns, radarhere]

    • Convert subsequent GIF frames to RGB or RGBA #5857 [radarhere]

    • Do not prematurely return in ImageFile when saving to stdout #5665 [infmagic2047, radarhere]

    • โž• Added support for top right and bottom right TGA orientations #5829 [radarhere]

    • Corrected ICNS file length in header #5845 [radarhere]

    • Block tile TIFF tags when saving #5839 [radarhere]

    • โž• Added line width argument to polygon #5694 [radarhere]

    • Do not redeclare class each time when converting to NumPy #5844 [radarhere]

    • Only prevent repeated polygon pixels when drawing with transparency #5835 [radarhere]

    • โž• Add support for pickling TrueType fonts #5826 [hugovk, radarhere]

    • ๐ŸŽ Only prefer command line tools SDK on macOS over default MacOSX SDK #5828 [radarhere]

    • โฌ‡๏ธ Drop support for soon-EOL Python 3.6 #5768 [hugovk, nulano, radarhere]

    • ๐Ÿ›  Fix compilation on 64-bit Termux #5793 [landfillbaby]

    • ๐Ÿ‘‰ Use title for display in ImageShow #5788 [radarhere]

    • โœ‚ Remove support for FreeType 2.7 and older #5777 [hugovk, radarhere]

    • ๐Ÿ›  Fix for PyQt6 #5775 [hugovk, radarhere]

    • ๐Ÿ”– Removed deprecated PILLOW_VERSION, Image.show command parameter, Image._showxv and ImageFile.raise_ioerror #5776 [radarhere]

  • v8.4.0 Changes

    October 15, 2021
    • Prefer global transparency in GIF when replacing with background color #5756 [radarhere]

    • โž• Added "exif" keyword argument to TIFF saving #5575 [radarhere]

    • Copy Python palette to new image in quantize() #5696 [radarhere]

    • Read ICO AND mask from end #5667 [radarhere]

    • Actually check the framesize in FliDecode.c #5659 [wiredfool]

    • Determine JPEG2000 mode purely from ihdr header box #5654 [radarhere]

    • ๐Ÿ›  Fixed using info dictionary when writing multiple APNG frames #5611 [radarhere]

    • ๐Ÿ‘ Allow saving 1 and L mode TIFF with PhotometricInterpretation 0 #5655 [radarhere]

    • For GIF save_all with palette, do not include palette with each frame #5603 [radarhere]

    • Keep transparency when converting from P to LA or PA #5606 [radarhere]

    • Copy palette to new image in transform() #5647 [radarhere]

    • โž• Added "transparency" argument to EpsImagePlugin load() #5620 [radarhere]

    • Corrected pathlib.Path detection when saving #5633 [radarhere]

    • โž• Added WalImageFile class #5618 [radarhere]

    • Consider I;16 pixel size when drawing text #5598 [radarhere]

    • 0๏ธโƒฃ If default conversion from P is RGB with transparency, convert to RGBA #5594 [radarhere]

    • Speed up rotating square images by 90 or 270 degrees #5646 [radarhere]

    • โž• Add support for reading DPI information from JPEG2000 images [rogermb, radarhere]

    • Catch TypeError from corrupted DPI value in EXIF #5639 [homm, radarhere]

    • Do not close file pointer when saving SGI images #5645 [farizrahman4u, radarhere]

    • ๐Ÿ—„ Deprecate ImagePalette size parameter #5641 [radarhere, hugovk]

    • ๐ŸŽ Prefer command line tools SDK on macOS #5624 [radarhere]

    • โž• Added tags when saving YCbCr TIFF #5597 [radarhere]

    • PSD layer count may be negative #5613 [radarhere]

    • ๐Ÿ›  Fixed ImageOps expand with tuple border on P image #5615 [radarhere]

    • ๐Ÿ›  Fixed error saving APNG with duplicate frames and different duration times #5609 [thak1411, radarhere]

  • v8.3.2 Changes

    September 02, 2021
    • CVE-2021-23437 Raise ValueError if color specifier is too long [hugovk, radarhere]

    • ๐Ÿ›  Fix 6-byte OOB read in FliDecode [wiredfool]

    • โž• Add support for Python 3.10 #5569, #5570 [hugovk, radarhere]

    • Ensure TIFF RowsPerStrip is multiple of 8 for JPEG compression #5588 [kmilos, radarhere]

    • โšก๏ธ Updates for ImagePalette channel order #5599 [radarhere]

    • Hide FriBiDi shim symbols to avoid conflict with real FriBiDi library #5651 [nulano]

  • v8.3.1 Changes

    July 06, 2021
    • Catch OSError when checking if fp is sys.stdout #5585 [radarhere]

    • ๐Ÿ– Handle removing orientation from alternate types of EXIF data #5584 [radarhere]

    • Make Image.array take optional dtype argument #5572 [t-vi, radarhere]

  • v8.3.0 Changes

    July 01, 2021
    • ๐Ÿ–จ Use snprintf instead of sprintf. CVE-2021-34552 #5567 [radarhere]

    • Limit TIFF strip size when saving with LibTIFF #5514 [kmilos]

    • ๐Ÿ‘ Allow ICNS save on all operating systems #4526 [baletu, radarhere, newpanjing, hugovk]

    • De-zigzag JPEG's DQT when loading; deprecate convert_dict_qtables #4989 [gofr, radarhere]

    • Replaced xml.etree.ElementTree #5565 [radarhere]

    • ๐Ÿšš Moved CVE image to pillow-depends #5561 [radarhere]

    • โž• Added tag data for IFD groups #5554 [radarhere]

    • ๐Ÿ‘Œ Improved ImagePalette #5552 [radarhere]

    • โž• Add DDS saving #5402 [radarhere]

    • ๐Ÿ‘Œ Improved getxmp() #5455 [radarhere]

    • Convert to float for comparison with float in IFDRational eq #5412 [radarhere]

    • ๐Ÿ‘ Allow getexif() to access TIFF tag_v2 data #5416 [radarhere]

    • Read FITS image mode and size #5405 [radarhere]

    • ๐Ÿ”€ Merge parallel horizontal edges in ImagingDrawPolygon #5347 [radarhere, hrdrq]

    • ๐Ÿ‘‰ Use transparency behind first GIF frame and when disposing to background #5557 [radarhere, zewt]

    • Avoid unstable nature of qsort in Quant.c #5367 [radarhere]

    • Copy palette to new images in ImageOps expand #5551 [radarhere]

    • Ensure palette string matches RGB mode #5549 [radarhere]

    • Do not modify EXIF of original image instance in exif_transpose() #5547 [radarhere]

    • ๐Ÿ›  Fixed default numresolution for small JPEG2000 images #5540 [radarhere]

    • โž• Added DDS BC5 reading #5501 [radarhere]

    • Raise an error if ImageDraw.textbbox is used without a TrueType font #5510 [radarhere]

    • โž• Added ICO saving in BMP format #5513 [radarhere]

    • ๐Ÿ‘€ Ensure PNG seeks to end of previous chunk at start of load_end #5493 [radarhere]

    • ๐Ÿ‘€ Do not allow TIFF to seek to a past frame #5473 [radarhere]

    • Avoid race condition when displaying images with eog #5507 [mconst]

    • โž• Added specific error messages when ink has incorrect number of bands #5504 [radarhere]

    • ๐Ÿ‘ Allow converting an image to a numpy array to raise errors #5379 [radarhere]

    • โœ‚ Removed DPI rounding from BMP, JPEG, PNG and WMF loading #5476, #5470 [radarhere]

    • โœ‚ Remove spikes when drawing thin pieslices #5460 [xtsm]

    • โšก๏ธ Updated default value for SAMPLESPERPIXEL TIFF tag #5452 [radarhere]

    • โœ‚ Removed TIFF DPI rounding #5446 [radarhere, hugovk]

    • Include code in WebP error #5471 [radarhere]

    • Do not alter pixels outside mask when drawing text on an image with transparency #5434 [radarhere]

    • ๐Ÿ‘€ Reset handle when seeking backwards in TIFF #5443 [radarhere]

    • Replace sys.stdout with sys.stdout.buffer when saving #5437 [radarhere]

    • ๐Ÿ›  Fixed UNDEFINED TIFF tag of length 0 being changed in roundtrip #5426 [radarhere]

    • ๐Ÿ›  Fixed bug when checking FreeType2 version if it is not installed #5445 [radarhere]

    • Do not round dimensions when saving PDF #5459 [radarhere]

    • โž• Added ImageOps contain() #5417 [radarhere, hugovk]

    • ๐Ÿ”„ Changed WebP default "method" value to 4 #5450 [radarhere]

    • Switched to saving 1-bit PDFs with DCTDecode #5430 [radarhere]

    • ๐Ÿ‘‰ Use bpp from ICO header #5429 [radarhere]

    • Corrected JPEG APP14 transform value #5408 [radarhere]

    • ๐Ÿ”„ Changed TIFF tag 33723 length to 1 #5425 [radarhere]

    • ๐Ÿ”„ Changed ImageMorph incorrect mode errors to ValueError #5414 [radarhere]

    • โž• Add EXIF tags specified in EXIF 2.32 #5419 [gladiusglad]

    • Treat previous contents of first GIF frame as transparent #5391 [radarhere]

    • โช For special image modes, revert default resize resampling to NEAREST #5411 [radarhere]

    • ๐Ÿ‘ JPEG2000: Support decoding subsampled RGB and YCbCr images #4996 [nulano, radarhere]

    • Stop decoding BC1 punchthrough alpha in BC2&3 #4144 [jansol]

    • ๐Ÿ‘‰ Use zero if GIF background color index is missing #5390 [radarhere]

    • ๐Ÿ›  Fixed ensuring that GIF previous frame was loaded #5386 [radarhere]

    • ๐Ÿ›  Valgrind fixes #5397 [wiredfool]

    • Round down the radius in rounded_rectangle #5382 [radarhere]

    • ๐Ÿ›  Fixed reading uncompressed RGB data from DDS #5383 [radarhere]

  • v8.2.0 Changes

    April 01, 2021
    • โž• Added getxmp() method #5144 [UrielMaD, radarhere]

    • โž• Add ImageShow support for GraphicsMagick #5349 [latosha-maltba, radarhere]

    • Do not load transparent pixels from subsequent GIF frames #5333 [zewt, radarhere]

    • ๐Ÿ‘‰ Use LZW encoding when saving GIF images #5291 [raygard]

    • Set all transparent colors to be equal in quantize() #5282 [radarhere]

    • Allow PixelAccess to use Python int when parsing x and y #5206 [radarhere]

    • โœ‚ Removed Image._MODEINFO #5316 [radarhere]

    • โž• Add preserve_tone option to autocontrast #5350 [elejke, radarhere]

    • Fixed linear_gradient and radial_gradient I and F modes #5274 [radarhere]

    • โž• Add support for reading TIFFs with PlanarConfiguration=2 #5364 [kkopachev, wiredfool, nulano]

    • ๐Ÿ—„ Deprecated categories #5351 [radarhere]

    • Do not premultiply alpha when resizing with Image.NEAREST resampling #5304 [nulano]

    • Dynamically link FriBiDi instead of Raqm #5062 [nulano]

    • ๐Ÿ‘ Allow fewer PNG palette entries than the bit depth maximum when saving #5330 [radarhere]

    • ๐Ÿ‘‰ Use duration from info dictionary when saving WebP #5338 [radarhere]

    • Stop flattening EXIF IFD into getexif() #4947 [radarhere, kkopachev]

    • Replaced tiff_deflate with tiff_adobe_deflate compression when saving TIFF images #5343 [radarhere]

    • ๐Ÿ’พ Save ICC profile from TIFF encoderinfo #5321 [radarhere]

    • ๐Ÿšš Moved RGB fix inside ImageQt class #5268 [radarhere]

    • ๐Ÿ‘ Allow alpha_composite destination to be negative #5313 [radarhere]

    • Ensure file is closed if it is opened by ImageQt.ImageQt #5260 [radarhere]

    • โž• Added ImageDraw rounded_rectangle method #5208 [radarhere]

    • โž• Added IPythonViewer #5289 [radarhere, Kipkurui-mutai]

    • Only draw each rectangle outline pixel once #5183 [radarhere]

    • ๐Ÿ‘‰ Use mmap instead of built-in Win32 mapper #5224 [radarhere, cgohlke]

    • ๐Ÿ– Handle PCX images with an odd stride #5214 [radarhere]

    • Only read different sizes for "Large Thumbnail" MPO frames #5168 [radarhere]

    • โž• Added PyQt6 support #5258 [radarhere]

    • ๐Ÿ”„ Changed Image.open formats parameter to be case-insensitive #5250 [Piolie, radarhere]

    • ๐Ÿšš Deprecate Tk/Tcl 8.4, to be removed in Pillow 10 (2023-01-02) #5216 [radarhere]

    • โž• Added tk version to pilinfo #5226 [radarhere, nulano]

    • ๐Ÿ‘Œ Support for ignoring tests when running valgrind #5150 [wiredfool, radarhere, hugovk]

    • ๐Ÿ‘ OSS-Fuzz support #5189 [wiredfool, radarhere]

  • v8.1.2 Changes

    March 06, 2021
    • ๐Ÿ›  Fix Memory DOS in BLP (CVE-2021-27921), ICNS (CVE-2021-27922) and ICO (CVE-2021-27923) Image Plugins [wiredfool]