samclane / LIFX-Control-Panel

As LIFX no longer supports their Windows 10 app, I created an open-source alternative for controlling LIFX-brand smart lights.
https://github.com/samclane/LIFX-Control-Panel
MIT License
162 stars 19 forks source link

Pin pillow to latest version 8.1.0 #120

Closed pyup-bot closed 3 years ago

pyup-bot commented 3 years ago

This PR pins Pillow to the latest release 8.1.0.

Changelog ### 8.1.0 ``` ------------------ - Fix TIFF OOB Write error. CVE-2020-35654 5175 [wiredfool] - Fix for Read Overflow in PCX Decoding. CVE-2020-35653 5174 [wiredfool, radarhere] - Fix for SGI Decode buffer overrun. CVE-2020-35655 5173 [wiredfool, radarhere] - Fix OOB Read when saving GIF of xsize=1 5149 [wiredfool] - Makefile updates 5159 [wiredfool, radarhere] - Add support for PySide6 5161 [hugovk] - Use disposal settings from previous frame in APNG 5126 [radarhere] - Added exception explaining that _repr_png_ saves to PNG 5139 [radarhere] - Use previous disposal method in GIF load_end 5125 [radarhere] - Allow putpalette to accept 1024 integers to include alpha values 5089 [radarhere] - Fix OOB Read when writing TIFF with custom Metadata 5148 [wiredfool] - Added append_images support for ICO 4568 [ziplantil, radarhere] - Block TIFFTAG_SUBIFD 5120 [radarhere] - Fixed dereferencing potential null pointers 5108, 5111 [cgohlke, radarhere] - Deprecate FreeType 2.7 5098 [hugovk, radarhere] - Moved warning to end of execution 4965 [radarhere] - Removed unused fromstring and tostring C methods 5026 [radarhere] - init() if one of the formats is unrecognised 5037 [radarhere] - Moved string_dimension CVE image to pillow-depends 4993 [radarhere] - Support raw rgba8888 for DDS 4760 [qiankanglai] ``` ### 8.0.1 ``` ------------------ - Update FreeType used in binary wheels to 2.10.4 to fix CVE-2020-15999. [radarhere] - Moved string_dimension image to pillow-depends 4993 [radarhere] ``` ### 8.0.0 ``` ------------------ - Drop support for EOL Python 3.5 4746, 4794 [hugovk, radarhere, nulano] - Drop support for PyPy3 < 7.2.0 4964 [nulano] - Remove ImageCms.CmsProfile attributes deprecated since 3.2.0 4768 [hugovk, radarhere] - Remove long-deprecated Image.py functions 4798 [hugovk, nulano, radarhere] - Add support for 16-bit precision JPEG quantization values 4918 [gofr] - Added reading of IFD tag type 4979 [radarhere] - Initialize offset memory for PyImagingPhotoPut 4806 [nqbit] - Fix TiffDecode comparison warnings 4756 [nulano] - Docs: Add dark mode 4968 [hugovk, nulano] - Added macOS SDK install path to library and include directories 4974 [radarhere, fxcoudert] - Imaging.h: prevent confusion with system 4923 [ax3l, ,radarhere] - Avoid using pkg_resources in PIL.features.pilinfo 4975 [nulano] - Add getlength and getbbox functions for TrueType fonts 4959 [nulano, radarhere, hugovk] - Allow tuples with one item to give single color value in getink 4927 [radarhere, nulano] - Add support for CBDT and COLR fonts 4955 [nulano, hugovk] - Removed OSError in favour of DecompressionBombError for BMP 4966 [radarhere] - Implemented another ellipse drawing algorithm 4523 [xtsm, radarhere] - Removed unused JpegImagePlugin._fixup_dict function 4957 [radarhere] - Added reading and writing of private PNG chunks 4292 [radarhere] - Implement anchor for TrueType fonts 4930 [nulano, hugovk] - Fixed bug in Exif __delitem__ 4942 [radarhere] - Fix crash in ImageTk.PhotoImage on MinGW 64-bit 4946 [nulano] - Moved CVE images to pillow-depends 4929 [radarhere] - Refactor font_getsize and font_render 4910 [nulano] - Fixed loading profile with non-ASCII path on Windows 4914 [radarhere] - Fixed effect_spread bug for zero distance 4908 [radarhere, hugovk] - Added formats parameter to Image.open 4837 [nulano, radarhere] - Added regular_polygon draw method 4846 [comhar] - Raise proper TypeError in putpixel 4882 [nulano, hugovk] - Added writing of subIFDs 4862 [radarhere] - Fix IFDRational __eq__ bug 4888 [luphord, radarhere] - Fixed duplicate variable name 4885 [liZe, radarhere] - Added homebrew zlib include directory 4842 [radarhere] - Corrected inverted PDF CMYK colors 4866 [radarhere] - Do not try to close file pointer if file pointer is empty 4823 [radarhere] - ImageOps.autocontrast: add mask parameter 4843 [navneeth, hugovk] - Read EXIF data tEXt chunk into info as bytes instead of string 4828 [radarhere] - Replaced distutils with setuptools 4797, 4809, 4814, 4817, 4829, 4890 [hugovk, radarhere] - Add MIME type to PsdImagePlugin 4788 [samamorgan] - Allow ImageOps.autocontrast to specify low and high cutoffs separately 4749 [millionhz, radarhere] ``` ### 7.2.0 ``` ------------------ - Do not convert I;16 images when showing PNGs 4744 [radarhere] - Fixed ICNS file pointer saving 4741 [radarhere] - Fixed loading non-RGBA mode APNGs with dispose background 4742 [radarhere] - Deprecated _showxv 4714 [radarhere] - Deprecate Image.show(command="...") 4646 [nulano, hugovk, radarhere] - Updated JPEG magic number 4707 [Cykooz, radarhere] - Change STRIPBYTECOUNTS to LONG if necessary when saving 4626 [radarhere, hugovk] - Write JFIF header when saving JPEG 4639 [radarhere] - Replaced tiff_jpeg with jpeg compression when saving TIFF images 4627 [radarhere] - Writing TIFF tags: improved BYTE, added UNDEFINED 4605 [radarhere] - Consider transparency when pasting text on an RGBA image 4566 [radarhere] - Added method argument to single frame WebP saving 4547 [radarhere] - Use ImageFileDirectory_v2 in Image.Exif 4637 [radarhere] - Corrected reading EXIF metadata without prefix 4677 [radarhere] - Fixed drawing a jointed line with a sequence of numeric values 4580 [radarhere] - Added support for 1-D NumPy arrays 4608 [radarhere] - Parse orientation from XMP tags 4560 [radarhere] - Speed up text layout by not rendering glyphs 4652 [nulano] - Fixed ZeroDivisionError in Image.thumbnail 4625 [radarhere] - Replaced TiffImagePlugin DEBUG with logging 4550 [radarhere] - Fix repeatedly loading .gbr 4620 [ElinksFr, radarhere] - JPEG: Truncate icclist instead of setting to None 4613 [homm] - Fixes default offset for Exif 4594 [rodrigob, radarhere] - Fixed bug when unpickling TIFF images 4565 [radarhere] - Fix pickling WebP 4561 [hugovk, radarhere] - Replace IOError and WindowsError aliases with OSError 4536 [hugovk, radarhere] ``` ### 7.1.2 ``` ------------------ - Raise an EOFError when seeking too far in PNG 4528 [radarhere] ``` ### 7.1.1 ``` ------------------ - Fix regression seeking and telling PNGs 4512 4514 [hugovk, radarhere] ``` ### 7.1.0 ``` ------------------ - Fix multiple OOB reads in FLI decoding 4503 [wiredfool] - Fix buffer overflow in SGI-RLE decoding 4504 [wiredfool, hugovk] - Fix bounds overflow in JPEG 2000 decoding 4505 [wiredfool] - Fix bounds overflow in PCX decoding 4506 [wiredfool] - Fix 2 buffer overflows in TIFF decoding 4507 [wiredfool] - Add APNG support 4243 [pmrowla, radarhere, hugovk] - ImageGrab.grab() for Linux with XCB 4260 [nulano, radarhere] - Added three new channel operations 4230 [dwastberg, radarhere] - Prevent masking of Image reduce method in Jpeg2KImagePlugin 4474 [radarhere, homm] - Added reading of earlier ImageMagick PNG EXIF data 4471 [radarhere] - Fixed endian handling for I;16 getextrema 4457 [radarhere] - Release buffer if function returns prematurely 4381 [radarhere] - Add JPEG comment to info dictionary 4455 [radarhere] - Fix size calculation of Image.thumbnail() 4404 [orlnub123] - Fixed stroke on FreeType < 2.9 4401 [radarhere] - If present, only use alpha channel for bounding box 4454 [radarhere] - Warn if an unknown feature is passed to features.check() 4438 [jdufresne] - Fix Name field length when saving IM images 4424 [hugovk, radarhere] - Allow saving of zero quality JPEG images 4440 [radarhere] - Allow explicit zero width to hide outline 4334 [radarhere] - Change ContainerIO return type to match file object mode 4297 [jdufresne, radarhere] - Only draw each polygon pixel once 4333 [radarhere] - Add support for shooting situation Exif IFD tags 4398 [alexagv] - Handle multiple and malformed JPEG APP13 markers 4370 [homm] - Depends: Update libwebp to 1.1.0 4342, libjpeg to 9d 4352 [radarhere] ``` ### 7.0.0 ``` ------------------ - Drop support for EOL Python 2.7 4109 [hugovk, radarhere, jdufresne] - Fix rounding error on RGB to L conversion 4320 [homm] - Exif writing fixes: Rational boundaries and signed/unsigned types 3980 [kkopachev, radarhere] - Allow loading of WMF images at a given DPI 4311 [radarhere] - Added reduce operation 4251 [homm] - Raise ValueError for io.StringIO in Image.open 4302 [radarhere, hugovk] - Fix thumbnail geometry when DCT scaling is used 4231 [homm, radarhere] - Use default DPI when exif provides invalid x_resolution 4147 [beipang2, radarhere] - Change default resize resampling filter from NEAREST to BICUBIC 4255 [homm] - Fixed black lines on upscaled images with the BOX filter 4278 [homm] - Better thumbnail aspect ratio preservation 4256 [homm] - Add La mode packing and unpacking 4248 [homm] - Include tests in coverage reports 4173 [hugovk] - Handle broken Photoshop data 4239 [radarhere] - Raise a specific exception if no data is found for an MPO frame 4240 [radarhere] - Fix Unicode support for PyPy 4145 [nulano] - Added UnidentifiedImageError 4182 [radarhere, hugovk] - Remove deprecated __version__ from plugins 4197 [hugovk, radarhere] - Fixed freeing unallocated pointer when resizing with height too large 4116 [radarhere] - Copy info in Image.transform 4128 [radarhere] - Corrected DdsImagePlugin setting info gamma 4171 [radarhere] - Depends: Update libtiff to 4.1.0 4195, Tk Tcl to 8.6.10 4229, libimagequant to 2.12.6 4318 [radarhere] - Improve handling of file resources 3577 [jdufresne] - Removed CI testing of Fedora 29 4165 [hugovk] - Added pypy3 to tox envlist 4137 [jdufresne] - Drop support for EOL PyQt4 and PySide 4108 [hugovk, radarhere] - Removed deprecated setting of TIFF image sizes 4114 [radarhere] - Removed deprecated PILLOW_VERSION 4107 [hugovk] - Changed default frombuffer raw decoder args 1730 [radarhere] ``` ### 6.2.2 ``` ------------------ - This is the last Pillow release to support Python 2.7 3642 - Overflow checks for realloc for tiff decoding. CVE-2020-5310 [wiredfool, radarhere] - Catch SGI buffer overrun. CVE-2020-5311 [radarhere] - Catch PCX P mode buffer overrun. CVE-2020-5312 [radarhere] - Catch FLI buffer overrun. CVE-2020-5313 [radarhere] - Raise an error for an invalid number of bands in FPX image. CVE-2019-19911 [wiredfool, radarhere] ``` ### 6.2.1 ``` ------------------ - Add support for Python 3.8 4141 [hugovk] ``` ### 6.2.0 ``` ------------------ - Catch buffer overruns 4104 [radarhere] - Initialize rows_per_strip when RowsPerStrip tag is missing 4034 [cgohlke, radarhere] - Raise error if TIFF dimension is a string 4103 [radarhere] - Added decompression bomb checks 4102 [radarhere] - Fix ImageGrab.grab DPI scaling on Windows 10 version 1607+ 4000 [nulano, radarhere] - Corrected negative seeks 4101 [radarhere] - Added argument to capture all screens on Windows 3950 [nulano, radarhere] - Updated warning to specify when Image.frombuffer defaults will change 4086 [radarhere] - Changed WindowsViewer format to PNG 4080 [radarhere] - Use TIFF orientation 4063 [radarhere] - Raise the same error if a truncated image is loaded a second time 3965 [radarhere] - Lazily use ImageFileDirectory_v1 values from Exif 4031 [radarhere] - Improved HSV conversion 4004 [radarhere] - Added text stroking 3978 [radarhere, hugovk] - No more deprecated bdist_wininst .exe installers 4029 [hugovk] - Do not allow floodfill to extend into negative coordinates 4017 [radarhere] - Fixed arc drawing bug for a non-whole number of degrees 4014 [radarhere] - Fix bug when merging identical images to GIF with a list of durations 4003 [djy0, radarhere] - Fix bug in TIFF loading of BufferedReader 3998 [chadawagner] - Added fallback for finding ld on MinGW Cygwin 4019 [radarhere] - Remove indirect dependencies from requirements.txt 3976 [hugovk] - Depends: Update libwebp to 1.0.3 3983, libimagequant to 2.12.5 3993, freetype to 2.10.1 3991 [radarhere] - Change overflow check to use PY_SSIZE_T_MAX 3964 [radarhere] - Report reason for pytest skips 3942 [hugovk] ``` ### 6.1.0 ``` ------------------ - Deprecate Image.__del__ 3929 [jdufresne] - Tiff: Add support for JPEG quality 3886 [olt] - Respect the PKG_CONFIG environment variable when building 3928 [chewi] - Use explicit memcpy() to avoid unaligned memory accesses 3225 [DerDakon] - Improve encoding of TIFF tags 3861 [olt] - Update Py_UNICODE to Py_UCS4 3780 [nulano] - Consider I;16 pixel size when drawing 3899 [radarhere] - Add TIFFTAG_SAMPLEFORMAT to blocklist 3926 [cgohlke, radarhere] - Create GIF deltas from background colour of GIF frames if disposal mode is 2 3708 [sircinnamon, radarhere] - Added ImageSequence all_frames 3778 [radarhere] - Use unsigned int to store TIFF IFD offsets 3923 [cgohlke] - Include CPPFLAGS when searching for libraries 3819 [jefferyto] - Updated TIFF tile descriptors to match current decoding functionality 3795 [dmnisson] - Added an ``image.entropy()`` method (second revision) 3608 [fish2000] - Pass the correct types to PyArg_ParseTuple 3880 [QuLogic] - Fixed crash when loading non-font bytes 3912 [radarhere] - Fix SPARC memory alignment issues in Pack/Unpack functions 3858 [kulikjak] - Added CMYK;16B and CMYK;16N unpackers 3913 [radarhere] - Fixed bugs in calculating text size 3864 [radarhere] - Add __main__.py to output basic format and support information 3870 [jdufresne] - Added variation font support 3802 [radarhere] - Do not down-convert if image is LA when showing with PNG format 3869 [radarhere] - Improve handling of PSD frames 3759 [radarhere] - Improved ICO and ICNS loading 3897 [radarhere] - Changed Preview application path so that it is no longer static 3896 [radarhere] - Corrected ttb text positioning 3856 [radarhere] - Handle unexpected ICO image sizes 3836 [radarhere] - Fixed bits value for RGB;16N unpackers 3837 [kkopachev] - Travis CI: Add Fedora 30, remove Fedora 28 3821 [hugovk] - Added reading of CMYK;16L TIFF images 3817 [radarhere] - Fixed dimensions of 1-bit PDFs 3827 [radarhere] - Fixed opening mmap image through Path on Windows 3825 [radarhere] - Fixed ImageDraw arc gaps 3824 [radarhere] - Expand GIF to include frames with extents outside the image size 3822 [radarhere] - Fixed ImageTk getimage 3814 [radarhere] - Fixed bug in decoding large images 3791 [radarhere] - Fixed reading APP13 marker without Photoshop data 3771 [radarhere] - Added option to include layered windows in ImageGrab.grab on Windows 3808 [radarhere] - Detect libimagequant when installed by pacman on MingW 3812 [radarhere] - Fixed raqm layout bug 3787 [radarhere] - Fixed loading font with non-Unicode path on Windows 3785 [radarhere] - Travis CI: Upgrade PyPy from 6.0.0 to 7.1.1 3783 [hugovk, johnthagen] - Depends: Updated openjpeg to 2.3.1 3794, raqm to 0.7.0 3877, libimagequant to 2.12.3 3889 [radarhere] - Fix numpy bool bug 3790 [radarhere] ``` ### 6.0.0 ``` ------------------ - Python 2.7 support will be removed in Pillow 7.0.0 3682 [hugovk] - Add EXIF class 3625 [radarhere] - Add ImageOps exif_transpose method 3687 [radarhere] - Added warnings to deprecated CMSProfile attributes 3615 [hugovk] - Documented reading TIFF multiframe images 3720 [akuchling] - Improved speed of opening an MPO file 3658 [Glandos] - Update palette in quantize 3721 [radarhere] - Improvements to TIFF is_animated and n_frames 3714 [radarhere] - Fixed incompatible pointer type warnings 3754 [radarhere] - Improvements to PA and LA conversion and palette operations 3728 [radarhere] - Consistent DPI rounding 3709 [radarhere] - Change size of MPO image to match frame 3588 [radarhere] - Read Photoshop resolution data 3701 [radarhere] - Ensure image is mutable before saving 3724 [radarhere] - Correct remap_palette documentation 3740 [radarhere] - Promote P images to PA in putalpha 3726 [radarhere] - Allow RGB and RGBA values for new P images 3719 [radarhere] - Fixed TIFF bug when seeking backwards and then forwards 3713 [radarhere] - Cache EXIF information 3498 [Glandos] - Added transparency for all PNG greyscale modes 3744 [radarhere] - Fix deprecation warnings in Python 3.8 3749 [radarhere] - Fixed GIF bug when rewinding to a non-zero frame 3716 [radarhere] - Only close original fp in __del__ and __exit__ if original fp is exclusive 3683 [radarhere] - Fix BytesWarning in Tests/test_numpy.py 3725 [jdufresne] - Add missing MIME types and extensions 3520 [pirate486743186] - Add I;16 PNG save 3566 [radarhere] - Add support for BMP RGBA bitfield compression 3705 [radarhere] - Added ability to set language for text rendering 3693 [iwsfutcmd] - Only close exclusive fp on Image __exit__ 3698 [radarhere] - Changed EPS subprocess stdout from devnull to None 3635 [radarhere] - Add reading old-JPEG compressed TIFFs 3489 [kkopachev] - Add EXIF support for PNG 3674 [radarhere] - Add option to set dither param on quantize 3699 [glasnt] - Add reading of DDS uncompressed RGB data 3673 [radarhere] - Correct length of Tiff BYTE tags 3672 [radarhere] - Add DIB saving and loading through Image open 3691 [radarhere] - Removed deprecated VERSION 3624 [hugovk] - Fix 'BytesWarning: Comparison between bytes and string' in PdfDict 3580 [jdufresne] - Do not resize in Image.thumbnail if already the destination size 3632 [radarhere] - Replace .seek() magic numbers with io.SEEK_* constants 3572 [jdufresne] - Make ContainerIO.isatty() return a bool, not int 3568 [jdufresne] - Add support to all transpose operations for I;16 modes 3563, 3741 [radarhere] - Deprecate support for PyQt4 and PySide 3655 [hugovk, radarhere] - Add TIFF compression codecs: LZMA, Zstd, WebP 3555 [cgohlke] - Fixed pickling of iTXt class with protocol > 1 3537 [radarhere] - _util.isPath returns True for pathlib.Path objects 3616 [wbadart] - Remove unnecessary unittest.main() boilerplate from test files 3631 [jdufresne] - Exif: Seek to IFD offset 3584 [radarhere] - Deprecate PIL.*ImagePlugin.__version__ attributes 3628 [jdufresne] - Docs: Add note about ImageDraw operations that exceed image bounds 3620 [radarhere] - Allow for unknown PNG chunks after image data 3558 [radarhere] - Changed EPS subprocess stdin from devnull to None 3611 [radarhere] - Fix possible integer overflow 3609 [cgohlke] - Catch BaseException for resource cleanup handlers 3574 [jdufresne] - Improve pytest configuration to allow specific tests as CLI args 3579 [jdufresne] - Drop support for Python 3.4 3596 [hugovk] - Remove deprecated PIL.OleFileIO 3598 [hugovk] - Remove deprecated ImageOps undocumented functions 3599 [hugovk] - Depends: Update libwebp to 1.0.2 3602 [radarhere] - Detect MIME types 3525 [radarhere] ``` ### 5.4.1 ``` ------------------ - File closing: Only close __fp if not fp 3540 [radarhere] - Fix build for Termux 3529 [pslacerda] - PNG: Detect MIME types 3525 [radarhere] - PNG: Handle IDAT chunks after image end 3532 [radarhere] ``` ### 5.4.0 ``` ------------------ - Docs: Improved ImageChops documentation 3522 [radarhere] - Allow RGB and RGBA values for P image putpixel 3519 [radarhere] - Add APNG extension to PNG plugin 3501 [pirate486743186, radarhere] - Lookup ld.so.cache instead of hardcoding search paths 3245 [pslacerda] - Added custom string TIFF tags 3513 [radarhere] - Improve setup.py configuration 3395 [diorcety] - Read textual chunks located after IDAT chunks for PNG 3506 [radarhere] - Performance: Don't try to hash value if enum is empty 3503 [Glandos] - Added custom int and float TIFF tags 3350 [radarhere] - Fixes for issues reported by static code analysis 3393 [frenzymadness] - GIF: Wait until mode is normalized to copy im.info into encoderinfo 3187 [radarhere] - Docs: Add page of deprecations and removals 3486 [hugovk] - Travis CI: Upgrade PyPy from 5.8.0 to 6.0 3488 [hugovk] - Travis CI: Allow lint job to fail 3467 [hugovk] - Resolve __fp when closing and deleting 3261 [radarhere] - Close exclusive fp before discarding 3461 [radarhere] - Updated open files documentation 3490 [radarhere] - Added libjpeg_turbo to check_feature 3493 [radarhere] - Change color table index background to tuple when saving as WebP 3471 [radarhere] - Allow arbitrary number of comment extension subblocks 3479 [radarhere] - Ensure previous FLI frame is loaded before seeking to the next 3478 [radarhere] - ImageShow improvements 3450 [radarhere] - Depends: Update libimagequant to 2.12.2 3442, libtiff to 4.0.10 3458, libwebp to 1.0.1 3468, Tk Tcl to 8.6.9 3465 [radarhere] - Check quality_layers type 3464 [radarhere] - Add context manager, __del__ and close methods to TarIO 3455 [radarhere] - Test: Do not play sound when running screencapture command 3454 [radarhere] - Close exclusive fp on open exception 3456 [radarhere] - Only close existing fp in WebP if fp is exclusive 3418 [radarhere] - Docs: Re-add the downloads badge 3443 [hugovk] - Added negative index to PixelAccess 3406 [Nazime] - Change tuple background to global color table index when saving as GIF 3385 [radarhere] - Test: Improved ImageGrab tests 3424 [radarhere] - Flake8 fixes 3422, 3440 [radarhere, hugovk] - Only ask for YCbCr->RGB libtiff conversion for jpeg-compressed tiffs 3417 [kkopachev] - Optimise ImageOps.fit by combining resize and crop 3409 [homm] ``` ### 5.3.0 ``` ------------------ - Changed Image size property to be read-only by default 3203 [radarhere] - Add warnings if image file identification fails due to lack of WebP support 3169 [radarhere, hugovk] - Hide the Ghostscript progress dialog popup on Windows 3378 [hugovk] - Adding support to reading tiled and YcbCr jpeg tiffs through libtiff 3227 [kkopachev] - Fixed None as TIFF compression argument 3310 [radarhere] - Changed GIF seek to remove previous info items 3324 [radarhere] - Improved PDF document info 3274 [radarhere] - Add line width parameter to rectangle and ellipse-based shapes 3094 [hugovk, radarhere] - Fixed decompression bomb check in _crop 3313 [dinkolubina, hugovk] - Added support to ImageDraw.floodfill for non-RGB colors 3377 [radarhere] - Tests: Avoid catching unexpected exceptions in tests 2203 [jdufresne] - Use TextIOWrapper.detach() instead of NoCloseStream 2214 [jdufresne] - Added transparency to matrix conversion 3205 [radarhere] - Added ImageOps pad method 3364 [radarhere] - Give correct extrema for I;16 format images 3359 [bz2] - Added PySide2 3279 [radarhere] - Corrected TIFF tags 3369 [radarhere] - CI: Install CFFI and pycparser without any PYTHONOPTIMIZE 3374 [hugovk] - Read/Save RGB webp as RGB (instead of RGBX) 3298 [kkopachev] - ImageDraw: Add line joints 3250 [radarhere] - Improved performance of ImageDraw floodfill method 3294 [yo1995] - Fix builds with --parallel 3272 [hsoft] - Add more raw Tiff modes (RGBaX, RGBaXX, RGBAX, RGBAXX) 3335 [homm] - Close existing WebP fp before setting new fp 3341 [radarhere] - Add orientation, compression and id_section as TGA save keyword arguments 3327 [radarhere] - Convert int values of RATIONAL TIFF tags to floats 3338 [radarhere, wiredfool] - Fix code for PYTHONOPTIMIZE 3233 [hugovk] - Changed ImageFilter.Kernel to subclass ImageFilter.BuiltinFilter, instead of the other way around 3273 [radarhere] - Remove unused draw.draw_line, draw.draw_point and font.getabc methods 3232 [hugovk] - Tests: Added ImageFilter tests 3295 [radarhere] - Tests: Added ImageChops tests 3230 [hugovk, radarhere] - AppVeyor: Download lib if not present in pillow-depends 3316 [radarhere] - Travis CI: Add Python 3.7 and Xenial 3234 [hugovk] - Docs: Added documentation for NumPy conversion 3301 [radarhere] - Depends: Update libimagequant to 2.12.1 3281 [radarhere] - Add three-color support to ImageOps.colorize 3242 [tsennott] - Tests: Add LA to TGA test modes 3222 [danpla] - Skip outline if the draw operation fills with the same colour 2922 [radarhere] - Flake8 fixes 3173, 3380 [radarhere] - Avoid deprecated 'U' mode when opening files 2187 [jdufresne] ``` ### 5.2.0 ``` ------------------ - Fixed saving a multiframe image as a single frame PDF 3137 [radarhere] - If a Qt version is already imported, attempt to use it first 3143 [radarhere] - Fix transform fill color for alpha images 3147 [fozcode] - TGA: Add support for writing RLE data 3186 [danpla] - TGA: Read and write LA data 3178 [danpla] - QuantOctree.c: Remove erroneous attempt to average over an empty range 3196 [tkoeppe] - Changed ICNS format tests to pass on OS X 10.11 3202 [radarhere] - Fixed bug in ImageDraw.multiline_textsize() 3114 [tianyu139] - Added getsize_multiline support for PIL.ImageFont 3113 [tianyu139] - Added ImageFile get_format_mimetype method 3190 [radarhere] - Changed mmap file pointer to use context manager 3216 [radarhere] - Changed ellipse point calculations to be more evenly distributed 3142 [radarhere] - Only extract first Exif segment 2946 [hugovk] - Tests: Test ImageDraw2, WalImageFile 3135, 2989 [hugovk] - Remove unnecessary 'if 0' code 3075 [hugovk] - Tests: Added GD tests 1817 [radarhere] - Fix collections ABCs DeprecationWarning in Python 3.7 3123 [hugovk] - unpack_from is faster than unpack of slice 3201 [landfillbaby] - Docs: Add coordinate system links and file handling links in documentation 3204, 3214 [radarhere] - Tests: TestFilePng: Fix test_save_l_transparency() 3182 [danpla] - Docs: Correct argument name 3171 [radarhere] - Docs: Update CMake download URL 3166 [radarhere] - Docs: Improve Image.transform documentation 3164 [radarhere] - Fix transform fillcolor argument when image mode is RGBA or LA 3163 [radarhere] - Tests: More specific Exception testing 3158 [radarhere] - Add getrgb HSB/HSV color strings 3148 [radarhere] - Allow float values in getrgb HSL color string 3146 [radarhere] - AppVeyor: Upgrade to Python 2.7.15 and 3.4.4 3140 [radarhere] - AppVeyor: Upgrade to PyPy 6.0.0 3133 [hugovk] - Deprecate PILLOW_VERSION and VERSION 3090 [hugovk] - Support Python 3.7 3076 [hugovk] - Depends: Update freetype to 2.9.1, libjpeg to 9c, libwebp to 1.0.0 3121, 3136, 3108 [radarhere] - Build macOS wheels with Xcode 6.4, supporting older macOS versions 3068 [wiredfool] - Fix _i2f compilation on some GCC versions 3067 [homm] - Changed encoderinfo to have priority over info when saving GIF images 3086 [radarhere] - Rename PIL.version to PIL._version and remove it from module 3083 [homm] - Enable background colour parameter on rotate 3057 [storesource] - Remove unnecessary ``if 1`` directive 3072 [jdufresne] - Remove unused Python class, Path 3070 [jdufresne] - Fix dereferencing type-punned pointer will break strict-aliasing 3069 [jdufresne] ``` ### 5.1.0 ``` ------------------ - Close fp before return in ImagingSavePPM 3061 [kathryndavies] - Added documentation for ICNS append_images 3051 [radarhere] - Docs: Move intro text below its header 3021 [hugovk] - CI: Rename appveyor.yml as .appveyor.yml 2978 [hugovk] - Fix TypeError for JPEG2000 parser feed 3042 [hugovk] - Certain corrupted jpegs can result in no data read 3023 [kkopachev] - Add support for BLP file format 3007 [jleclanche] - Simplify version checks 2998 [hugovk] - Fix "invalid escape sequence" warning on Python 3.6+ 2996 [timgraham] - Allow append_images to set .icns scaled images 3005 [radarhere] - Support appending to existing PDFs 2965 [vashek] - Fix and improve efficient saving of ICNS on macOS 3004 [radarhere] - Build: Enable pip cache in AppVeyor build 3009 [thijstriemstra] - Trim trailing whitespace 2985 [Metallicow] - Docs: Correct reference to Image.new method 3000 [radarhere] - Rearrange ImageFilter classes into alphabetical order 2990 [radarhere] - Test: Remove duplicate line 2983 [radarhere] - Build: Update AppVeyor PyPy version 3003 [radarhere] - Tiff: Open 8 bit Tiffs with 5 or 6 channels, discarding extra channels 2938 [homm] - Readme: Added Twitter badge 2930 [hugovk] - Removed __main__ code from ImageCms 2942 [radarhere] - Test: Changed assert statements to unittest calls 2961 [radarhere] - Depends: Update libimagequant to 2.11.10, raqm to 0.5.0, freetype to 2.9 3036, 3017, 2957 [radarhere] - Remove _imaging.crc32 in favor of builtin Python crc32 implementation 2935 [wiredfool] - Move Tk directory to src directory 2928 [hugovk] - Enable pip cache in Travis CI 2933 [jdufresne] - Remove unused and duplicate imports 2927 [radarhere] - Docs: Changed documentation references to 2.x to 2.7 2921 [radarhere] - Fix memory leak when opening webp files 2974 [wiredfool] - Setup: Fix "TypeError: 'NoneType' object is not iterable" for PPC and CRUX 2951 [hugovk] - Setup: Add libdirs for ppc64le and armv7l 2968 [nehaljwani] ``` ### 5.0.0 ``` ------------------ - Docs: Added docstrings from documentation 2914 [radarhere] - Test: Switch from nose to pytest 2815 [hugovk] - Rework Source directory layout, preventing accidental import of PIL. 2911 [wiredfool] - Dynamically link libraqm 2753 [wiredfool] - Removed scripts directory 2901 [wiredfool] - TIFF: Run all compressed tiffs through libtiff decoder 2899 [wiredfool] - GIF: Add disposal option when saving GIFs 2902 [linnil1, wiredfool] - EPS: Allow for an empty line in EPS header data 2903 [radarhere] - PNG: Add support for sRGB and cHRM chunks, permit sRGB when no iCCP chunk present 2898 [wiredfool] - Dependencies: Update Tk Tcl to 8.6.8 2905 [radarhere] - Decompression bomb error now raised for images 2x larger than a decompression bomb warning 2583 [wiredfool] - Test: avoid random failure in test_effect_noise 2894 [hugovk] - Increased epsilon for test_file_eps.py:test_showpage due to Arch update. 2896 [wiredfool] - Removed check parameter from _save in BmpImagePlugin, PngImagePlugin, ImImagePlugin, PalmImagePlugin, and PcxImagePlugin. 2873 [radarhere] - Make PngImagePlugin.add_text() zip argument type bool 2890 [jdufresne] - Depends: Updated libwebp to 0.6.1 2880 [radarhere] - Remove unnecessary bool() calls in Image.registered_extensions and skipKnownBadTests 2891 [jdufresne] - Fix count of BITSPERSAMPLE items in broken TIFF files 2883 [homm] - Fillcolor parameter for Image.Transform 2852 [wiredfool] - Test: Display differences for test failures 2862 [wiredfool] - Added executable flag to file with shebang line 2884 [radarhere] - Setup: Specify compatible Python versions for pip 2877 [hugovk] - Dependencies: Updated libimagequant to 2.11.4 2878 [radarhere] - Setup: Warn if trying to install for Py3.7 on Windows 2855 [hugovk] - Doc: Fonts can be loaded from a file-like object, not just filename 2861 [robin-norwood] - Add eog support for Ubuntu Image Viewer 2864 [NafisFaysal] - Test: Test on 3.7-dev on Travis CI 2870 [hugovk] - Dependencies: Update libtiff to 4.0.9 2871 [radarhere] - Setup: Replace deprecated platform.dist with file existence check 2869 [wiredfool] - Build: Fix setup.py on Debian 2853 [wiredfool] - Docs: Correct error in ImageDraw documentation 2858 [meribold] - Test: Drop Ubuntu Precise, Fedora 24, Fedora 25, add Fedora 27, Centos 7, Amazon v2 CI Support 2854, 2843, 2895, 2897 [wiredfool] - Dependencies: Updated libimagequant to 2.11.3 2849 [radarhere] - Test: Fix test_image.py to use tempfile 2841 [radarhere] - Replace PIL.OleFileIO deprecation warning with descriptive ImportError 2833 [hugovk] - WebP: Add support for animated WebP files 2761 [jd20] - PDF: Set encoderinfo for images when saving multi-page PDF. Fixes 2804. 2805 [ixio] - Allow the olefile dependency to be optional 2789 [jdufresne] - GIF: Permit LZW code lengths up to 12 bits in GIF decode 2813 [wiredfool] - Fix unterminated string and unchecked exception in _font_text_asBytes. 2825 [wiredfool] - PPM: Use fixed list of whitespace, rather relying on locale, fixes 272. 2831 [markmiscavage] - Added support for generators when using append_images 2829, 2835 [radarhere] - Doc: Correct PixelAccess.rst 2824 [hasahmed] - Depends: Update raqm to 0.3.0 2822 [radarhere] - Docs: Link to maintained version of aggdraw 2809 [hugovk] - Include license file in the generated wheel packages 2801 [jdufresne] - Depends: Update openjpeg to 2.3.0 2791 [radarhere] - Add option to Makefile to build and install with C coverage 2781 [hugovk] - Add context manager support to ImageFile.Parser and PngImagePlugin.ChunkStream 2793 [radarhere] - ImageDraw.textsize: fix zero length error 2788 [wiredfool, hugovk] ``` ### 4.3.0 ``` ------------------ - Fix warning on pointer cast in isblock 2775, 2778 [cgohlke] - Doc: Added macOS High Sierra tested Pillow version 2777 [radarhere] - Use correct Windows handle type on 64 bit in imagingcms 2774 [cgohlke] - 64 Bit Windows fix for block storage 2773 [cgohlke] - Fix "expression result unused" warning 2764 [radarhere] - Add 16bit Read/Write and RLE read support to SgiImageFile 2769 [jbltx, wiredfool] - Block & array hybrid storage 2738 [homm] - Common seek frame position check 1849 [radarhere] - Doc: Add note about aspect ratio to Image thumbnail script 2281 [wilsonge] - Fix ValueError: invalid version number '1.0.0rc1' in scipy release candidate 2771 [cgohlke] - Unfreeze requirements.txt 2766 [hugovk] - Test: ResourceWarning tests 2756 [hugovk] - Use n_frames to determine is_animated if possible 2315 [radarhere] - Doc: Corrected parameters in documentation 2768 [radarhere] - Avoid unnecessary Image operations 1891 [radarhere] - Added register_extensions method 1860 [radarhere] - Fix TIFF support for I;16S, I;16BS, and I;32BS rawmodes 2748 [wiredfool] - Fixed doc syntax in ImageDraw 2752 [radarhere] - Fixed support for building on Windows/msys2. Added Appveyor CI coverage for python3 on msys2 2746 [wiredfool] - Fix ValueError in Exif/Tiff IFD 2719 [wiredfool] - Use pathlib2 for Path objects on Python < 3.4 2291 [asergi] - Export only required properties in unsafe_ptrs 2740 [homm] - Alpha composite fixes 2709 [homm] - Faster Transpose operations, added 'Transverse' option 2730 [homm] - Deprecate ImageOps undocumented functions gaussian_blur, gblur, unsharp_mask, usm and box_blur in favor of ImageFilter implementations 2735 [homm] - Dependencies: Updated freetype to 2.8.1 2741 [radarhere] - Bug: Player skipped first image 2742 [radarhere] - Faster filter operations for Kernel, Gaussian, and Unsharp Mask filters 2679 [homm] - EPS: Add showpage to force rendering of some EPS images 2636 [kaplun] - DOC: Fix type of palette parameter in Image.quantize. 2703 [kkopachev] - DOC: Fix Ico docs to match code 2712 [hugovk] - Added file pointer save to SpiderImagePlugin 2647 [radarhere] - Add targa version 2 footer 2713 [jhultgre] - Removed redundant lines 2714 [radarhere] - Travis CI: Use default pypy/pypy3 2721 [hugovk] - Fix for SystemError when rendering an empty string, added in 4.2.0 2706 [wiredfool] - Fix for memory leaks in font handling added in 4.2.0 2634 [wiredfool] - Tests: cleanup, more tests. Fixed WMF save handler 2689 [radarhere] - Removed debugging interface for Image.core.grabclipboard 2708 [radarhere] - Doc syntax fix 2710 [radarhere] - Faster packing and unpacking for RGB, LA, and related storage modes 2693 [homm] - Use RGBX rawmode for RGB JPEG images where possible 1989 [homm] - Remove palettes from non-palette modes in _new 2704 [wiredfool] - Delete transparency info when convert'ing RGB/L to RGBA 2633 [olt] - Code tweaks to ease type annotations 2687 [neiljp] - Fixed incorrect use of 's' to byteslike object 2691 [wiredfool] - Fix JPEG subsampling labels for subsampling=2 2698 [homm] - Region of interest (box) for resampling 2254 [homm] - Basic support for Termux (android) in setup.py 2684 [wiredfool] - Bug: Fix Image.fromarray for numpy.bool type. 2683 [wiredfool] - CI: Add Fedora 24 and 26 to Docker tests [wiredfool] - JPEG: Fix ZeroDivisionError when EXIF contains invalid DPI (0/0). 2667 [vytisb] - Depends: Updated openjpeg to 2.2.0 2669 [radarhere] - Depends: Updated Tk Tcl to 8.6.7 2668 [radarhere] - Depends: Updated libimagequant to 2.10.2 2660 [radarhere] - Test: Added test for ImImagePlugin tell() 2675 [radarhere] - Test: Additional tests for SGIImagePlugin 2659 [radarhere] - New Image.getchannel method 2661 [homm] - Remove unused im.copy2 and core.copy methods 2657 [homm] - Fast Image.merge() 2677 [homm] - Fast Image.split() 2676 [homm] - Fast image allocation 2655 [homm] - Storage cleanup 2654 [homm] - FLI: Use frame count from FLI header 2674 [radarhere] - Test: Test animated FLI file 2650 [hugovk] - Bug: Fixed uninitialized memory in bc5 decoding 2648 [ifeherva] - Moved SgiImagePlugin save error to before the start of write operations 2646 [radarhere] - Move createfontdatachunk.py so isn't installed globally 2645 [hugovk] - Bug: Fix unexpected keyword argument 'align' 2641 [hugovk] - Add newlines to error message for clarity 2640 [hugovk] - Docs: Updated redirected URL 2637 [radarhere] - Bug: Fix JPEG DPI when EXIF is invalid 2632 [wiredfool] - Bug: Fix for font getsize on empty string 2624 [radarhere] - Docs: Improved ImageDraw documentation 2626 [radarhere] - Docs: Corrected alpha_composite args documentation 2627 [radarhere] - Docs: added the description of the filename attribute to images.rst 2621 [dasdachs] - Dependencies: Updated libimagequant to 2.10.1 2616 [radarhere] - PDF: Renamed parameter to not shadow built-in dict 2612 [kijeong] ``` ### 4.2.1 ``` ------------------ - CI: Fix version specification and test on CI for PyPy/Windows 2608 [wiredfool] ``` ### 4.2.0 ``` ------------------ - Doc: Clarified Image.save:append_images documentation 2604 [radarhere] - CI: Amazon Linux and Centos6 docker images added to Travis CI 2585 [wiredfool] - Image.alpha_composite added 2595 [wiredfool] - Complex Text Support 2576 [ShamsaHamed, Fahad-Alsaidi, wiredfool] - Added threshold parameter to ImageDraw.floodfill 2599 [nediamond] - Added dBATCH parameter to ghostscript command 2588 [radarhere] - JPEG: Adjust buffer size when icc_profile > MAXBLOCK 2596 [Darou] - Specify Pillow Version in one place 2517 [wiredfool] - CI: Change the owner of the TRAVIS_BUILD_DIR, fixing broken docker runs 2587 [wiredfool] - Fix truncated PNG loading for some images, Fix memory leak on truncated PNG images. 2541, 2598 [homm] - Add decompression bomb check to Image.crop 2410 [wiredfool] - ImageFile: Ensure that the ``err_code`` variable is initialized in case of exception. 2363 [alexkiro] - Tiff: Support append_images for saving multipage TIFFs 2406 [blochl] - Doc: Clarify that draft is only implemented for JPEG and PCD 2409 [wiredfool] - Test: MicImagePlugin 2447 [hugovk] - Use round() instead of floor() to eliminate zero coefficients in resample 2558 [homm] - Remove deprecated code 2549 [hugovk] - Added append_images to PDF saving 2526 [radarhere] - Remove unused function core image function new_array 2548 [hugovk] - Remove unnecessary calls to dict.keys() 2551 [jdufresne] - Add more ImageDraw.py tests and remove unused Draw.c code 2533 [hugovk] - Test: More tests for ImageMorph 2554 [hugovk] - Test: McIDAS area file 2552 [radarhere] - Update Feature Detection 2520 [wiredfool] - CI: Update pypy on Travis CI 2573 [hugovk] - ImageMorph: Fix wrong expected size of MRLs read from disk 2561 [dov] - Docs: Update install docs for FreeBSD 2546 [wiredfool] - Build: Ignore OpenJpeg 1.5 on FreeBSD 2544 [melvyn-sopacua] - Remove 'not yet implemented' methods from PIL 1.1.4 2538 [hugovk] - Dependencies: Update FreeType to 2.8, LibTIFF to 4.0.8 and libimagequant to 2.9.1 2535 2537 2540 [radarhere] - Raise TypeError and not also UnboundLocalError in ImageFile.Parser() 2525 [joshblum] - Test: Use Codecov for coverage 2528 [hugovk] - Use PNG for Image.show() 2527 [HinTak, wiredfool] - Remove WITH_DEBUG compilation flag 2522 [wiredfool] - Fix return value on parameter parse error in _webp.c 2521 [adw1n] - Set executable flag on scripts with shebang line 2295 [radarhere] - Flake8 2460 [radarhere] - Doc: Release Process Changes 2516 [wiredfool] - CI: Added region for s3 deployment on appveyor 2515 [wiredfool] - Doc: Updated references to point to existing files 2507 [radarhere] - Return copy on Image crop if crop dimensions match the image 2471 [radarhere] - Test: Optimize CI speed 2464, 2466 [hugovk] ``` ### 4.1.1 ``` ------------------ - Undef PySlice_GetIndicesEx, see https://bugs.python.org/issue29943 2493 [cgohlke] - Fix for file with DPI in EXIF but not metadata, and XResolution is an int rather than tuple 2484 [hugovk] - Docs: Removed broken download counter badge 2487 [hugovk] - Docs: Fixed rst syntax error 2477 [thebjorn] ``` ### 4.1.0 ``` ------------------ - Close files after loading if possible 2330 [homm, wiredfool] - Fix Image Access to be reloadable when embedding the Python interpreter 2296 [wiredfool, cgohlke] - Fetch DPI from EXIF if not specified in JPEG header 2449, 2472 [hugovk] - Removed winbuild checksum verification 2468 [radarhere] - Git: Set ContainerIO test file as binary 2469 [cgohlke] - Remove superfluous import of FixTk 2455 [cgohlke) - Fix import of tkinter/Tkinter 2456 [cgohlke) - Pure Python Decoders, including Python decoder to fix for MSP images 1938 [wiredfool, hugovk] - Reorganized GifImagePlugin, fixes 2314. 2374 [radarhere, wiredfool] - Doc: Reordered operating systems in Compatibility Matrix 2436 [radarhere] - Test: Additional tests for BufrStub, Eps, Container, GribStub, IPTC, Wmf, XVThumb, ImageDraw, ImageMorph, ImageShow 2425 [radarhere] - Health fixes 2437 [radarhere] - Test: Correctness tests ContainerIO, XVThumbImagePlugin, BufrStubImagePlugin, GribStubImagePlugin, FitsStubImagePlugin, Hdf5StubImagePlugin, PixarImageFile, PsdImageFile 2443, 2442, 2441, 2440, 2431, 2430, 2428, 2427 [hugovk] - Remove unused imports 1822 [radarhere] - Replaced KeyError catch with dictionary get method 2424 [radarhere] - Test: Removed unrunnable code in test_image_toqimage 2415 [hugovk] - Removed use of spaces in TIFF kwargs names, deprecated in 2.7 1390 [radarhere] - Removed deprecated ImageDraw setink, setfill, setfont methods 2220 [jdufresne] - Send unwanted subprocess output to /dev/null 2253 [jdufresne] - Fix division by zero when creating 0x0 image from numpy array 2419 [hugovk] - Test: Added matrix convert tests 2381 [hugovk] - Replaced broken URL to partners.adobe.com 2413 [radarhere] - Removed unused private functions in setup.py and build_dep.py 2414 [radarhere] - Test: Fixed Qt tests for QT5 and saving 1 bit PNG 2394 [wiredfool] - Test: docker builds for Arch and Debian Stretch 2394 [wiredfool] - Updated libwebp to 0.6.0 on appveyor 2395 [radarhere] - More explicit error message when saving to a file with invalid extension 2399 [ces42] - Docs: Update some http urls to https 2403 [hugovk] - Preserve aux/alpha channels when performing Imagecms transforms 2355 [gunjambi] - Test linear and radial gradient effects 2382 [hugovk] - Test ImageDraw.Outline and and ImageDraw.Shape 2389 [hugovk] - Added PySide to ImageQt documentation 2392 [radarhere] - BUG: Empty image mode no longer causes a crash 2380 [evalapply] - Exclude .travis and contents from manifest 2386 [radarhere] - Remove 'MIT-like' from license 2145 [wiredfool] - Tests: Add tests for several Image operations 2379 [radarhere] - PNG: Moved iCCP chunk before PLTE chunk when saving as PNG, restricted chunks known value/ordering 2347 [radarhere] - Default to inch-interpretation for missing ResolutionUnit in TiffImagePlugin 2365 [lambdafu] - Bug: Fixed segfault when using ImagingTk on pypy Issue 2376, 2359. [wiredfool] - Bug: Fixed Integer overflow using ImagingTk on 32 bit platforms 2359 [wiredfool, QuLogic] - Tests: Added docker images for testing alternate platforms. See also https://github.com/python-pillow/docker-images. 2368 [wiredfool] - Removed PIL 1.0 era TK readme that concerns Windows 95/NT 2360 [wiredfool] - Prevent ``nose -v`` printing docstrings 2369 [hugovk] - Replaced absolute PIL imports with relative imports 2349 [radarhere] - Added context managers for file handling 2307 [radarhere] - Expose registered file extensions in Image 2343 [iggomez, radarhere] - Make mode descriptor cache initialization thread-safe. 2351 [gunjambi] - Updated Windows test dependencies: Freetype 2.7.1, zlib 1.2.11 2331, 2332, 2357 [radarhere] - Followed upstream pngquant packaging reorg to libimagquant 2354 [radarhere] - Fix invalid string escapes 2352 [hugovk] - Add test for crop operation with no argument 2333 [radarhere] ``` ### 4.0.0 ``` ------------------ - 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] ``` ### 3.4.2 ``` ------------------ - Fix Resample coefficient calculation 2162 [homm] ``` ### 3.4.1 ``` ------------------ - Allow lists as arguments for Image.new() 2149 [homm] - Fix fix for map.c overflow 2151 (also in 3.3.3) [wiredfool] ``` ### 3.4.0 ``` ------------------ - 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] ``` ### 3.3.3 ``` ------------------ - Fix fix for map.c overflow 2151 [wiredfool] ``` ### 3.3.2 ``` ------------------ - Fix negative image sizes in Storage.c 2146 [wiredfool] - Fix integer overflow in map.c 2146 [wiredfool] ``` ### 3.3.1 ``` ------------------ - Fix C90 compilation error for Tcl / Tk rewrite 2033 [matthew-brett] - Fix image loading when rotating by 0 deg 2052 [homm] ``` ### 3.3.0 ``` ------------------ - 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] ``` ### 3.2.0 ``` ------------------ - 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] ``` ### 3.1.2 ``` ------------------ - Fixed an integer overflow in Jpeg2KEncode.c causing a buffer overflow. CVE-2016-3076 [wiredfool] ``` ### 3.1.1 ``` ------------------ - 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] ``` ### 3.1.0 ``` ------------------ - 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 [matti