Changelog History
Page 1
-
v9.1.1 Changes
May 17, 2022When 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, 2022Restrict 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, 2021Prefer 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, 2021CVE-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, 2021Catch 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]