Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update pillow to 10.4.0 #1403

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from
Open

Conversation

pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Jul 1, 2024

This PR updates Pillow from 5.0.0 to 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-&gt

@pyup-bot pyup-bot mentioned this pull request Jul 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant