scieloorg / opac

SciELO - On-line Public Access Catalog - OPAC
BSD 2-Clause "Simplified" License
9 stars 22 forks source link

Pin pillow to latest version 10.4.0 #3034

Open pyup-bot opened 2 weeks ago

pyup-bot commented 2 weeks ago

This PR pins Pillow to the latest release 10.4.0.

Changelog ### 10.4.0 ``` ------------------- - Raise FileNotFoundError if show_file() path does not exist 8178 [radarhere] - Improved reading 16-bit TGA images with colour 7965 [Yay295, radarhere] - Deprecate non-image ImageCms modes 8031 [radarhere] - Fixed processing multiple JPEG EXIF markers 8127 [radarhere] - Do not preserve EXIFIFD tag by default when saving TIFF images 8110 [radarhere] - Added ImageFont.load_default_imagefont() 8086 [radarhere] - Added Image.WARN_POSSIBLE_FORMATS 8063 [radarhere] - Remove zero-byte end padding when parsing any XMP data 8171 [radarhere] - Do not detect Ultra HDR images as MPO 8056 [radarhere] - Raise SyntaxError specific to JP2 8146 [Yay295, radarhere] - Do not use first frame duration for other frames when saving APNG images 8104 [radarhere] - Consider I;16 pixel size when using a 1 mode mask 8112 [radarhere] - When saving multiple PNG frames, convert to mode rather than raw mode 8087 [radarhere] - Added byte support to FreeTypeFont 8141 [radarhere] - Allow float center for rotate operations 8114 [radarhere] - Do not read layers immediately when opening PSD images 8039 [radarhere] - Restore original thread state 8065 [radarhere] - Read IM and TIFF images as RGB, rather than RGBX 7997 [radarhere] - Only preserve TIFF IPTC_NAA_CHUNK tag if type is BYTE or UNDEFINED 7948 [radarhere] - Clarify ImageDraw2 error message when size is missing 8165 [radarhere] - Support unpacking more rawmodes to RGBA palettes 7966 [radarhere] - Removed support for Qt 5 8159 [radarhere] - Improve ``ImageFont.freetype`` support for XDG directories on Linux 8135 [mamg22, radarhere] - Improved consistency of XMP handling 8069 [radarhere] - Use pkg-config to help find libwebp and raqm 8142 [radarhere] - Accept 't' suffix for libtiff version 8126, 8129 [radarhere] - Deprecate ImageDraw.getdraw hints parameter 8124 [radarhere, hugovk] - Added ImageDraw circle() 8085 [void4, hugovk, radarhere] - Add mypy target to Makefile 8077 [Yay295] - Added more modes to Image.MODES 7984 [radarhere] - Deprecate BGR;15, BGR;16 and BGR;24 modes 7978 [radarhere, hugovk] - Fix ImagingAccess for I;16N on big-endian 7921 [Yay295, radarhere] - Support reading P mode TIFF images with padding 7996 [radarhere] - Deprecate support for libtiff < 4 7998 [radarhere, hugovk] - Corrected ImageShow UnixViewer command 7987 [radarhere] - Use functools.cached_property in ImageStat 7952 [nulano, hugovk, radarhere] - Add support for reading BITMAPV2INFOHEADER and BITMAPV3INFOHEADER 7956 [Cirras, radarhere] - Support reading CMYK JPEG2000 images 7947 [radarhere] ``` ### 10.3.0 ``` ------------------- - CVE-2024-28219: Use ``strncpy`` to avoid buffer overflow 7928 [radarhere, hugovk] - Deprecate ``eval()``, replacing it with ``lambda_eval()`` and ``unsafe_eval()`` 7927 [radarhere, hugovk] - Raise ``ValueError`` if seeking to greater than offset-sized integer in TIFF 7883 [radarhere] - Add ``--report`` argument to ``__main__.py`` to omit supported formats 7818 [nulano, radarhere, hugovk] - Added RGB to I;16, I;16L, I;16B and I;16N conversion 7918, 7920 [radarhere] - Fix editable installation with custom build backend and configuration options 7658 [nulano, radarhere] - Fix putdata() for I;16N on big-endian 7209 [Yay295, hugovk, radarhere] - Determine MPO size from markers, not EXIF data 7884 [radarhere] - Improved conversion from RGB to RGBa, LA and La 7888 [radarhere] - Support FITS images with GZIP_1 compression 7894 [radarhere] - Use I;16 mode for 9-bit JPEG 2000 images 7900 [scaramallion, radarhere] - Raise ValueError if kmeans is negative 7891 [radarhere] - Remove TIFF tag OSUBFILETYPE when saving using libtiff 7893 [radarhere] - Raise ValueError for negative values when loading P1-P3 PPM images 7882 [radarhere] - Added reading of JPEG2000 palettes 7870 [radarhere] - Added alpha_quality argument when saving WebP images 7872 [radarhere] - Fixed joined corners for ImageDraw rounded_rectangle() non-integer dimensions 7881 [radarhere] - Stop reading EPS image at EOF marker 7753 [radarhere] - PSD layer co-ordinates may be negative 7706 [radarhere] - Use subprocess with CREATE_NO_WINDOW flag in ImageShow WindowsViewer 7791 [radarhere] - When saving GIF frame that restores to background color, do not fill identical pixels 7788 [radarhere] - Fixed reading PNG iCCP compression method 7823 [radarhere] - Allow writing IFDRational to UNDEFINED tag 7840 [radarhere] - Fix logged tag name when loading Exif data 7842 [radarhere] - Use maximum frame size in IHDR chunk when saving APNG images 7821 [radarhere] - Prevent opening P TGA images without a palette 7797 [radarhere] - Use palette when loading ICO images 7798 [radarhere] - Use consistent arguments for load_read and load_seek 7713 [radarhere] - Turn off nullability warnings for macOS SDK 7827 [radarhere] - Fix shift-sign issue in Convert.c 7838 [r-barnes, radarhere] - Open 16-bit grayscale PNGs as I;16 7849 [radarhere] - Handle truncated chunks at the end of PNG images 7709 [lajiyuan, radarhere] - Match mask size to pasted image size in GifImagePlugin 7779 [radarhere] - Release GIL while calling ``WebPAnimDecoderGetNext`` 7782 [evanmiller, radarhere] - Fixed reading FLI/FLC images with a prefix chunk 7804 [twolife] - Update wl-paste handling and return None for some errors in grabclipboard() on Linux 7745 [nik012003, radarhere] - Remove execute bit from ``setup.py`` 7760 [hugovk] - Do not support using test-image-results to upload images after test failures 7739 [radarhere] - Changed ImageMath.ops to be static 7721 [radarhere] - Fix APNG info after seeking backwards more than twice 7701 [esoma, radarhere] - Deprecate ImageCms constants and versions() function 7702 [nulano, radarhere] - Added PerspectiveTransform 7699 [radarhere] - Add support for reading and writing grayscale PFM images 7696 [nulano, hugovk] - Add LCMS2 flags to ImageCms 7676 [nulano, radarhere, hugovk] - Rename x64 to AMD64 in winbuild 7693 [nulano] ``` ### 10.2.0 ``` ------------------- - Add ``keep_rgb`` option when saving JPEG to prevent conversion of RGB colorspace 7553 [bgilbert, radarhere] - Trim glyph size in ImageFont.getmask() 7669, 7672 [radarhere, nulano] - Deprecate IptcImagePlugin helpers 7664 [nulano, hugovk, radarhere] - Allow uncompressed TIFF images to be saved in chunks 7650 [radarhere] - Concatenate multiple JPEG EXIF markers 7496 [radarhere] - Changed IPTC tile tuple to match other plugins 7661 [radarhere] - Do not assign new fp attribute when exiting context manager 7566 [radarhere] - Support arbitrary masks for uncompressed RGB DDS images 7589 [radarhere, akx] - Support setting ROWSPERSTRIP tag 7654 [radarhere] - Apply ImageFont.MAX_STRING_LENGTH to ImageFont.getmask() 7662 [radarhere] - Optimise ``ImageColor`` using ``functools.lru_cache`` 7657 [hugovk] - Restricted environment keys for ImageMath.eval() 7655 [wiredfool, radarhere] - Optimise ``ImageMode.getmode`` using ``functools.lru_cache`` 7641 [hugovk, radarhere] - Fix incorrect color blending for overlapping glyphs 7497 [ZachNagengast, nulano, radarhere] - Attempt memory mapping when tile args is a string 7565 [radarhere] - Fill identical pixels with transparency in subsequent frames when saving GIF 7568 [radarhere] - Corrected duration when combining multiple GIF frames into single frame 7521 [radarhere] - Handle disposing GIF background from outside palette 7515 [radarhere] - Seek past the data when skipping a PSD layer 7483 [radarhere] - Import plugins relative to the module 7576 [deliangyang, jaxx0n] - Translate encoder error codes to strings; deprecate ``ImageFile.raise_oserror()`` 7609 [bgilbert, radarhere] - Support reading BC4U and DX10 BC1 images 6486 [REDxEYE, radarhere, hugovk] - Optimize ImageStat.Stat.extrema 7593 [florath, radarhere] - Handle pathlib.Path in FreeTypeFont 7578 [radarhere, hugovk, nulano] - Added support for reading DX10 BC4 DDS images 7603 [sambvfx, radarhere] - Optimized ImageStat.Stat.count 7599 [florath] - Correct PDF palette size when saving 7555 [radarhere] - Fixed closing file pointer with olefile 0.47 7594 [radarhere] - Raise ValueError when TrueType font size is not greater than zero 7584, 7587 [akx, radarhere] - If absent, do not try to close fp when closing image 7557 [RaphaelVRossi, radarhere] - Allow configuring JPEG restart marker interval on save 7488 [bgilbert, radarhere] - Decrement reference count for PyObject 7549 [radarhere] - Implement ``streamtype=1`` option for tables-only JPEG encoding 7491 [bgilbert, radarhere] - If save_all PNG only has one frame, do not create animated image 7522 [radarhere] - Fixed frombytes() for images with a zero dimension 7493 [radarhere] ``` ### 10.1.0 ``` ------------------- - Added TrueType default font to allow for different sizes 7354 [radarhere] - Fixed invalid argument warning 7442 [radarhere] - Added ImageOps cover method 7412 [radarhere, hugovk] - Catch struct.error from truncated EXIF when reading JPEG DPI 7458 [radarhere] - Consider default image when selecting mode for PNG save_all 7437 [radarhere] - Support BGR;15, BGR;16 and BGR;24 access, unpacking and putdata 7303 [radarhere] - Added CMYK to RGB unpacker 7310 [radarhere] - Improved flexibility of XMP parsing 7274 [radarhere] - Support reading 8-bit YCbCr TIFF images 7415 [radarhere] - Allow saving I;16B images as PNG 7302 [radarhere] - Corrected drawing I;16 points and writing I;16 text 7257 [radarhere] - Set blue channel to 128 for BC5S 7413 [radarhere] - Increase flexibility when reading IPTC fields 7319 [radarhere] - Set C palette to be empty by default 7289 [radarhere] - Added gs_binary to control Ghostscript use on all platforms 7392 [radarhere] - Read bounding box information from the trailer of EPS files if specified 7382 [nopperl, radarhere] - Added reading 8-bit color DDS images 7426 [radarhere] - Added has_transparency_data 7420 [radarhere, hugovk] - Fixed bug when reading BC5S DDS images 7401 [radarhere] - Prevent TIFF orientation from being applied more than once 7383 [radarhere] - Use previous pixel alpha for QOI_OP_RGB 7357 [radarhere] - Added BC5U reading 7358 [radarhere] - Allow getpixel() to accept a list 7355 [radarhere, homm] - Allow GaussianBlur and BoxBlur to accept a sequence of x and y radii 7336 [radarhere] - Expand JPEG buffer size when saving optimized or progressive 7345 [radarhere] - Added session type check for Linux in ImageGrab.grabclipboard() 7332 [TheNooB2706, radarhere, hugovk] - Allow "loop=None" when saving GIF images 7329 [radarhere] - Fixed transparency when saving P mode images to PDF 7323 [radarhere] - Added saving LA images as PDFs 7299 [radarhere] - Set SMaskInData to 1 for PDFs with alpha 7316, 7317 [radarhere] - Changed Image mode property to be read-only by default 7307 [radarhere] - Silence exceptions in _repr_jpeg_ and _repr_png_ 7266 [mtreinish, radarhere] - Do not use transparency when saving GIF if it has been removed when normalizing mode 7284 [radarhere] - Fix missing symbols when libtiff depends on libjpeg 7270 [heitbaum] ``` ### 10.0.1 ``` ------------------- - Updated libwebp to 1.3.2 7395 [radarhere] - Updated zlib to 1.3 7344 [radarhere] ``` ### 10.0.0 ``` ------------------- - Fixed deallocating mask images 7246 [radarhere] - Added ImageFont.MAX_STRING_LENGTH 7244 [radarhere, hugovk] - Fix Windows build with pyproject.toml 7230 [hugovk, nulano, radarhere] - Do not close provided file handles with libtiff 7199 [radarhere] - Convert to HSV if mode is HSV in getcolor() 7226 [radarhere] - Added alpha_only argument to getbbox() 7123 [radarhere. hugovk] - Prioritise speed in _repr_png_ 7242 [radarhere] - Do not use CFFI access by default on PyPy 7236 [radarhere] - Limit size even if one dimension is zero in decompression bomb check 7235 [radarhere] - Use --config-settings instead of deprecated --global-option 7171 [radarhere] - Better C integer definitions 6645 [Yay295, hugovk] - Fixed finding dependencies on Cygwin 7175 [radarhere] - Changed grabclipboard() to use PNG instead of JPG compression on macOS 7219 [abey79, radarhere] - Added in_place argument to ImageOps.exif_transpose() 7092 [radarhere] - Fixed calling putpalette() on L and LA images before load() 7187 [radarhere] - Fixed saving TIFF multiframe images with LONG8 tag types 7078 [radarhere] - Fixed combining single duration across duplicate APNG frames 7146 [radarhere] - Remove temporary file when error is raised 7148 [radarhere] - Do not use temporary file when grabbing clipboard on Linux 7200 [radarhere] - If the clipboard fails to open on Windows, wait and try again 7141 [radarhere] - Fixed saving multiple 1 mode frames to GIF 7181 [radarhere] - Replaced absolute PIL import with relative import 7173 [radarhere] - Replaced deprecated Py_FileSystemDefaultEncoding for Python >= 3.12 7192 [radarhere] - Improved wl-paste mimetype handling in ImageGrab 7094 [rrcgat, radarhere] - Added _repr_jpeg_() for IPython display_jpeg 7135 [n3011, radarhere, nulano] - Use "/sbin/ldconfig" if ldconfig is not found 7068 [radarhere] - Prefer screenshots using XCB over gnome-screenshot 7143 [nulano, radarhere] - Fixed joined corners for ImageDraw rounded_rectangle() odd dimensions 7151 [radarhere] - Support reading signed 8-bit TIFF images 7111 [radarhere] - Added width argument to ImageDraw regular_polygon 7132 [radarhere] - Support I mode for ImageFilter.BuiltinFilter 7108 [radarhere] - Raise error from stderr of Linux ImageGrab.grabclipboard() command 7112 [radarhere] - Added unpacker from I;16B to I;16 7125 [radarhere] - Support float font sizes 7107 [radarhere] - Use later value for duplicate xref entries in PdfParser 7102 [radarhere] - Load before getting size in __getstate__ 7105 [bigcat88, radarhere] - Fixed type handling for include and lib directories 7069 [adisbladis, radarhere] - Remove deprecations for Pillow 10.0.0 7059, 7080 [hugovk, radarhere] - Drop support for soon-EOL Python 3.7 7058 [hugovk, radarhere] ``` ### 9.5.0 ``` ------------------ - Added ImageSourceData to TAGS_V2 7053 [radarhere] - Clear PPM half token after use 7052 [radarhere] - Removed absolute path to ldconfig 7044 [radarhere] - Support custom comments and PLT markers when saving JPEG2000 images 6903 [joshware, radarhere, hugovk] - Load before getting size in __array_interface__ 7034 [radarhere] - Support creating BGR;15, BGR;16 and BGR;24 images, but drop support for BGR;32 7010 [radarhere] - Consider transparency when applying APNG blend mask 7018 [radarhere] - Round duration when saving animated WebP images 6996 [radarhere] - Added reading of JPEG2000 comments 6909 [radarhere] - Decrement reference count 7003 [radarhere, nulano] - Allow libtiff_support_custom_tags to be missing 7020 [radarhere] - Improved I;16N support 6834 [radarhere] - Added QOI reading 6852 [radarhere, hugovk] - Added saving RGBA images as PDFs 6925 [radarhere] - Do not raise an error if os.environ does not contain PATH 6935 [radarhere, hugovk] - Close OleFileIO instance when closing or exiting FPX or MIC 7005 [radarhere] - Added __int__ to IFDRational for Python >= 3.11 6998 [radarhere] - Added memoryview support to Dib.frombytes() 6988 [radarhere, nulano] - Close file pointer copy in the libtiff encoder if still open 6986 [fcarron, radarhere] - Raise an error if ImageDraw co-ordinates are incorrectly ordered 6978 [radarhere] - Added "corners" argument to ImageDraw rounded_rectangle() 6954 [radarhere] - Added memoryview support to frombytes() 6974 [radarhere] - Allow comments in FITS images 6973 [radarhere] - Support saving PDF with different X and Y resolutions 6961 [jvanderneutstulen, radarhere, hugovk] - Fixed writing int as UNDEFINED tag 6950 [radarhere] - Raise an error if EXIF data is too long when saving JPEG 6939 [radarhere] - Handle more than one directory returned by pkg-config 6896 [sebastic, radarhere] - Do not retry past formats when loading all formats for the first time 6902 [radarhere] - Do not retry specified formats if they failed when opening 6893 [radarhere] - Do not unintentionally load TIFF format at first 6892 [radarhere] - Stop reading when EPS line becomes too long 6897 [radarhere] - Allow writing IFDRational to BYTE tag 6890 [radarhere] - Raise ValueError for BoxBlur filter with negative radius 6874 [hugovk, radarhere] - Support arbitrary number of loaded modules on Windows 6761 [javidcf, radarhere, nulano] ``` ### 9.4.0 ``` ------------------ - Fixed null pointer dereference crash with malformed font 6846 [wiredfool, radarhere] - Return from ImagingFill early if image has a zero dimension 6842 [radarhere] - Reversed deprecations for Image constants, except for duplicate Resampling attributes 6830 [radarhere] - Improve exception traceback readability 6836 [hugovk, radarhere] - Do not attempt to read IFD1 if absent 6840 [radarhere] - Fixed writing int as ASCII tag 6800 [radarhere] - If available, use wl-paste or xclip for grabclipboard() on Linux 6783 [radarhere] - Added signed option when saving JPEG2000 images 6709 [radarhere] - Patch OpenJPEG to include ARM64 fix 6718 [radarhere] - Added support for I;16 modes in putdata() 6825 [radarhere] - Added conversion from RGBa to RGB 6708 [radarhere] - Added DDS support for uncompressed L and LA images 6820 [radarhere, REDxEYE] - Added LightSource tag values to ExifTags 6749 [radarhere] - Fixed PyAccess after changing ICO size 6821 [radarhere] - Do not use EXIF from info when saving PNG images 6819 [radarhere] - Fixed saving EXIF data to MPO 6817 [radarhere] - Added Exif hide_offsets() 6762 [radarhere] - Only compare to previous frame when checking for duplicate GIF frames while saving 6787 [radarhere] - Always initialize all plugins in registered_extensions() 6811 [radarhere] - Ignore non-opaque WebP background when saving as GIF 6792 [radarhere] - Only set tile in ImageFile __setstate__ 6793 [radarhere] - When reading BLP, do not trust JPEG decoder to determine image is CMYK 6767 [radarhere] - Added IFD enum to ExifTags 6748 [radarhere] - Fixed bug combining GIF frame durations 6779 [radarhere] - Support saving JPEG comments 6774 [smason, radarhere] - Added getxmp() to WebPImagePlugin 6758 [radarhere] - Added "exact" option when saving WebP 6747 [ashafaei, radarhere] - Use fractional coordinates when drawing text 6722 [radarhere] - Fixed writing int as BYTE tag 6740 [radarhere] - Added MP Format Version when saving MPO 6735 [radarhere] - Added Interop to ExifTags 6724 [radarhere] - CVE-2007-4559 patch when building on Windows 6704 [TrellixVulnTeam, nulano, radarhere] - Fix compiler warning: accessing 64 bytes in a region of size 48 6714 [wiredfool] - Use verbose flag for pip install 6713 [wiredfool, radarhere] ``` ### 9.3.0 ``` ------------------ - Limit SAMPLESPERPIXEL to avoid runtime DOS 6700 [wiredfool] - Initialize libtiff buffer when saving 6699 [radarhere] - Inline fname2char to fix memory leak 6329 [nulano] - Fix memory leaks related to text features 6330 [nulano] - Use double quotes for version check on old CPython on Windows 6695 [hugovk] - Remove backup implementation of Round for Windows platforms 6693 [cgohlke] - Fixed set_variation_by_name offset 6445 [radarhere] - Fix malloc in _imagingft.c:font_setvaraxes 6690 [cgohlke] - Release Python GIL when converting images using matrix operations 6418 [hmaarrfk] - Added ExifTags enums 6630 [radarhere] - Do not modify previous frame when calculating delta in PNG 6683 [radarhere] - Added support for reading BMP images with RLE4 compression 6674 [npjg, radarhere] - Decode JPEG compressed BLP1 data in original mode 6678 [radarhere] - Added GPS TIFF tag info 6661 [radarhere] - Added conversion between RGB/RGBA/RGBX and LAB 6647 [radarhere] - Do not attempt normalization if mode is already normal 6644 [radarhere] - Fixed seeking to an L frame in a GIF 6576 [radarhere] - Consider all frames when selecting mode for PNG save_all 6610 [radarhere] - Don't reassign crc on ChunkStream close 6627 [wiredfool, radarhere] - Raise a warning if NumPy failed to raise an error during conversion 6594 [radarhere] - Show all frames in ImageShow 6611 [radarhere] - Allow FLI palette chunk to not be first 6626 [radarhere] - If first GIF frame has transparency for RGB_ALWAYS loading strategy, use RGBA mode 6592 [radarhere] - Round box position to integer when pasting embedded color 6517 [radarhere, nulano] - Removed EXIF prefix when saving WebP 6582 [radarhere] - Pad IM palette to 768 bytes when saving 6579 [radarhere] - Added DDS BC6H reading 6449 [ShadelessFox, REDxEYE, radarhere] - Added support for opening WhiteIsZero 16-bit integer TIFF images 6642 [JayWiz, radarhere] - Raise an error when allocating translucent color to RGB palette 6654 [jsbueno, radarhere] - Added reading of TIFF child images 6569 [radarhere] - Improved ImageOps palette handling 6596 [PososikTeam, radarhere] - Defer parsing of palette into colors 6567 [radarhere] - Apply transparency to P images in ImageTk.PhotoImage 6559 [radarhere] - Use rounding in ImageOps contain() and pad() 6522 [bibinhashley, radarhere] - Fixed GIF remapping to palette with duplicate entries 6548 [radarhere] - Allow remap_palette() to return an image with less than 256 palette entries 6543 [radarhere] - Corrected BMP and TGA palette size when saving 6500 [radarhere] - Do not call load() before draft() in Image.thumbnail 6539 [radarhere] - Copy palette when converting from P to PA 6497 [radarhere] - Allow RGB and RGBA values for PA image putpixel 6504 [radarhere] - Removed support for tkinter in PyPy before Python 3.6 6551 [nulano] - Do not use CCITTFaxDecode filter if libtiff is not available 6518 [radarhere] - Fallback to not using mmap if buffer is not large enough 6510 [radarhere] - Fixed writing bytes as ASCII tag 6493 [radarhere] - Open 1 bit EPS in mode 1 6499 [radarhere] - Removed support for tkinter before Python 1.5.2 6549 [radarhere] - Allow default ImageDraw font to be set 6484 [radarhere, hugovk] - Save 1 mode PDF using CCITTFaxDecode filter 6470 [radarhere] - Added support for RGBA PSD images 6481 [radarhere] - Parse orientation from XMP tag contents 6463 [bigcat88, radarhere] - Added support for reading ATI1/ATI2 (BC4/BC5) DDS images 6457 [REDxEYE, radarhere] - Do not clear GIF tile when checking number of frames 6455 [radarhere] - Support saving multiple MPO frames 6444 [radarhere] - Do not double quote Pillow version for setuptools >= 60 6450 [radarhere] - Added ABGR BMP mask mode 6436 [radarhere] - Fixed PSDraw rectangle 6429 [radarhere] - Raise ValueError if PNG sRGB chunk is truncated 6431 [radarhere] - Handle missing Python executable in ImageShow on macOS 6416 [bryant1410, radarhere] ``` ### 9.2.0 ``` ------------------ - Deprecate ImageFont.getsize and related functions 6381 [nulano, radarhere] - Fixed null check for fribidi_version_info in FriBiDi shim 6376 [nulano] - Added GIF decompression bomb check 6402 [radarhere] - Handle PCF fonts files with less than 256 characters 6386 [dawidcrivelli, radarhere] - Improved GIF optimize condition 6378 [raygard, radarhere] - Reverted to __array_interface__ with the release of NumPy 1.23 6394 [radarhere] - Pad PCX palette to 768 bytes when saving 6391 [radarhere] - Fixed bug with rounding pixels to palette colors 6377 [btrekkie, radarhere] - Use gnome-screenshot on Linux if available 6361 [radarhere, nulano] - Fixed loading L mode BMP RLE8 images 6384 [radarhere] - Fixed incorrect operator in ImageCms error 6370 [LostBenjamin, hugovk, radarhere] - Limit FPX tile size to avoid extending outside image 6368 [radarhere] - Added support for decoding plain PPM formats 5242 [Piolie, radarhere] - Added apply_transparency() 6352 [radarhere] - Fixed behaviour change from endian fix 6197 [radarhere] - Allow remapping P images with RGBA palettes 6350 [radarhere] - Fixed drawing translucent 1px high polygons 6278 [radarhere] - Pad COLORMAP to 768 items when saving TIFF 6232 [radarhere] - Fix P -> PA conversion 6337 [RedShy, radarhere] - Once exif data is parsed, do not reload unless it changes 6335 [radarhere] - Only try to connect discontiguous corners at the end of edges 6303 [radarhere] - Improve transparency handling when saving GIF images 6176 [radarhere] - Do not update GIF frame position until local image is found 6219 [radarhere] - Netscape GIF extension belongs after the global color table 6211 [radarhere] - Only write GIF comments at the beginning of the file 6300 [raygard, radarhere] - Separate multiple GIF comment blocks with newlines 6294 [raygard, radarhere] - Always use GIF89a for comments 6292 [raygard, radarhere] - Ignore compression value from BMP info dictionary when saving as TIFF 6231 [radarhere] - If font is file-like object, do not re-read from object to get variant 6234 [radarhere] - Raise ValueError when trying to access internal fp after close 6213 [radarhere] - Support more affine expression forms in im.point() 6254 [benrg, radarhere] - Populate Python palette in fromarray() 6283 [radarhere] - Raise ValueError if PNG chunks are truncated 6253 [radarhere] - Use durations from each frame by default when saving GIFs 6265 [radarhere] - Adjust BITSPERSAMPLE to match SAMPLESPERPIXEL when opening TIFFs 6270 [radarhere] - Search pkgconf system libs/cflags 6138 [jameshilliard, radarhere] - Raise ValueError for invalid PPM maxval 6242 [radarhere] - Corrected screencapture argument in ImageGrab.grab() 6244 [axt-one] - Deprecate support for Qt 5 (PyQt5 and PySide2) 6237 [hugovk, radarhere] - Increase wait time of temporary file deletion on Windows 6224 [AlexTedeschi] - Deprecate FreeTypeFont.getmask2 fill parameter 6220 [nulano, radarhere, hugovk] - Round lut values where necessary 6188 [radarhere] - Load before getting size in resize() 6190 [radarhere] - Load image before performing size calculations in thumbnail() 6186 [radarhere] - Deprecated PhotoImage.paste() box parameter 6178 [radarhere] ``` ### 9.1.1 ``` ------------------ - 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] ``` ### 9.1.0 ``` ------------------ - 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] ``` ### 9.0.1 ``` ------------------ - 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] ``` ### 9.0.0 ``` ------------------ - 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] ``` ### 8.4.0 ``` ------------------ - 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] - 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] ``` ### 8.3.2 ``` ------------------ - 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] ``` ### 8.3.1 ``` ------------------ - 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] ``` ### 8.3.0 ``` ------------------ - 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] ``` ### 8.2.0 ``` ------------------ - 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-07-01) 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] ``` ### 8.1.2 ``` ------------------ - Fix Memory DOS in BLP (CVE-2021-27921), ICNS (CVE-2021-27922) and ICO (CVE-2021-27923) Image Plugins [wiredfool] ``` ### 8.1.1 ``` ------------------ - Use more specific regex chars to prevent ReDoS. CVE-2021-25292 [hugovk] - Fix OOB Read in TiffDecode.c, and check the tile validity before reading. CVE-2021-25291 [wiredfool] - Fix negative size read in TiffDecode.c. CVE-2021-25290 [wiredfool] - Fix OOB read in SgiRleDecode.c. CVE-2021-25293 [wiredfool] - Incorrect error code checking in TiffDecode.c. CVE-2021-25289 [wiredfool] - PyModule_AddObject fix for Python 3.10 5194 [radarhere] ``` ### 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 grayscale 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-&g