Update dependency Pillow to v10 - autoclosed #6

Closed
renovate-bot wants to merge 1 commit from renovate/pillow-10.x into master
Collaborator

This PR contains the following updates:

Package Update Change
Pillow (changelog) major ==7.1.1 -> ==10.3.0

Release Notes

python-pillow/Pillow (Pillow)

v10.3.0

Compare Source

  • 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]

v10.2.0

Compare Source

  • 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]

v10.1.0

Compare Source

  • 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]

v10.0.1

Compare Source

  • Updated libwebp to 1.3.2 #​7395
    [radarhere]

  • Updated zlib to 1.3 #​7344
    [radarhere]

v10.0.0

Compare Source

  • 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]

v9.5.0

Compare Source

  • 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]

v9.4.0

Compare Source

  • 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]

v9.3.0

Compare Source

  • 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]

v9.2.0

Compare Source

  • 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]

v9.1.1

Compare Source

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

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

v9.1.0

Compare Source

  • Add support for multiple component transformation to JPEG2000 #​5500
    [scaramallion, radarhere, hugovk]

  • Fix loading FriBiDi on Alpine #​6165
    [nulano]

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

  • Allow 1 mode images to be inverted #​6034
    [radarhere]

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

  • Always save TIFF with contiguous planar configuration #​5973
    [radarhere]

  • Connected discontiguous polygon corners #​5980
    [radarhere]

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

  • Use screencapture arguments to crop on macOS #​6152
    [radarhere]

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

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

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

  • Fixed calling DisplayViewer or XVViewer without a title #​6136
    [radarhere]

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

  • Save additional ICO frames with other bit depths if supplied #​6122
    [radarhere]

  • Handle EXIF data truncated to just the header #​6124
    [radarhere]

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

  • Support Python distributions where _tkinter is compiled in #​6006
    [lukegb]

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

  • Added BigTIFF reading #​6097
    [radarhere]

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

  • Fixed loading L mode GIF with transparency #​6086
    [radarhere]

  • Improved handling of PPM header #​5121
    [Piolie, radarhere]

  • Reset size when seeking away from "Large Thumbnail" MPO frame #​6101
    [radarhere]

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

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

  • Handle TGA images with packets that cross scan lines #​6087
    [radarhere]

  • Added FITS reading #​6056
    [radarhere, hugovk]

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

  • Fixed BUFR, GRIB and HDF5 stub saving #​6071
    [radarhere]

  • Do not automatically remove temporary ImageShow files on Unix #​6045
    [radarhere]

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

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

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

  • Added enums #​5954
    [radarhere]

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

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

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

  • Drop excess values in BITSPERSAMPLE #​6041
    [mikhail-iurkov]

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

  • Enable arm64 for MSVC on Windows #​5811
    [gaborkertesz-linaro, gaborkertesz]

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

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

  • Deprecated show_file "file" argument in favour of "path" #​5959
    [radarhere]

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

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

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

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

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

v9.0.1

Compare Source

  • In show_file, use os.remove to remove temporary images. CVE-2022-24303 #​6010
    [radarhere, hugovk]

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

v9.0.0

Compare Source

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

  • Ensure JpegImagePlugin stops at the end of a truncated file #​5921
    [radarhere]

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

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

  • Improved I;16 operations on big endian #​5901
    [radarhere]

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

  • Fixed palette index for zeroed color in FASTOCTREE quantize #​5869
    [radarhere]

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

  • Pass SAMPLEFORMAT to libtiff #​5848
    [radarhere]

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

  • Improved putdata() documentation and data handling #​5910
    [radarhere]

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

  • Fixed freeing pointer in ImageDraw.Outline.transform #​5909
    [radarhere]

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

  • Support 16-bit grayscale ImageQt conversion #​5856
    [cmbruns, radarhere]

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

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

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

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

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

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

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

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

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

  • Only prefer command line tools SDK on macOS over default MacOSX SDK #​5828
    [radarhere]

  • Drop support for soon-EOL Python 3.6 #​5768
    [hugovk, nulano, radarhere]

  • Fix compilation on 64-bit Termux #​5793
    [landfillbaby]

  • Use title for display in ImageShow #​5788
    [radarhere]

  • Remove support for FreeType 2.7 and older #​5777
    [hugovk, radarhere]

  • Fix for PyQt6 #​5775
    [hugovk, radarhere]

  • Removed deprecated PILLOW_VERSION, Image.show command parameter, Image._showxv and ImageFile.raise_ioerror #​5776
    [radarhere]

v8.4.0

Compare Source

  • 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]

v8.3.2

Compare Source

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

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

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

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

  • Updates for ImagePalette channel order #​5599
    [radarhere]

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

v8.3.1

Compare Source

  • Catch OSError when checking if fp is sys.stdout #​5585
    [radarhere]

  • Handle removing orientation from alternate types of EXIF data #​5584
    [radarhere]

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

v8.3.0

Compare Source

  • Use snprintf instead of sprintf. CVE-2021-34552 #​5567
    [radarhere]

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

  • Allow ICNS save on all operating systems #​4526
    [baletu, radarhere, newpanjing, hugovk]

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

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

  • Moved CVE image to pillow-depends #​5561
    [radarhere]

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

  • Improved ImagePalette #​5552
    [radarhere]

  • Add DDS saving #​5402
    [radarhere]

  • Improved getxmp() #​5455
    [radarhere]

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

  • Allow getexif() to access TIFF tag_v2 data #​5416
    [radarhere]

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

  • Merge parallel horizontal edges in ImagingDrawPolygon #​5347
    [radarhere, hrdrq]

  • Use transparency behind first GIF frame and when disposing to background #​5557
    [radarhere, zewt]

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

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

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

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

  • Fixed default numresolution for small JPEG2000 images #​5540
    [radarhere]

  • Added DDS BC5 reading #​5501
    [radarhere]

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

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

  • Ensure PNG seeks to end of previous chunk at start of load_end #​5493
    [radarhere]

  • Do not allow TIFF to seek to a past frame #​5473
    [radarhere]

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

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

  • Allow converting an image to a numpy array to raise errors #​5379
    [radarhere]

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

  • Remove spikes when drawing thin pieslices #​5460
    [xtsm]

  • Updated default value for SAMPLESPERPIXEL TIFF tag #​5452
    [radarhere]

  • Removed TIFF DPI rounding #​5446
    [radarhere, hugovk]

  • Include code in WebP error #​5471
    [radarhere]

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

  • Reset handle when seeking backwards in TIFF #​5443
    [radarhere]

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

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

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

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

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

  • Changed WebP default "method" value to 4 #​5450
    [radarhere]

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

  • Use bpp from ICO header #​5429
    [radarhere]

  • Corrected JPEG APP14 transform value #​5408
    [radarhere]

  • Changed TIFF tag 33723 length to 1 #​5425
    [radarhere]

  • Changed ImageMorph incorrect mode errors to ValueError #​5414
    [radarhere]

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

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

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

  • JPEG2000: Support decoding subsampled RGB and YCbCr images #​4996
    [nulano, radarhere]

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

  • Use zero if GIF background color index is missing #​5390
    [radarhere]

  • Fixed ensuring that GIF previous frame was loaded #​5386
    [radarhere]

  • Valgrind fixes #​5397
    [wiredfool]

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

  • Fixed reading uncompressed RGB data from DDS #​5383
    [radarhere]

v8.2.0

Compare Source

  • 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]

v8.1.2

Compare Source

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

v8.1.1

Compare Source

  • 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]

v8.1.0

Compare Source

  • 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]

v8.0.1

Compare Source

  • 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]

v8.0.0

Compare Source

  • 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]

v7.2.0

Compare Source

  • 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]

v7.1.2

Compare Source

  • Raise an EOFError when seeking too far in PNG #​4528
    [radarhere]

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Update | Change | |---|---|---| | [Pillow](https://github.com/python-pillow/Pillow) ([changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)) | major | `==7.1.1` -> `==10.3.0` | --- ### Release Notes <details> <summary>python-pillow/Pillow (Pillow)</summary> ### [`v10.3.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#1030-2024-04-01) [Compare Source](https://github.com/python-pillow/Pillow/compare/10.2.0...10.3.0) - CVE-2024-28219: Use `strncpy` to avoid buffer overflow [#&#8203;7928](https://github.com/python-pillow/Pillow/issues/7928) \[radarhere, hugovk] - Deprecate `eval()`, replacing it with `lambda_eval()` and `unsafe_eval()` [#&#8203;7927](https://github.com/python-pillow/Pillow/issues/7927) \[radarhere, hugovk] - Raise `ValueError` if seeking to greater than offset-sized integer in TIFF [#&#8203;7883](https://github.com/python-pillow/Pillow/issues/7883) \[radarhere] - Add `--report` argument to `__main__.py` to omit supported formats [#&#8203;7818](https://github.com/python-pillow/Pillow/issues/7818) \[nulano, radarhere, hugovk] - Added RGB to I;16, I;16L, I;16B and I;16N conversion [#&#8203;7918](https://github.com/python-pillow/Pillow/issues/7918), [#&#8203;7920](https://github.com/python-pillow/Pillow/issues/7920) \[radarhere] - Fix editable installation with custom build backend and configuration options [#&#8203;7658](https://github.com/python-pillow/Pillow/issues/7658) \[nulano, radarhere] - Fix putdata() for I;16N on big-endian [#&#8203;7209](https://github.com/python-pillow/Pillow/issues/7209) \[Yay295, hugovk, radarhere] - Determine MPO size from markers, not EXIF data [#&#8203;7884](https://github.com/python-pillow/Pillow/issues/7884) \[radarhere] - Improved conversion from RGB to RGBa, LA and La [#&#8203;7888](https://github.com/python-pillow/Pillow/issues/7888) \[radarhere] - Support FITS images with GZIP\_1 compression [#&#8203;7894](https://github.com/python-pillow/Pillow/issues/7894) \[radarhere] - Use I;16 mode for 9-bit JPEG 2000 images [#&#8203;7900](https://github.com/python-pillow/Pillow/issues/7900) \[scaramallion, radarhere] - Raise ValueError if kmeans is negative [#&#8203;7891](https://github.com/python-pillow/Pillow/issues/7891) \[radarhere] - Remove TIFF tag OSUBFILETYPE when saving using libtiff [#&#8203;7893](https://github.com/python-pillow/Pillow/issues/7893) \[radarhere] - Raise ValueError for negative values when loading P1-P3 PPM images [#&#8203;7882](https://github.com/python-pillow/Pillow/issues/7882) \[radarhere] - Added reading of JPEG2000 palettes [#&#8203;7870](https://github.com/python-pillow/Pillow/issues/7870) \[radarhere] - Added alpha_quality argument when saving WebP images [#&#8203;7872](https://github.com/python-pillow/Pillow/issues/7872) \[radarhere] - Fixed joined corners for ImageDraw rounded_rectangle() non-integer dimensions [#&#8203;7881](https://github.com/python-pillow/Pillow/issues/7881) \[radarhere] - Stop reading EPS image at EOF marker [#&#8203;7753](https://github.com/python-pillow/Pillow/issues/7753) \[radarhere] - PSD layer co-ordinates may be negative [#&#8203;7706](https://github.com/python-pillow/Pillow/issues/7706) \[radarhere] - Use subprocess with CREATE_NO_WINDOW flag in ImageShow WindowsViewer [#&#8203;7791](https://github.com/python-pillow/Pillow/issues/7791) \[radarhere] - When saving GIF frame that restores to background color, do not fill identical pixels [#&#8203;7788](https://github.com/python-pillow/Pillow/issues/7788) \[radarhere] - Fixed reading PNG iCCP compression method [#&#8203;7823](https://github.com/python-pillow/Pillow/issues/7823) \[radarhere] - Allow writing IFDRational to UNDEFINED tag [#&#8203;7840](https://github.com/python-pillow/Pillow/issues/7840) \[radarhere] - Fix logged tag name when loading Exif data [#&#8203;7842](https://github.com/python-pillow/Pillow/issues/7842) \[radarhere] - Use maximum frame size in IHDR chunk when saving APNG images [#&#8203;7821](https://github.com/python-pillow/Pillow/issues/7821) \[radarhere] - Prevent opening P TGA images without a palette [#&#8203;7797](https://github.com/python-pillow/Pillow/issues/7797) \[radarhere] - Use palette when loading ICO images [#&#8203;7798](https://github.com/python-pillow/Pillow/issues/7798) \[radarhere] - Use consistent arguments for load_read and load_seek [#&#8203;7713](https://github.com/python-pillow/Pillow/issues/7713) \[radarhere] - Turn off nullability warnings for macOS SDK [#&#8203;7827](https://github.com/python-pillow/Pillow/issues/7827) \[radarhere] - Fix shift-sign issue in Convert.c [#&#8203;7838](https://github.com/python-pillow/Pillow/issues/7838) \[r-barnes, radarhere] - Open 16-bit grayscale PNGs as I;16 [#&#8203;7849](https://github.com/python-pillow/Pillow/issues/7849) \[radarhere] - Handle truncated chunks at the end of PNG images [#&#8203;7709](https://github.com/python-pillow/Pillow/issues/7709) \[lajiyuan, radarhere] - Match mask size to pasted image size in GifImagePlugin [#&#8203;7779](https://github.com/python-pillow/Pillow/issues/7779) \[radarhere] - Release GIL while calling `WebPAnimDecoderGetNext` [#&#8203;7782](https://github.com/python-pillow/Pillow/issues/7782) \[evanmiller, radarhere] - Fixed reading FLI/FLC images with a prefix chunk [#&#8203;7804](https://github.com/python-pillow/Pillow/issues/7804) \[twolife] - Update wl-paste handling and return None for some errors in grabclipboard() on Linux [#&#8203;7745](https://github.com/python-pillow/Pillow/issues/7745) \[nik012003, radarhere] - Remove execute bit from `setup.py` [#&#8203;7760](https://github.com/python-pillow/Pillow/issues/7760) \[hugovk] - Do not support using test-image-results to upload images after test failures [#&#8203;7739](https://github.com/python-pillow/Pillow/issues/7739) \[radarhere] - Changed ImageMath.ops to be static [#&#8203;7721](https://github.com/python-pillow/Pillow/issues/7721) \[radarhere] - Fix APNG info after seeking backwards more than twice [#&#8203;7701](https://github.com/python-pillow/Pillow/issues/7701) \[esoma, radarhere] - Deprecate ImageCms constants and versions() function [#&#8203;7702](https://github.com/python-pillow/Pillow/issues/7702) \[nulano, radarhere] - Added PerspectiveTransform [#&#8203;7699](https://github.com/python-pillow/Pillow/issues/7699) \[radarhere] - Add support for reading and writing grayscale PFM images [#&#8203;7696](https://github.com/python-pillow/Pillow/issues/7696) \[nulano, hugovk] - Add LCMS2 flags to ImageCms [#&#8203;7676](https://github.com/python-pillow/Pillow/issues/7676) \[nulano, radarhere, hugovk] - Rename x64 to AMD64 in winbuild [#&#8203;7693](https://github.com/python-pillow/Pillow/issues/7693) \[nulano] ### [`v10.2.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#1020-2024-01-02) [Compare Source](https://github.com/python-pillow/Pillow/compare/10.1.0...10.2.0) - Add `keep_rgb` option when saving JPEG to prevent conversion of RGB colorspace [#&#8203;7553](https://github.com/python-pillow/Pillow/issues/7553) \[bgilbert, radarhere] - Trim glyph size in ImageFont.getmask() [#&#8203;7669](https://github.com/python-pillow/Pillow/issues/7669), [#&#8203;7672](https://github.com/python-pillow/Pillow/issues/7672) \[radarhere, nulano] - Deprecate IptcImagePlugin helpers [#&#8203;7664](https://github.com/python-pillow/Pillow/issues/7664) \[nulano, hugovk, radarhere] - Allow uncompressed TIFF images to be saved in chunks [#&#8203;7650](https://github.com/python-pillow/Pillow/issues/7650) \[radarhere] - Concatenate multiple JPEG EXIF markers [#&#8203;7496](https://github.com/python-pillow/Pillow/issues/7496) \[radarhere] - Changed IPTC tile tuple to match other plugins [#&#8203;7661](https://github.com/python-pillow/Pillow/issues/7661) \[radarhere] - Do not assign new fp attribute when exiting context manager [#&#8203;7566](https://github.com/python-pillow/Pillow/issues/7566) \[radarhere] - Support arbitrary masks for uncompressed RGB DDS images [#&#8203;7589](https://github.com/python-pillow/Pillow/issues/7589) \[radarhere, akx] - Support setting ROWSPERSTRIP tag [#&#8203;7654](https://github.com/python-pillow/Pillow/issues/7654) \[radarhere] - Apply ImageFont.MAX_STRING_LENGTH to ImageFont.getmask() [#&#8203;7662](https://github.com/python-pillow/Pillow/issues/7662) \[radarhere] - Optimise `ImageColor` using `functools.lru_cache` [#&#8203;7657](https://github.com/python-pillow/Pillow/issues/7657) \[hugovk] - Restricted environment keys for ImageMath.eval() [#&#8203;7655](https://github.com/python-pillow/Pillow/issues/7655) \[wiredfool, radarhere] - Optimise `ImageMode.getmode` using `functools.lru_cache` [#&#8203;7641](https://github.com/python-pillow/Pillow/issues/7641) \[hugovk, radarhere] - Fix incorrect color blending for overlapping glyphs [#&#8203;7497](https://github.com/python-pillow/Pillow/issues/7497) \[ZachNagengast, nulano, radarhere] - Attempt memory mapping when tile args is a string [#&#8203;7565](https://github.com/python-pillow/Pillow/issues/7565) \[radarhere] - Fill identical pixels with transparency in subsequent frames when saving GIF [#&#8203;7568](https://github.com/python-pillow/Pillow/issues/7568) \[radarhere] - Corrected duration when combining multiple GIF frames into single frame [#&#8203;7521](https://github.com/python-pillow/Pillow/issues/7521) \[radarhere] - Handle disposing GIF background from outside palette [#&#8203;7515](https://github.com/python-pillow/Pillow/issues/7515) \[radarhere] - Seek past the data when skipping a PSD layer [#&#8203;7483](https://github.com/python-pillow/Pillow/issues/7483) \[radarhere] - Import plugins relative to the module [#&#8203;7576](https://github.com/python-pillow/Pillow/issues/7576) \[deliangyang, jaxx0n] - Translate encoder error codes to strings; deprecate `ImageFile.raise_oserror()` [#&#8203;7609](https://github.com/python-pillow/Pillow/issues/7609) \[bgilbert, radarhere] - Support reading BC4U and DX10 BC1 images [#&#8203;6486](https://github.com/python-pillow/Pillow/issues/6486) \[REDxEYE, radarhere, hugovk] - Optimize ImageStat.Stat.extrema [#&#8203;7593](https://github.com/python-pillow/Pillow/issues/7593) \[florath, radarhere] - Handle pathlib.Path in FreeTypeFont [#&#8203;7578](https://github.com/python-pillow/Pillow/issues/7578) \[radarhere, hugovk, nulano] - Added support for reading DX10 BC4 DDS images [#&#8203;7603](https://github.com/python-pillow/Pillow/issues/7603) \[sambvfx, radarhere] - Optimized ImageStat.Stat.count [#&#8203;7599](https://github.com/python-pillow/Pillow/issues/7599) \[florath] - Correct PDF palette size when saving [#&#8203;7555](https://github.com/python-pillow/Pillow/issues/7555) \[radarhere] - Fixed closing file pointer with olefile 0.47 [#&#8203;7594](https://github.com/python-pillow/Pillow/issues/7594) \[radarhere] - Raise ValueError when TrueType font size is not greater than zero [#&#8203;7584](https://github.com/python-pillow/Pillow/issues/7584), [#&#8203;7587](https://github.com/python-pillow/Pillow/issues/7587) \[akx, radarhere] - If absent, do not try to close fp when closing image [#&#8203;7557](https://github.com/python-pillow/Pillow/issues/7557) \[RaphaelVRossi, radarhere] - Allow configuring JPEG restart marker interval on save [#&#8203;7488](https://github.com/python-pillow/Pillow/issues/7488) \[bgilbert, radarhere] - Decrement reference count for PyObject [#&#8203;7549](https://github.com/python-pillow/Pillow/issues/7549) \[radarhere] - Implement `streamtype=1` option for tables-only JPEG encoding [#&#8203;7491](https://github.com/python-pillow/Pillow/issues/7491) \[bgilbert, radarhere] - If save_all PNG only has one frame, do not create animated image [#&#8203;7522](https://github.com/python-pillow/Pillow/issues/7522) \[radarhere] - Fixed frombytes() for images with a zero dimension [#&#8203;7493](https://github.com/python-pillow/Pillow/issues/7493) \[radarhere] ### [`v10.1.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#1010-2023-10-15) [Compare Source](https://github.com/python-pillow/Pillow/compare/10.0.1...10.1.0) - Added TrueType default font to allow for different sizes [#&#8203;7354](https://github.com/python-pillow/Pillow/issues/7354) \[radarhere] - Fixed invalid argument warning [#&#8203;7442](https://github.com/python-pillow/Pillow/issues/7442) \[radarhere] - Added ImageOps cover method [#&#8203;7412](https://github.com/python-pillow/Pillow/issues/7412) \[radarhere, hugovk] - Catch struct.error from truncated EXIF when reading JPEG DPI [#&#8203;7458](https://github.com/python-pillow/Pillow/issues/7458) \[radarhere] - Consider default image when selecting mode for PNG save_all [#&#8203;7437](https://github.com/python-pillow/Pillow/issues/7437) \[radarhere] - Support BGR;15, BGR;16 and BGR;24 access, unpacking and putdata [#&#8203;7303](https://github.com/python-pillow/Pillow/issues/7303) \[radarhere] - Added CMYK to RGB unpacker [#&#8203;7310](https://github.com/python-pillow/Pillow/issues/7310) \[radarhere] - Improved flexibility of XMP parsing [#&#8203;7274](https://github.com/python-pillow/Pillow/issues/7274) \[radarhere] - Support reading 8-bit YCbCr TIFF images [#&#8203;7415](https://github.com/python-pillow/Pillow/issues/7415) \[radarhere] - Allow saving I;16B images as PNG [#&#8203;7302](https://github.com/python-pillow/Pillow/issues/7302) \[radarhere] - Corrected drawing I;16 points and writing I;16 text [#&#8203;7257](https://github.com/python-pillow/Pillow/issues/7257) \[radarhere] - Set blue channel to 128 for BC5S [#&#8203;7413](https://github.com/python-pillow/Pillow/issues/7413) \[radarhere] - Increase flexibility when reading IPTC fields [#&#8203;7319](https://github.com/python-pillow/Pillow/issues/7319) \[radarhere] - Set C palette to be empty by default [#&#8203;7289](https://github.com/python-pillow/Pillow/issues/7289) \[radarhere] - Added gs_binary to control Ghostscript use on all platforms [#&#8203;7392](https://github.com/python-pillow/Pillow/issues/7392) \[radarhere] - Read bounding box information from the trailer of EPS files if specified [#&#8203;7382](https://github.com/python-pillow/Pillow/issues/7382) \[nopperl, radarhere] - Added reading 8-bit color DDS images [#&#8203;7426](https://github.com/python-pillow/Pillow/issues/7426) \[radarhere] - Added has_transparency_data [#&#8203;7420](https://github.com/python-pillow/Pillow/issues/7420) \[radarhere, hugovk] - Fixed bug when reading BC5S DDS images [#&#8203;7401](https://github.com/python-pillow/Pillow/issues/7401) \[radarhere] - Prevent TIFF orientation from being applied more than once [#&#8203;7383](https://github.com/python-pillow/Pillow/issues/7383) \[radarhere] - Use previous pixel alpha for QOI_OP_RGB [#&#8203;7357](https://github.com/python-pillow/Pillow/issues/7357) \[radarhere] - Added BC5U reading [#&#8203;7358](https://github.com/python-pillow/Pillow/issues/7358) \[radarhere] - Allow getpixel() to accept a list [#&#8203;7355](https://github.com/python-pillow/Pillow/issues/7355) \[radarhere, homm] - Allow GaussianBlur and BoxBlur to accept a sequence of x and y radii [#&#8203;7336](https://github.com/python-pillow/Pillow/issues/7336) \[radarhere] - Expand JPEG buffer size when saving optimized or progressive [#&#8203;7345](https://github.com/python-pillow/Pillow/issues/7345) \[radarhere] - Added session type check for Linux in ImageGrab.grabclipboard() [#&#8203;7332](https://github.com/python-pillow/Pillow/issues/7332) \[TheNooB2706, radarhere, hugovk] - Allow "loop=None" when saving GIF images [#&#8203;7329](https://github.com/python-pillow/Pillow/issues/7329) \[radarhere] - Fixed transparency when saving P mode images to PDF [#&#8203;7323](https://github.com/python-pillow/Pillow/issues/7323) \[radarhere] - Added saving LA images as PDFs [#&#8203;7299](https://github.com/python-pillow/Pillow/issues/7299) \[radarhere] - Set SMaskInData to 1 for PDFs with alpha [#&#8203;7316](https://github.com/python-pillow/Pillow/issues/7316), [#&#8203;7317](https://github.com/python-pillow/Pillow/issues/7317) \[radarhere] - Changed Image mode property to be read-only by default [#&#8203;7307](https://github.com/python-pillow/Pillow/issues/7307) \[radarhere] - Silence exceptions in *repr_jpeg* and *repr_png* [#&#8203;7266](https://github.com/python-pillow/Pillow/issues/7266) \[mtreinish, radarhere] - Do not use transparency when saving GIF if it has been removed when normalizing mode [#&#8203;7284](https://github.com/python-pillow/Pillow/issues/7284) \[radarhere] - Fix missing symbols when libtiff depends on libjpeg [#&#8203;7270](https://github.com/python-pillow/Pillow/issues/7270) \[heitbaum] ### [`v10.0.1`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#1001-2023-09-15) [Compare Source](https://github.com/python-pillow/Pillow/compare/10.0.0...10.0.1) - Updated libwebp to 1.3.2 [#&#8203;7395](https://github.com/python-pillow/Pillow/issues/7395) \[radarhere] - Updated zlib to 1.3 [#&#8203;7344](https://github.com/python-pillow/Pillow/issues/7344) \[radarhere] ### [`v10.0.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#1000-2023-07-01) [Compare Source](https://github.com/python-pillow/Pillow/compare/9.5.0...10.0.0) - Fixed deallocating mask images [#&#8203;7246](https://github.com/python-pillow/Pillow/issues/7246) \[radarhere] - Added ImageFont.MAX_STRING_LENGTH [#&#8203;7244](https://github.com/python-pillow/Pillow/issues/7244) \[radarhere, hugovk] - Fix Windows build with pyproject.toml [#&#8203;7230](https://github.com/python-pillow/Pillow/issues/7230) \[hugovk, nulano, radarhere] - Do not close provided file handles with libtiff [#&#8203;7199](https://github.com/python-pillow/Pillow/issues/7199) \[radarhere] - Convert to HSV if mode is HSV in getcolor() [#&#8203;7226](https://github.com/python-pillow/Pillow/issues/7226) \[radarhere] - Added alpha_only argument to getbbox() [#&#8203;7123](https://github.com/python-pillow/Pillow/issues/7123) \[radarhere. hugovk] - Prioritise speed in *repr_png* [#&#8203;7242](https://github.com/python-pillow/Pillow/issues/7242) \[radarhere] - Do not use CFFI access by default on PyPy [#&#8203;7236](https://github.com/python-pillow/Pillow/issues/7236) \[radarhere] - Limit size even if one dimension is zero in decompression bomb check [#&#8203;7235](https://github.com/python-pillow/Pillow/issues/7235) \[radarhere] - Use --config-settings instead of deprecated --global-option [#&#8203;7171](https://github.com/python-pillow/Pillow/issues/7171) \[radarhere] - Better C integer definitions [#&#8203;6645](https://github.com/python-pillow/Pillow/issues/6645) \[Yay295, hugovk] - Fixed finding dependencies on Cygwin [#&#8203;7175](https://github.com/python-pillow/Pillow/issues/7175) \[radarhere] - Changed grabclipboard() to use PNG instead of JPG compression on macOS [#&#8203;7219](https://github.com/python-pillow/Pillow/issues/7219) \[abey79, radarhere] - Added in_place argument to ImageOps.exif_transpose() [#&#8203;7092](https://github.com/python-pillow/Pillow/issues/7092) \[radarhere] - Fixed calling putpalette() on L and LA images before load() [#&#8203;7187](https://github.com/python-pillow/Pillow/issues/7187) \[radarhere] - Fixed saving TIFF multiframe images with LONG8 tag types [#&#8203;7078](https://github.com/python-pillow/Pillow/issues/7078) \[radarhere] - Fixed combining single duration across duplicate APNG frames [#&#8203;7146](https://github.com/python-pillow/Pillow/issues/7146) \[radarhere] - Remove temporary file when error is raised [#&#8203;7148](https://github.com/python-pillow/Pillow/issues/7148) \[radarhere] - Do not use temporary file when grabbing clipboard on Linux [#&#8203;7200](https://github.com/python-pillow/Pillow/issues/7200) \[radarhere] - If the clipboard fails to open on Windows, wait and try again [#&#8203;7141](https://github.com/python-pillow/Pillow/issues/7141) \[radarhere] - Fixed saving multiple 1 mode frames to GIF [#&#8203;7181](https://github.com/python-pillow/Pillow/issues/7181) \[radarhere] - Replaced absolute PIL import with relative import [#&#8203;7173](https://github.com/python-pillow/Pillow/issues/7173) \[radarhere] - Replaced deprecated Py_FileSystemDefaultEncoding for Python >= 3.12 [#&#8203;7192](https://github.com/python-pillow/Pillow/issues/7192) \[radarhere] - Improved wl-paste mimetype handling in ImageGrab [#&#8203;7094](https://github.com/python-pillow/Pillow/issues/7094) \[rrcgat, radarhere] - Added *repr_jpeg*() for IPython display_jpeg [#&#8203;7135](https://github.com/python-pillow/Pillow/issues/7135) \[n3011, radarhere, nulano] - Use "/sbin/ldconfig" if ldconfig is not found [#&#8203;7068](https://github.com/python-pillow/Pillow/issues/7068) \[radarhere] - Prefer screenshots using XCB over gnome-screenshot [#&#8203;7143](https://github.com/python-pillow/Pillow/issues/7143) \[nulano, radarhere] - Fixed joined corners for ImageDraw rounded_rectangle() odd dimensions [#&#8203;7151](https://github.com/python-pillow/Pillow/issues/7151) \[radarhere] - Support reading signed 8-bit TIFF images [#&#8203;7111](https://github.com/python-pillow/Pillow/issues/7111) \[radarhere] - Added width argument to ImageDraw regular_polygon [#&#8203;7132](https://github.com/python-pillow/Pillow/issues/7132) \[radarhere] - Support I mode for ImageFilter.BuiltinFilter [#&#8203;7108](https://github.com/python-pillow/Pillow/issues/7108) \[radarhere] - Raise error from stderr of Linux ImageGrab.grabclipboard() command [#&#8203;7112](https://github.com/python-pillow/Pillow/issues/7112) \[radarhere] - Added unpacker from I;16B to I;16 [#&#8203;7125](https://github.com/python-pillow/Pillow/issues/7125) \[radarhere] - Support float font sizes [#&#8203;7107](https://github.com/python-pillow/Pillow/issues/7107) \[radarhere] - Use later value for duplicate xref entries in PdfParser [#&#8203;7102](https://github.com/python-pillow/Pillow/issues/7102) \[radarhere] - Load before getting size in **getstate** [#&#8203;7105](https://github.com/python-pillow/Pillow/issues/7105) \[bigcat88, radarhere] - Fixed type handling for include and lib directories [#&#8203;7069](https://github.com/python-pillow/Pillow/issues/7069) \[adisbladis, radarhere] - Remove deprecations for Pillow 10.0.0 [#&#8203;7059](https://github.com/python-pillow/Pillow/issues/7059), [#&#8203;7080](https://github.com/python-pillow/Pillow/issues/7080) \[hugovk, radarhere] - Drop support for soon-EOL Python 3.7 [#&#8203;7058](https://github.com/python-pillow/Pillow/issues/7058) \[hugovk, radarhere] ### [`v9.5.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#950-2023-04-01) [Compare Source](https://github.com/python-pillow/Pillow/compare/9.4.0...9.5.0) - Added ImageSourceData to TAGS_V2 [#&#8203;7053](https://github.com/python-pillow/Pillow/issues/7053) \[radarhere] - Clear PPM half token after use [#&#8203;7052](https://github.com/python-pillow/Pillow/issues/7052) \[radarhere] - Removed absolute path to ldconfig [#&#8203;7044](https://github.com/python-pillow/Pillow/issues/7044) \[radarhere] - Support custom comments and PLT markers when saving JPEG2000 images [#&#8203;6903](https://github.com/python-pillow/Pillow/issues/6903) \[joshware, radarhere, hugovk] - Load before getting size in **array_interface** [#&#8203;7034](https://github.com/python-pillow/Pillow/issues/7034) \[radarhere] - Support creating BGR;15, BGR;16 and BGR;24 images, but drop support for BGR;32 [#&#8203;7010](https://github.com/python-pillow/Pillow/issues/7010) \[radarhere] - Consider transparency when applying APNG blend mask [#&#8203;7018](https://github.com/python-pillow/Pillow/issues/7018) \[radarhere] - Round duration when saving animated WebP images [#&#8203;6996](https://github.com/python-pillow/Pillow/issues/6996) \[radarhere] - Added reading of JPEG2000 comments [#&#8203;6909](https://github.com/python-pillow/Pillow/issues/6909) \[radarhere] - Decrement reference count [#&#8203;7003](https://github.com/python-pillow/Pillow/issues/7003) \[radarhere, nulano] - Allow libtiff_support_custom_tags to be missing [#&#8203;7020](https://github.com/python-pillow/Pillow/issues/7020) \[radarhere] - Improved I;16N support [#&#8203;6834](https://github.com/python-pillow/Pillow/issues/6834) \[radarhere] - Added QOI reading [#&#8203;6852](https://github.com/python-pillow/Pillow/issues/6852) \[radarhere, hugovk] - Added saving RGBA images as PDFs [#&#8203;6925](https://github.com/python-pillow/Pillow/issues/6925) \[radarhere] - Do not raise an error if os.environ does not contain PATH [#&#8203;6935](https://github.com/python-pillow/Pillow/issues/6935) \[radarhere, hugovk] - Close OleFileIO instance when closing or exiting FPX or MIC [#&#8203;7005](https://github.com/python-pillow/Pillow/issues/7005) \[radarhere] - Added **int** to IFDRational for Python >= 3.11 [#&#8203;6998](https://github.com/python-pillow/Pillow/issues/6998) \[radarhere] - Added memoryview support to Dib.frombytes() [#&#8203;6988](https://github.com/python-pillow/Pillow/issues/6988) \[radarhere, nulano] - Close file pointer copy in the libtiff encoder if still open [#&#8203;6986](https://github.com/python-pillow/Pillow/issues/6986) \[fcarron, radarhere] - Raise an error if ImageDraw co-ordinates are incorrectly ordered [#&#8203;6978](https://github.com/python-pillow/Pillow/issues/6978) \[radarhere] - Added "corners" argument to ImageDraw rounded_rectangle() [#&#8203;6954](https://github.com/python-pillow/Pillow/issues/6954) \[radarhere] - Added memoryview support to frombytes() [#&#8203;6974](https://github.com/python-pillow/Pillow/issues/6974) \[radarhere] - Allow comments in FITS images [#&#8203;6973](https://github.com/python-pillow/Pillow/issues/6973) \[radarhere] - Support saving PDF with different X and Y resolutions [#&#8203;6961](https://github.com/python-pillow/Pillow/issues/6961) \[jvanderneutstulen, radarhere, hugovk] - Fixed writing int as UNDEFINED tag [#&#8203;6950](https://github.com/python-pillow/Pillow/issues/6950) \[radarhere] - Raise an error if EXIF data is too long when saving JPEG [#&#8203;6939](https://github.com/python-pillow/Pillow/issues/6939) \[radarhere] - Handle more than one directory returned by pkg-config [#&#8203;6896](https://github.com/python-pillow/Pillow/issues/6896) \[sebastic, radarhere] - Do not retry past formats when loading all formats for the first time [#&#8203;6902](https://github.com/python-pillow/Pillow/issues/6902) \[radarhere] - Do not retry specified formats if they failed when opening [#&#8203;6893](https://github.com/python-pillow/Pillow/issues/6893) \[radarhere] - Do not unintentionally load TIFF format at first [#&#8203;6892](https://github.com/python-pillow/Pillow/issues/6892) \[radarhere] - Stop reading when EPS line becomes too long [#&#8203;6897](https://github.com/python-pillow/Pillow/issues/6897) \[radarhere] - Allow writing IFDRational to BYTE tag [#&#8203;6890](https://github.com/python-pillow/Pillow/issues/6890) \[radarhere] - Raise ValueError for BoxBlur filter with negative radius [#&#8203;6874](https://github.com/python-pillow/Pillow/issues/6874) \[hugovk, radarhere] - Support arbitrary number of loaded modules on Windows [#&#8203;6761](https://github.com/python-pillow/Pillow/issues/6761) \[javidcf, radarhere, nulano] ### [`v9.4.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#940-2023-01-02) [Compare Source](https://github.com/python-pillow/Pillow/compare/9.3.0...9.4.0) - Fixed null pointer dereference crash with malformed font [#&#8203;6846](https://github.com/python-pillow/Pillow/issues/6846) \[wiredfool, radarhere] - Return from ImagingFill early if image has a zero dimension [#&#8203;6842](https://github.com/python-pillow/Pillow/issues/6842) \[radarhere] - Reversed deprecations for Image constants, except for duplicate Resampling attributes [#&#8203;6830](https://github.com/python-pillow/Pillow/issues/6830) \[radarhere] - Improve exception traceback readability [#&#8203;6836](https://github.com/python-pillow/Pillow/issues/6836) \[hugovk, radarhere] - Do not attempt to read IFD1 if absent [#&#8203;6840](https://github.com/python-pillow/Pillow/issues/6840) \[radarhere] - Fixed writing int as ASCII tag [#&#8203;6800](https://github.com/python-pillow/Pillow/issues/6800) \[radarhere] - If available, use wl-paste or xclip for grabclipboard() on Linux [#&#8203;6783](https://github.com/python-pillow/Pillow/issues/6783) \[radarhere] - Added signed option when saving JPEG2000 images [#&#8203;6709](https://github.com/python-pillow/Pillow/issues/6709) \[radarhere] - Patch OpenJPEG to include ARM64 fix [#&#8203;6718](https://github.com/python-pillow/Pillow/issues/6718) \[radarhere] - Added support for I;16 modes in putdata() [#&#8203;6825](https://github.com/python-pillow/Pillow/issues/6825) \[radarhere] - Added conversion from RGBa to RGB [#&#8203;6708](https://github.com/python-pillow/Pillow/issues/6708) \[radarhere] - Added DDS support for uncompressed L and LA images [#&#8203;6820](https://github.com/python-pillow/Pillow/issues/6820) \[radarhere, REDxEYE] - Added LightSource tag values to ExifTags [#&#8203;6749](https://github.com/python-pillow/Pillow/issues/6749) \[radarhere] - Fixed PyAccess after changing ICO size [#&#8203;6821](https://github.com/python-pillow/Pillow/issues/6821) \[radarhere] - Do not use EXIF from info when saving PNG images [#&#8203;6819](https://github.com/python-pillow/Pillow/issues/6819) \[radarhere] - Fixed saving EXIF data to MPO [#&#8203;6817](https://github.com/python-pillow/Pillow/issues/6817) \[radarhere] - Added Exif hide_offsets() [#&#8203;6762](https://github.com/python-pillow/Pillow/issues/6762) \[radarhere] - Only compare to previous frame when checking for duplicate GIF frames while saving [#&#8203;6787](https://github.com/python-pillow/Pillow/issues/6787) \[radarhere] - Always initialize all plugins in registered_extensions() [#&#8203;6811](https://github.com/python-pillow/Pillow/issues/6811) \[radarhere] - Ignore non-opaque WebP background when saving as GIF [#&#8203;6792](https://github.com/python-pillow/Pillow/issues/6792) \[radarhere] - Only set tile in ImageFile **setstate** [#&#8203;6793](https://github.com/python-pillow/Pillow/issues/6793) \[radarhere] - When reading BLP, do not trust JPEG decoder to determine image is CMYK [#&#8203;6767](https://github.com/python-pillow/Pillow/issues/6767) \[radarhere] - Added IFD enum to ExifTags [#&#8203;6748](https://github.com/python-pillow/Pillow/issues/6748) \[radarhere] - Fixed bug combining GIF frame durations [#&#8203;6779](https://github.com/python-pillow/Pillow/issues/6779) \[radarhere] - Support saving JPEG comments [#&#8203;6774](https://github.com/python-pillow/Pillow/issues/6774) \[smason, radarhere] - Added getxmp() to WebPImagePlugin [#&#8203;6758](https://github.com/python-pillow/Pillow/issues/6758) \[radarhere] - Added "exact" option when saving WebP [#&#8203;6747](https://github.com/python-pillow/Pillow/issues/6747) \[ashafaei, radarhere] - Use fractional coordinates when drawing text [#&#8203;6722](https://github.com/python-pillow/Pillow/issues/6722) \[radarhere] - Fixed writing int as BYTE tag [#&#8203;6740](https://github.com/python-pillow/Pillow/issues/6740) \[radarhere] - Added MP Format Version when saving MPO [#&#8203;6735](https://github.com/python-pillow/Pillow/issues/6735) \[radarhere] - Added Interop to ExifTags [#&#8203;6724](https://github.com/python-pillow/Pillow/issues/6724) \[radarhere] - CVE-2007-4559 patch when building on Windows [#&#8203;6704](https://github.com/python-pillow/Pillow/issues/6704) \[TrellixVulnTeam, nulano, radarhere] - Fix compiler warning: accessing 64 bytes in a region of size 48 [#&#8203;6714](https://github.com/python-pillow/Pillow/issues/6714) \[wiredfool] - Use verbose flag for pip install [#&#8203;6713](https://github.com/python-pillow/Pillow/issues/6713) \[wiredfool, radarhere] ### [`v9.3.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#930-2022-10-29) [Compare Source](https://github.com/python-pillow/Pillow/compare/9.2.0...9.3.0) - Limit SAMPLESPERPIXEL to avoid runtime DOS [#&#8203;6700](https://github.com/python-pillow/Pillow/issues/6700) \[wiredfool] - Initialize libtiff buffer when saving [#&#8203;6699](https://github.com/python-pillow/Pillow/issues/6699) \[radarhere] - Inline fname2char to fix memory leak [#&#8203;6329](https://github.com/python-pillow/Pillow/issues/6329) \[nulano] - Fix memory leaks related to text features [#&#8203;6330](https://github.com/python-pillow/Pillow/issues/6330) \[nulano] - Use double quotes for version check on old CPython on Windows [#&#8203;6695](https://github.com/python-pillow/Pillow/issues/6695) \[hugovk] - Remove backup implementation of Round for Windows platforms [#&#8203;6693](https://github.com/python-pillow/Pillow/issues/6693) \[cgohlke] - Fixed set_variation_by_name offset [#&#8203;6445](https://github.com/python-pillow/Pillow/issues/6445) \[radarhere] - Fix malloc in \_imagingft.c:font_setvaraxes [#&#8203;6690](https://github.com/python-pillow/Pillow/issues/6690) \[cgohlke] - Release Python GIL when converting images using matrix operations [#&#8203;6418](https://github.com/python-pillow/Pillow/issues/6418) \[hmaarrfk] - Added ExifTags enums [#&#8203;6630](https://github.com/python-pillow/Pillow/issues/6630) \[radarhere] - Do not modify previous frame when calculating delta in PNG [#&#8203;6683](https://github.com/python-pillow/Pillow/issues/6683) \[radarhere] - Added support for reading BMP images with RLE4 compression [#&#8203;6674](https://github.com/python-pillow/Pillow/issues/6674) \[npjg, radarhere] - Decode JPEG compressed BLP1 data in original mode [#&#8203;6678](https://github.com/python-pillow/Pillow/issues/6678) \[radarhere] - Added GPS TIFF tag info [#&#8203;6661](https://github.com/python-pillow/Pillow/issues/6661) \[radarhere] - Added conversion between RGB/RGBA/RGBX and LAB [#&#8203;6647](https://github.com/python-pillow/Pillow/issues/6647) \[radarhere] - Do not attempt normalization if mode is already normal [#&#8203;6644](https://github.com/python-pillow/Pillow/issues/6644) \[radarhere] - Fixed seeking to an L frame in a GIF [#&#8203;6576](https://github.com/python-pillow/Pillow/issues/6576) \[radarhere] - Consider all frames when selecting mode for PNG save_all [#&#8203;6610](https://github.com/python-pillow/Pillow/issues/6610) \[radarhere] - Don't reassign crc on ChunkStream close [#&#8203;6627](https://github.com/python-pillow/Pillow/issues/6627) \[wiredfool, radarhere] - Raise a warning if NumPy failed to raise an error during conversion [#&#8203;6594](https://github.com/python-pillow/Pillow/issues/6594) \[radarhere] - Show all frames in ImageShow [#&#8203;6611](https://github.com/python-pillow/Pillow/issues/6611) \[radarhere] - Allow FLI palette chunk to not be first [#&#8203;6626](https://github.com/python-pillow/Pillow/issues/6626) \[radarhere] - If first GIF frame has transparency for RGB_ALWAYS loading strategy, use RGBA mode [#&#8203;6592](https://github.com/python-pillow/Pillow/issues/6592) \[radarhere] - Round box position to integer when pasting embedded color [#&#8203;6517](https://github.com/python-pillow/Pillow/issues/6517) \[radarhere, nulano] - Removed EXIF prefix when saving WebP [#&#8203;6582](https://github.com/python-pillow/Pillow/issues/6582) \[radarhere] - Pad IM palette to 768 bytes when saving [#&#8203;6579](https://github.com/python-pillow/Pillow/issues/6579) \[radarhere] - Added DDS BC6H reading [#&#8203;6449](https://github.com/python-pillow/Pillow/issues/6449) \[ShadelessFox, REDxEYE, radarhere] - Added support for opening WhiteIsZero 16-bit integer TIFF images [#&#8203;6642](https://github.com/python-pillow/Pillow/issues/6642) \[JayWiz, radarhere] - Raise an error when allocating translucent color to RGB palette [#&#8203;6654](https://github.com/python-pillow/Pillow/issues/6654) \[jsbueno, radarhere] - Added reading of TIFF child images [#&#8203;6569](https://github.com/python-pillow/Pillow/issues/6569) \[radarhere] - Improved ImageOps palette handling [#&#8203;6596](https://github.com/python-pillow/Pillow/issues/6596) \[PososikTeam, radarhere] - Defer parsing of palette into colors [#&#8203;6567](https://github.com/python-pillow/Pillow/issues/6567) \[radarhere] - Apply transparency to P images in ImageTk.PhotoImage [#&#8203;6559](https://github.com/python-pillow/Pillow/issues/6559) \[radarhere] - Use rounding in ImageOps contain() and pad() [#&#8203;6522](https://github.com/python-pillow/Pillow/issues/6522) \[bibinhashley, radarhere] - Fixed GIF remapping to palette with duplicate entries [#&#8203;6548](https://github.com/python-pillow/Pillow/issues/6548) \[radarhere] - Allow remap_palette() to return an image with less than 256 palette entries [#&#8203;6543](https://github.com/python-pillow/Pillow/issues/6543) \[radarhere] - Corrected BMP and TGA palette size when saving [#&#8203;6500](https://github.com/python-pillow/Pillow/issues/6500) \[radarhere] - Do not call load() before draft() in Image.thumbnail [#&#8203;6539](https://github.com/python-pillow/Pillow/issues/6539) \[radarhere] - Copy palette when converting from P to PA [#&#8203;6497](https://github.com/python-pillow/Pillow/issues/6497) \[radarhere] - Allow RGB and RGBA values for PA image putpixel [#&#8203;6504](https://github.com/python-pillow/Pillow/issues/6504) \[radarhere] - Removed support for tkinter in PyPy before Python 3.6 [#&#8203;6551](https://github.com/python-pillow/Pillow/issues/6551) \[nulano] - Do not use CCITTFaxDecode filter if libtiff is not available [#&#8203;6518](https://github.com/python-pillow/Pillow/issues/6518) \[radarhere] - Fallback to not using mmap if buffer is not large enough [#&#8203;6510](https://github.com/python-pillow/Pillow/issues/6510) \[radarhere] - Fixed writing bytes as ASCII tag [#&#8203;6493](https://github.com/python-pillow/Pillow/issues/6493) \[radarhere] - Open 1 bit EPS in mode 1 [#&#8203;6499](https://github.com/python-pillow/Pillow/issues/6499) \[radarhere] - Removed support for tkinter before Python 1.5.2 [#&#8203;6549](https://github.com/python-pillow/Pillow/issues/6549) \[radarhere] - Allow default ImageDraw font to be set [#&#8203;6484](https://github.com/python-pillow/Pillow/issues/6484) \[radarhere, hugovk] - Save 1 mode PDF using CCITTFaxDecode filter [#&#8203;6470](https://github.com/python-pillow/Pillow/issues/6470) \[radarhere] - Added support for RGBA PSD images [#&#8203;6481](https://github.com/python-pillow/Pillow/issues/6481) \[radarhere] - Parse orientation from XMP tag contents [#&#8203;6463](https://github.com/python-pillow/Pillow/issues/6463) \[bigcat88, radarhere] - Added support for reading ATI1/ATI2 (BC4/BC5) DDS images [#&#8203;6457](https://github.com/python-pillow/Pillow/issues/6457) \[REDxEYE, radarhere] - Do not clear GIF tile when checking number of frames [#&#8203;6455](https://github.com/python-pillow/Pillow/issues/6455) \[radarhere] - Support saving multiple MPO frames [#&#8203;6444](https://github.com/python-pillow/Pillow/issues/6444) \[radarhere] - Do not double quote Pillow version for setuptools >= 60 [#&#8203;6450](https://github.com/python-pillow/Pillow/issues/6450) \[radarhere] - Added ABGR BMP mask mode [#&#8203;6436](https://github.com/python-pillow/Pillow/issues/6436) \[radarhere] - Fixed PSDraw rectangle [#&#8203;6429](https://github.com/python-pillow/Pillow/issues/6429) \[radarhere] - Raise ValueError if PNG sRGB chunk is truncated [#&#8203;6431](https://github.com/python-pillow/Pillow/issues/6431) \[radarhere] - Handle missing Python executable in ImageShow on macOS [#&#8203;6416](https://github.com/python-pillow/Pillow/issues/6416) \[bryant1410, radarhere] ### [`v9.2.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#920-2022-07-01) [Compare Source](https://github.com/python-pillow/Pillow/compare/9.1.1...9.2.0) - Deprecate ImageFont.getsize and related functions [#&#8203;6381](https://github.com/python-pillow/Pillow/issues/6381) \[nulano, radarhere] - Fixed null check for fribidi_version_info in FriBiDi shim [#&#8203;6376](https://github.com/python-pillow/Pillow/issues/6376) \[nulano] - Added GIF decompression bomb check [#&#8203;6402](https://github.com/python-pillow/Pillow/issues/6402) \[radarhere] - Handle PCF fonts files with less than 256 characters [#&#8203;6386](https://github.com/python-pillow/Pillow/issues/6386) \[dawidcrivelli, radarhere] - Improved GIF optimize condition [#&#8203;6378](https://github.com/python-pillow/Pillow/issues/6378) \[raygard, radarhere] - Reverted to **array_interface** with the release of NumPy 1.23 [#&#8203;6394](https://github.com/python-pillow/Pillow/issues/6394) \[radarhere] - Pad PCX palette to 768 bytes when saving [#&#8203;6391](https://github.com/python-pillow/Pillow/issues/6391) \[radarhere] - Fixed bug with rounding pixels to palette colors [#&#8203;6377](https://github.com/python-pillow/Pillow/issues/6377) \[btrekkie, radarhere] - Use gnome-screenshot on Linux if available [#&#8203;6361](https://github.com/python-pillow/Pillow/issues/6361) \[radarhere, nulano] - Fixed loading L mode BMP RLE8 images [#&#8203;6384](https://github.com/python-pillow/Pillow/issues/6384) \[radarhere] - Fixed incorrect operator in ImageCms error [#&#8203;6370](https://github.com/python-pillow/Pillow/issues/6370) \[LostBenjamin, hugovk, radarhere] - Limit FPX tile size to avoid extending outside image [#&#8203;6368](https://github.com/python-pillow/Pillow/issues/6368) \[radarhere] - Added support for decoding plain PPM formats [#&#8203;5242](https://github.com/python-pillow/Pillow/issues/5242) \[Piolie, radarhere] - Added apply_transparency() [#&#8203;6352](https://github.com/python-pillow/Pillow/issues/6352) \[radarhere] - Fixed behaviour change from endian fix [#&#8203;6197](https://github.com/python-pillow/Pillow/issues/6197) \[radarhere] - Allow remapping P images with RGBA palettes [#&#8203;6350](https://github.com/python-pillow/Pillow/issues/6350) \[radarhere] - Fixed drawing translucent 1px high polygons [#&#8203;6278](https://github.com/python-pillow/Pillow/issues/6278) \[radarhere] - Pad COLORMAP to 768 items when saving TIFF [#&#8203;6232](https://github.com/python-pillow/Pillow/issues/6232) \[radarhere] - Fix P -> PA conversion [#&#8203;6337](https://github.com/python-pillow/Pillow/issues/6337) \[RedShy, radarhere] - Once exif data is parsed, do not reload unless it changes [#&#8203;6335](https://github.com/python-pillow/Pillow/issues/6335) \[radarhere] - Only try to connect discontiguous corners at the end of edges [#&#8203;6303](https://github.com/python-pillow/Pillow/issues/6303) \[radarhere] - Improve transparency handling when saving GIF images [#&#8203;6176](https://github.com/python-pillow/Pillow/issues/6176) \[radarhere] - Do not update GIF frame position until local image is found [#&#8203;6219](https://github.com/python-pillow/Pillow/issues/6219) \[radarhere] - Netscape GIF extension belongs after the global color table [#&#8203;6211](https://github.com/python-pillow/Pillow/issues/6211) \[radarhere] - Only write GIF comments at the beginning of the file [#&#8203;6300](https://github.com/python-pillow/Pillow/issues/6300) \[raygard, radarhere] - Separate multiple GIF comment blocks with newlines [#&#8203;6294](https://github.com/python-pillow/Pillow/issues/6294) \[raygard, radarhere] - Always use GIF89a for comments [#&#8203;6292](https://github.com/python-pillow/Pillow/issues/6292) \[raygard, radarhere] - Ignore compression value from BMP info dictionary when saving as TIFF [#&#8203;6231](https://github.com/python-pillow/Pillow/issues/6231) \[radarhere] - If font is file-like object, do not re-read from object to get variant [#&#8203;6234](https://github.com/python-pillow/Pillow/issues/6234) \[radarhere] - Raise ValueError when trying to access internal fp after close [#&#8203;6213](https://github.com/python-pillow/Pillow/issues/6213) \[radarhere] - Support more affine expression forms in im.point() [#&#8203;6254](https://github.com/python-pillow/Pillow/issues/6254) \[benrg, radarhere] - Populate Python palette in fromarray() [#&#8203;6283](https://github.com/python-pillow/Pillow/issues/6283) \[radarhere] - Raise ValueError if PNG chunks are truncated [#&#8203;6253](https://github.com/python-pillow/Pillow/issues/6253) \[radarhere] - Use durations from each frame by default when saving GIFs [#&#8203;6265](https://github.com/python-pillow/Pillow/issues/6265) \[radarhere] - Adjust BITSPERSAMPLE to match SAMPLESPERPIXEL when opening TIFFs [#&#8203;6270](https://github.com/python-pillow/Pillow/issues/6270) \[radarhere] - Search pkgconf system libs/cflags [#&#8203;6138](https://github.com/python-pillow/Pillow/issues/6138) \[jameshilliard, radarhere] - Raise ValueError for invalid PPM maxval [#&#8203;6242](https://github.com/python-pillow/Pillow/issues/6242) \[radarhere] - Corrected screencapture argument in ImageGrab.grab() [#&#8203;6244](https://github.com/python-pillow/Pillow/issues/6244) \[axt-one] - Deprecate support for Qt 5 (PyQt5 and PySide2) [#&#8203;6237](https://github.com/python-pillow/Pillow/issues/6237) \[hugovk, radarhere] - Increase wait time of temporary file deletion on Windows [#&#8203;6224](https://github.com/python-pillow/Pillow/issues/6224) \[AlexTedeschi] - Deprecate FreeTypeFont.getmask2 fill parameter [#&#8203;6220](https://github.com/python-pillow/Pillow/issues/6220) \[nulano, radarhere, hugovk] - Round lut values where necessary [#&#8203;6188](https://github.com/python-pillow/Pillow/issues/6188) \[radarhere] - Load before getting size in resize() [#&#8203;6190](https://github.com/python-pillow/Pillow/issues/6190) \[radarhere] - Load image before performing size calculations in thumbnail() [#&#8203;6186](https://github.com/python-pillow/Pillow/issues/6186) \[radarhere] - Deprecated PhotoImage.paste() box parameter [#&#8203;6178](https://github.com/python-pillow/Pillow/issues/6178) \[radarhere] ### [`v9.1.1`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#911-2022-05-17) [Compare Source](https://github.com/python-pillow/Pillow/compare/9.1.0...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 [#&#8203;6269](https://github.com/python-pillow/Pillow/issues/6269) \[radarhere] ### [`v9.1.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#910-2022-04-01) [Compare Source](https://github.com/python-pillow/Pillow/compare/9.0.1...9.1.0) - Add support for multiple component transformation to JPEG2000 [#&#8203;5500](https://github.com/python-pillow/Pillow/issues/5500) \[scaramallion, radarhere, hugovk] - Fix loading FriBiDi on Alpine [#&#8203;6165](https://github.com/python-pillow/Pillow/issues/6165) \[nulano] - Added setting for converting GIF P frames to RGB [#&#8203;6150](https://github.com/python-pillow/Pillow/issues/6150) \[radarhere] - Allow 1 mode images to be inverted [#&#8203;6034](https://github.com/python-pillow/Pillow/issues/6034) \[radarhere] - Raise ValueError when trying to save empty JPEG [#&#8203;6159](https://github.com/python-pillow/Pillow/issues/6159) \[radarhere] - Always save TIFF with contiguous planar configuration [#&#8203;5973](https://github.com/python-pillow/Pillow/issues/5973) \[radarhere] - Connected discontiguous polygon corners [#&#8203;5980](https://github.com/python-pillow/Pillow/issues/5980) \[radarhere] - Ensure Tkinter hook is activated for getimage() [#&#8203;6032](https://github.com/python-pillow/Pillow/issues/6032) \[radarhere] - Use screencapture arguments to crop on macOS [#&#8203;6152](https://github.com/python-pillow/Pillow/issues/6152) \[radarhere] - Do not mark L mode JPEG as 1 bit in PDF [#&#8203;6151](https://github.com/python-pillow/Pillow/issues/6151) \[radarhere] - Added support for reading I;16R TIFF images [#&#8203;6132](https://github.com/python-pillow/Pillow/issues/6132) \[radarhere] - If an error occurs after creating a file, remove the file [#&#8203;6134](https://github.com/python-pillow/Pillow/issues/6134) \[radarhere] - Fixed calling DisplayViewer or XVViewer without a title [#&#8203;6136](https://github.com/python-pillow/Pillow/issues/6136) \[radarhere] - Retain RGBA transparency when saving multiple GIF frames [#&#8203;6128](https://github.com/python-pillow/Pillow/issues/6128) \[radarhere] - Save additional ICO frames with other bit depths if supplied [#&#8203;6122](https://github.com/python-pillow/Pillow/issues/6122) \[radarhere] - Handle EXIF data truncated to just the header [#&#8203;6124](https://github.com/python-pillow/Pillow/issues/6124) \[radarhere] - Added support for reading BMP images with RLE8 compression [#&#8203;6102](https://github.com/python-pillow/Pillow/issues/6102) \[radarhere] - Support Python distributions where \_tkinter is compiled in [#&#8203;6006](https://github.com/python-pillow/Pillow/issues/6006) \[lukegb] - Added support for PPM arbitrary maxval [#&#8203;6119](https://github.com/python-pillow/Pillow/issues/6119) \[radarhere] - Added BigTIFF reading [#&#8203;6097](https://github.com/python-pillow/Pillow/issues/6097) \[radarhere] - When converting, clip I;16 to be unsigned, not signed [#&#8203;6112](https://github.com/python-pillow/Pillow/issues/6112) \[radarhere] - Fixed loading L mode GIF with transparency [#&#8203;6086](https://github.com/python-pillow/Pillow/issues/6086) \[radarhere] - Improved handling of PPM header [#&#8203;5121](https://github.com/python-pillow/Pillow/issues/5121) \[Piolie, radarhere] - Reset size when seeking away from "Large Thumbnail" MPO frame [#&#8203;6101](https://github.com/python-pillow/Pillow/issues/6101) \[radarhere] - Replace requirements.txt with extras [#&#8203;6072](https://github.com/python-pillow/Pillow/issues/6072) \[hugovk, radarhere] - Added PyEncoder and support BLP saving [#&#8203;6069](https://github.com/python-pillow/Pillow/issues/6069) \[radarhere] - Handle TGA images with packets that cross scan lines [#&#8203;6087](https://github.com/python-pillow/Pillow/issues/6087) \[radarhere] - Added FITS reading [#&#8203;6056](https://github.com/python-pillow/Pillow/issues/6056) \[radarhere, hugovk] - Added rawmode argument to Image.getpalette() [#&#8203;6061](https://github.com/python-pillow/Pillow/issues/6061) \[radarhere] - Fixed BUFR, GRIB and HDF5 stub saving [#&#8203;6071](https://github.com/python-pillow/Pillow/issues/6071) \[radarhere] - Do not automatically remove temporary ImageShow files on Unix [#&#8203;6045](https://github.com/python-pillow/Pillow/issues/6045) \[radarhere] - Correctly read JPEG compressed BLP images [#&#8203;4685](https://github.com/python-pillow/Pillow/issues/4685) \[Meithal, radarhere] - Merged \_MODE_CONV typ into ImageMode as typestr [#&#8203;6057](https://github.com/python-pillow/Pillow/issues/6057) \[radarhere] - Consider palette size when converting and in getpalette() [#&#8203;6060](https://github.com/python-pillow/Pillow/issues/6060) \[radarhere] - Added enums [#&#8203;5954](https://github.com/python-pillow/Pillow/issues/5954) \[radarhere] - Ensure image is opaque after converting P to PA with RGB palette [#&#8203;6052](https://github.com/python-pillow/Pillow/issues/6052) \[radarhere] - Attach RGBA palettes from putpalette() when suitable [#&#8203;6054](https://github.com/python-pillow/Pillow/issues/6054) \[radarhere] - Added get_photoshop_blocks() to parse Photoshop TIFF tag [#&#8203;6030](https://github.com/python-pillow/Pillow/issues/6030) \[radarhere] - Drop excess values in BITSPERSAMPLE [#&#8203;6041](https://github.com/python-pillow/Pillow/issues/6041) \[mikhail-iurkov] - Added unpacker from RGBA;15 to RGB [#&#8203;6031](https://github.com/python-pillow/Pillow/issues/6031) \[radarhere] - Enable arm64 for MSVC on Windows [#&#8203;5811](https://github.com/python-pillow/Pillow/issues/5811) \[gaborkertesz-linaro, gaborkertesz] - Keep IPython/Jupyter text/plain output stable [#&#8203;5891](https://github.com/python-pillow/Pillow/issues/5891) \[shamrin, radarhere] - Raise an error when performing a negative crop [#&#8203;5972](https://github.com/python-pillow/Pillow/issues/5972) \[radarhere, hugovk] - Deprecated show_file "file" argument in favour of "path" [#&#8203;5959](https://github.com/python-pillow/Pillow/issues/5959) \[radarhere] - Fixed SPIDER images for use with Bio-formats library [#&#8203;5956](https://github.com/python-pillow/Pillow/issues/5956) \[radarhere] - Ensure duplicated file pointer is closed [#&#8203;5946](https://github.com/python-pillow/Pillow/issues/5946) \[radarhere] - Added specific error if path coordinate type is incorrect [#&#8203;5942](https://github.com/python-pillow/Pillow/issues/5942) \[radarhere] - Return an empty bytestring from tobytes() for an empty image [#&#8203;5938](https://github.com/python-pillow/Pillow/issues/5938) \[radarhere] - Remove readonly from Image.**eq** [#&#8203;5930](https://github.com/python-pillow/Pillow/issues/5930) \[hugovk] ### [`v9.0.1`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#901-2022-02-03) [Compare Source](https://github.com/python-pillow/Pillow/compare/9.0.0...9.0.1) - In show_file, use os.remove to remove temporary images. CVE-2022-24303 [#&#8203;6010](https://github.com/python-pillow/Pillow/issues/6010) \[radarhere, hugovk] - Restrict builtins within lambdas for ImageMath.eval. CVE-2022-22817 [#&#8203;6009](https://github.com/python-pillow/Pillow/issues/6009) \[radarhere] ### [`v9.0.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#900-2022-01-02) [Compare Source](https://github.com/python-pillow/Pillow/compare/8.4.0...9.0.0) - Restrict builtins for ImageMath.eval(). CVE-2022-22817 [#&#8203;5923](https://github.com/python-pillow/Pillow/issues/5923) \[radarhere] - Ensure JpegImagePlugin stops at the end of a truncated file [#&#8203;5921](https://github.com/python-pillow/Pillow/issues/5921) \[radarhere] - Fixed ImagePath.Path array handling. CVE-2022-22815, CVE-2022-22816 [#&#8203;5920](https://github.com/python-pillow/Pillow/issues/5920) \[radarhere] - Remove consecutive duplicate tiles that only differ by their offset [#&#8203;5919](https://github.com/python-pillow/Pillow/issues/5919) \[radarhere] - Improved I;16 operations on big endian [#&#8203;5901](https://github.com/python-pillow/Pillow/issues/5901) \[radarhere] - Limit quantized palette to number of colors [#&#8203;5879](https://github.com/python-pillow/Pillow/issues/5879) \[radarhere] - Fixed palette index for zeroed color in FASTOCTREE quantize [#&#8203;5869](https://github.com/python-pillow/Pillow/issues/5869) \[radarhere] - When saving RGBA to GIF, make use of first transparent palette entry [#&#8203;5859](https://github.com/python-pillow/Pillow/issues/5859) \[radarhere] - Pass SAMPLEFORMAT to libtiff [#&#8203;5848](https://github.com/python-pillow/Pillow/issues/5848) \[radarhere] - Added rounding when converting P and PA [#&#8203;5824](https://github.com/python-pillow/Pillow/issues/5824) \[radarhere] - Improved putdata() documentation and data handling [#&#8203;5910](https://github.com/python-pillow/Pillow/issues/5910) \[radarhere] - Exclude carriage return in PDF regex to help prevent ReDoS [#&#8203;5912](https://github.com/python-pillow/Pillow/issues/5912) \[hugovk] - Fixed freeing pointer in ImageDraw.Outline.transform [#&#8203;5909](https://github.com/python-pillow/Pillow/issues/5909) \[radarhere] - Added ImageShow support for xdg-open [#&#8203;5897](https://github.com/python-pillow/Pillow/issues/5897) \[m-shinder, radarhere] - Support 16-bit grayscale ImageQt conversion [#&#8203;5856](https://github.com/python-pillow/Pillow/issues/5856) \[cmbruns, radarhere] - Convert subsequent GIF frames to RGB or RGBA [#&#8203;5857](https://github.com/python-pillow/Pillow/issues/5857) \[radarhere] - Do not prematurely return in ImageFile when saving to stdout [#&#8203;5665](https://github.com/python-pillow/Pillow/issues/5665) \[infmagic2047, radarhere] - Added support for top right and bottom right TGA orientations [#&#8203;5829](https://github.com/python-pillow/Pillow/issues/5829) \[radarhere] - Corrected ICNS file length in header [#&#8203;5845](https://github.com/python-pillow/Pillow/issues/5845) \[radarhere] - Block tile TIFF tags when saving [#&#8203;5839](https://github.com/python-pillow/Pillow/issues/5839) \[radarhere] - Added line width argument to polygon [#&#8203;5694](https://github.com/python-pillow/Pillow/issues/5694) \[radarhere] - Do not redeclare class each time when converting to NumPy [#&#8203;5844](https://github.com/python-pillow/Pillow/issues/5844) \[radarhere] - Only prevent repeated polygon pixels when drawing with transparency [#&#8203;5835](https://github.com/python-pillow/Pillow/issues/5835) \[radarhere] - Add support for pickling TrueType fonts [#&#8203;5826](https://github.com/python-pillow/Pillow/issues/5826) \[hugovk, radarhere] - Only prefer command line tools SDK on macOS over default MacOSX SDK [#&#8203;5828](https://github.com/python-pillow/Pillow/issues/5828) \[radarhere] - Drop support for soon-EOL Python 3.6 [#&#8203;5768](https://github.com/python-pillow/Pillow/issues/5768) \[hugovk, nulano, radarhere] - Fix compilation on 64-bit Termux [#&#8203;5793](https://github.com/python-pillow/Pillow/issues/5793) \[landfillbaby] - Use title for display in ImageShow [#&#8203;5788](https://github.com/python-pillow/Pillow/issues/5788) \[radarhere] - Remove support for FreeType 2.7 and older [#&#8203;5777](https://github.com/python-pillow/Pillow/issues/5777) \[hugovk, radarhere] - Fix for PyQt6 [#&#8203;5775](https://github.com/python-pillow/Pillow/issues/5775) \[hugovk, radarhere] - Removed deprecated PILLOW_VERSION, Image.show command parameter, Image.\_showxv and ImageFile.raise_ioerror [#&#8203;5776](https://github.com/python-pillow/Pillow/issues/5776) \[radarhere] ### [`v8.4.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#840-2021-10-15) [Compare Source](https://github.com/python-pillow/Pillow/compare/8.3.2...8.4.0) - Prefer global transparency in GIF when replacing with background color [#&#8203;5756](https://github.com/python-pillow/Pillow/issues/5756) \[radarhere] - Added "exif" keyword argument to TIFF saving [#&#8203;5575](https://github.com/python-pillow/Pillow/issues/5575) \[radarhere] - Copy Python palette to new image in quantize() [#&#8203;5696](https://github.com/python-pillow/Pillow/issues/5696) \[radarhere] - Read ICO AND mask from end [#&#8203;5667](https://github.com/python-pillow/Pillow/issues/5667) \[radarhere] - Actually check the framesize in FliDecode.c [#&#8203;5659](https://github.com/python-pillow/Pillow/issues/5659) \[wiredfool] - Determine JPEG2000 mode purely from ihdr header box [#&#8203;5654](https://github.com/python-pillow/Pillow/issues/5654) \[radarhere] - Fixed using info dictionary when writing multiple APNG frames [#&#8203;5611](https://github.com/python-pillow/Pillow/issues/5611) \[radarhere] - Allow saving 1 and L mode TIFF with PhotometricInterpretation 0 [#&#8203;5655](https://github.com/python-pillow/Pillow/issues/5655) \[radarhere] - For GIF save_all with palette, do not include palette with each frame [#&#8203;5603](https://github.com/python-pillow/Pillow/issues/5603) \[radarhere] - Keep transparency when converting from P to LA or PA [#&#8203;5606](https://github.com/python-pillow/Pillow/issues/5606) \[radarhere] - Copy palette to new image in transform() [#&#8203;5647](https://github.com/python-pillow/Pillow/issues/5647) \[radarhere] - Added "transparency" argument to EpsImagePlugin load() [#&#8203;5620](https://github.com/python-pillow/Pillow/issues/5620) \[radarhere] - Corrected pathlib.Path detection when saving [#&#8203;5633](https://github.com/python-pillow/Pillow/issues/5633) \[radarhere] - Added WalImageFile class [#&#8203;5618](https://github.com/python-pillow/Pillow/issues/5618) \[radarhere] - Consider I;16 pixel size when drawing text [#&#8203;5598](https://github.com/python-pillow/Pillow/issues/5598) \[radarhere] - If default conversion from P is RGB with transparency, convert to RGBA [#&#8203;5594](https://github.com/python-pillow/Pillow/issues/5594) \[radarhere] - Speed up rotating square images by 90 or 270 degrees [#&#8203;5646](https://github.com/python-pillow/Pillow/issues/5646) \[radarhere] - Add support for reading DPI information from JPEG2000 images \[rogermb, radarhere] - Catch TypeError from corrupted DPI value in EXIF [#&#8203;5639](https://github.com/python-pillow/Pillow/issues/5639) \[homm, radarhere] - Do not close file pointer when saving SGI images [#&#8203;5645](https://github.com/python-pillow/Pillow/issues/5645) \[farizrahman4u, radarhere] - Deprecate ImagePalette size parameter [#&#8203;5641](https://github.com/python-pillow/Pillow/issues/5641) \[radarhere, hugovk] - Prefer command line tools SDK on macOS [#&#8203;5624](https://github.com/python-pillow/Pillow/issues/5624) \[radarhere] - Added tags when saving YCbCr TIFF [#&#8203;5597](https://github.com/python-pillow/Pillow/issues/5597) \[radarhere] - PSD layer count may be negative [#&#8203;5613](https://github.com/python-pillow/Pillow/issues/5613) \[radarhere] - Fixed ImageOps expand with tuple border on P image [#&#8203;5615](https://github.com/python-pillow/Pillow/issues/5615) \[radarhere] - Fixed error saving APNG with duplicate frames and different duration times [#&#8203;5609](https://github.com/python-pillow/Pillow/issues/5609) \[thak1411, radarhere] ### [`v8.3.2`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#832-2021-09-02) [Compare Source](https://github.com/python-pillow/Pillow/compare/8.3.1...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 [#&#8203;5569](https://github.com/python-pillow/Pillow/issues/5569), [#&#8203;5570](https://github.com/python-pillow/Pillow/issues/5570) \[hugovk, radarhere] - Ensure TIFF `RowsPerStrip` is multiple of 8 for JPEG compression [#&#8203;5588](https://github.com/python-pillow/Pillow/issues/5588) \[kmilos, radarhere] - Updates for `ImagePalette` channel order [#&#8203;5599](https://github.com/python-pillow/Pillow/issues/5599) \[radarhere] - Hide FriBiDi shim symbols to avoid conflict with real FriBiDi library [#&#8203;5651](https://github.com/python-pillow/Pillow/issues/5651) \[nulano] ### [`v8.3.1`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#831-2021-07-06) [Compare Source](https://github.com/python-pillow/Pillow/compare/8.3.0...8.3.1) - Catch OSError when checking if fp is sys.stdout [#&#8203;5585](https://github.com/python-pillow/Pillow/issues/5585) \[radarhere] - Handle removing orientation from alternate types of EXIF data [#&#8203;5584](https://github.com/python-pillow/Pillow/issues/5584) \[radarhere] - Make Image.**array** take optional dtype argument [#&#8203;5572](https://github.com/python-pillow/Pillow/issues/5572) \[t-vi, radarhere] ### [`v8.3.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#830-2021-07-01) [Compare Source](https://github.com/python-pillow/Pillow/compare/8.2.0...8.3.0) - Use snprintf instead of sprintf. CVE-2021-34552 [#&#8203;5567](https://github.com/python-pillow/Pillow/issues/5567) \[radarhere] - Limit TIFF strip size when saving with LibTIFF [#&#8203;5514](https://github.com/python-pillow/Pillow/issues/5514) \[kmilos] - Allow ICNS save on all operating systems [#&#8203;4526](https://github.com/python-pillow/Pillow/issues/4526) \[baletu, radarhere, newpanjing, hugovk] - De-zigzag JPEG's DQT when loading; deprecate convert_dict_qtables [#&#8203;4989](https://github.com/python-pillow/Pillow/issues/4989) \[gofr, radarhere] - Replaced xml.etree.ElementTree [#&#8203;5565](https://github.com/python-pillow/Pillow/issues/5565) \[radarhere] - Moved CVE image to pillow-depends [#&#8203;5561](https://github.com/python-pillow/Pillow/issues/5561) \[radarhere] - Added tag data for IFD groups [#&#8203;5554](https://github.com/python-pillow/Pillow/issues/5554) \[radarhere] - Improved ImagePalette [#&#8203;5552](https://github.com/python-pillow/Pillow/issues/5552) \[radarhere] - Add DDS saving [#&#8203;5402](https://github.com/python-pillow/Pillow/issues/5402) \[radarhere] - Improved getxmp() [#&#8203;5455](https://github.com/python-pillow/Pillow/issues/5455) \[radarhere] - Convert to float for comparison with float in IFDRational **eq** [#&#8203;5412](https://github.com/python-pillow/Pillow/issues/5412) \[radarhere] - Allow getexif() to access TIFF tag_v2 data [#&#8203;5416](https://github.com/python-pillow/Pillow/issues/5416) \[radarhere] - Read FITS image mode and size [#&#8203;5405](https://github.com/python-pillow/Pillow/issues/5405) \[radarhere] - Merge parallel horizontal edges in ImagingDrawPolygon [#&#8203;5347](https://github.com/python-pillow/Pillow/issues/5347) \[radarhere, hrdrq] - Use transparency behind first GIF frame and when disposing to background [#&#8203;5557](https://github.com/python-pillow/Pillow/issues/5557) \[radarhere, zewt] - Avoid unstable nature of qsort in Quant.c [#&#8203;5367](https://github.com/python-pillow/Pillow/issues/5367) \[radarhere] - Copy palette to new images in ImageOps expand [#&#8203;5551](https://github.com/python-pillow/Pillow/issues/5551) \[radarhere] - Ensure palette string matches RGB mode [#&#8203;5549](https://github.com/python-pillow/Pillow/issues/5549) \[radarhere] - Do not modify EXIF of original image instance in exif_transpose() [#&#8203;5547](https://github.com/python-pillow/Pillow/issues/5547) \[radarhere] - Fixed default numresolution for small JPEG2000 images [#&#8203;5540](https://github.com/python-pillow/Pillow/issues/5540) \[radarhere] - Added DDS BC5 reading [#&#8203;5501](https://github.com/python-pillow/Pillow/issues/5501) \[radarhere] - Raise an error if ImageDraw.textbbox is used without a TrueType font [#&#8203;5510](https://github.com/python-pillow/Pillow/issues/5510) \[radarhere] - Added ICO saving in BMP format [#&#8203;5513](https://github.com/python-pillow/Pillow/issues/5513) \[radarhere] - Ensure PNG seeks to end of previous chunk at start of load_end [#&#8203;5493](https://github.com/python-pillow/Pillow/issues/5493) \[radarhere] - Do not allow TIFF to seek to a past frame [#&#8203;5473](https://github.com/python-pillow/Pillow/issues/5473) \[radarhere] - Avoid race condition when displaying images with eog [#&#8203;5507](https://github.com/python-pillow/Pillow/issues/5507) \[mconst] - Added specific error messages when ink has incorrect number of bands [#&#8203;5504](https://github.com/python-pillow/Pillow/issues/5504) \[radarhere] - Allow converting an image to a numpy array to raise errors [#&#8203;5379](https://github.com/python-pillow/Pillow/issues/5379) \[radarhere] - Removed DPI rounding from BMP, JPEG, PNG and WMF loading [#&#8203;5476](https://github.com/python-pillow/Pillow/issues/5476), [#&#8203;5470](https://github.com/python-pillow/Pillow/issues/5470) \[radarhere] - Remove spikes when drawing thin pieslices [#&#8203;5460](https://github.com/python-pillow/Pillow/issues/5460) \[xtsm] - Updated default value for SAMPLESPERPIXEL TIFF tag [#&#8203;5452](https://github.com/python-pillow/Pillow/issues/5452) \[radarhere] - Removed TIFF DPI rounding [#&#8203;5446](https://github.com/python-pillow/Pillow/issues/5446) \[radarhere, hugovk] - Include code in WebP error [#&#8203;5471](https://github.com/python-pillow/Pillow/issues/5471) \[radarhere] - Do not alter pixels outside mask when drawing text on an image with transparency [#&#8203;5434](https://github.com/python-pillow/Pillow/issues/5434) \[radarhere] - Reset handle when seeking backwards in TIFF [#&#8203;5443](https://github.com/python-pillow/Pillow/issues/5443) \[radarhere] - Replace sys.stdout with sys.stdout.buffer when saving [#&#8203;5437](https://github.com/python-pillow/Pillow/issues/5437) \[radarhere] - Fixed UNDEFINED TIFF tag of length 0 being changed in roundtrip [#&#8203;5426](https://github.com/python-pillow/Pillow/issues/5426) \[radarhere] - Fixed bug when checking FreeType2 version if it is not installed [#&#8203;5445](https://github.com/python-pillow/Pillow/issues/5445) \[radarhere] - Do not round dimensions when saving PDF [#&#8203;5459](https://github.com/python-pillow/Pillow/issues/5459) \[radarhere] - Added ImageOps contain() [#&#8203;5417](https://github.com/python-pillow/Pillow/issues/5417) \[radarhere, hugovk] - Changed WebP default "method" value to 4 [#&#8203;5450](https://github.com/python-pillow/Pillow/issues/5450) \[radarhere] - Switched to saving 1-bit PDFs with DCTDecode [#&#8203;5430](https://github.com/python-pillow/Pillow/issues/5430) \[radarhere] - Use bpp from ICO header [#&#8203;5429](https://github.com/python-pillow/Pillow/issues/5429) \[radarhere] - Corrected JPEG APP14 transform value [#&#8203;5408](https://github.com/python-pillow/Pillow/issues/5408) \[radarhere] - Changed TIFF tag 33723 length to 1 [#&#8203;5425](https://github.com/python-pillow/Pillow/issues/5425) \[radarhere] - Changed ImageMorph incorrect mode errors to ValueError [#&#8203;5414](https://github.com/python-pillow/Pillow/issues/5414) \[radarhere] - Add EXIF tags specified in EXIF 2.32 [#&#8203;5419](https://github.com/python-pillow/Pillow/issues/5419) \[gladiusglad] - Treat previous contents of first GIF frame as transparent [#&#8203;5391](https://github.com/python-pillow/Pillow/issues/5391) \[radarhere] - For special image modes, revert default resize resampling to NEAREST [#&#8203;5411](https://github.com/python-pillow/Pillow/issues/5411) \[radarhere] - JPEG2000: Support decoding subsampled RGB and YCbCr images [#&#8203;4996](https://github.com/python-pillow/Pillow/issues/4996) \[nulano, radarhere] - Stop decoding BC1 punchthrough alpha in BC2&3 [#&#8203;4144](https://github.com/python-pillow/Pillow/issues/4144) \[jansol] - Use zero if GIF background color index is missing [#&#8203;5390](https://github.com/python-pillow/Pillow/issues/5390) \[radarhere] - Fixed ensuring that GIF previous frame was loaded [#&#8203;5386](https://github.com/python-pillow/Pillow/issues/5386) \[radarhere] - Valgrind fixes [#&#8203;5397](https://github.com/python-pillow/Pillow/issues/5397) \[wiredfool] - Round down the radius in rounded_rectangle [#&#8203;5382](https://github.com/python-pillow/Pillow/issues/5382) \[radarhere] - Fixed reading uncompressed RGB data from DDS [#&#8203;5383](https://github.com/python-pillow/Pillow/issues/5383) \[radarhere] ### [`v8.2.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#820-2021-04-01) [Compare Source](https://github.com/python-pillow/Pillow/compare/8.1.2...8.2.0) - Added getxmp() method [#&#8203;5144](https://github.com/python-pillow/Pillow/issues/5144) \[UrielMaD, radarhere] - Add ImageShow support for GraphicsMagick [#&#8203;5349](https://github.com/python-pillow/Pillow/issues/5349) \[latosha-maltba, radarhere] - Do not load transparent pixels from subsequent GIF frames [#&#8203;5333](https://github.com/python-pillow/Pillow/issues/5333) \[zewt, radarhere] - Use LZW encoding when saving GIF images [#&#8203;5291](https://github.com/python-pillow/Pillow/issues/5291) \[raygard] - Set all transparent colors to be equal in quantize() [#&#8203;5282](https://github.com/python-pillow/Pillow/issues/5282) \[radarhere] - Allow PixelAccess to use Python **int** when parsing x and y [#&#8203;5206](https://github.com/python-pillow/Pillow/issues/5206) \[radarhere] - Removed Image.\_MODEINFO [#&#8203;5316](https://github.com/python-pillow/Pillow/issues/5316) \[radarhere] - Add preserve_tone option to autocontrast [#&#8203;5350](https://github.com/python-pillow/Pillow/issues/5350) \[elejke, radarhere] - Fixed linear_gradient and radial_gradient I and F modes [#&#8203;5274](https://github.com/python-pillow/Pillow/issues/5274) \[radarhere] - Add support for reading TIFFs with PlanarConfiguration=2 [#&#8203;5364](https://github.com/python-pillow/Pillow/issues/5364) \[kkopachev, wiredfool, nulano] - Deprecated categories [#&#8203;5351](https://github.com/python-pillow/Pillow/issues/5351) \[radarhere] - Do not premultiply alpha when resizing with Image.NEAREST resampling [#&#8203;5304](https://github.com/python-pillow/Pillow/issues/5304) \[nulano] - Dynamically link FriBiDi instead of Raqm [#&#8203;5062](https://github.com/python-pillow/Pillow/issues/5062) \[nulano] - Allow fewer PNG palette entries than the bit depth maximum when saving [#&#8203;5330](https://github.com/python-pillow/Pillow/issues/5330) \[radarhere] - Use duration from info dictionary when saving WebP [#&#8203;5338](https://github.com/python-pillow/Pillow/issues/5338) \[radarhere] - Stop flattening EXIF IFD into getexif() [#&#8203;4947](https://github.com/python-pillow/Pillow/issues/4947) \[radarhere, kkopachev] - Replaced tiff_deflate with tiff_adobe_deflate compression when saving TIFF images [#&#8203;5343](https://github.com/python-pillow/Pillow/issues/5343) \[radarhere] - Save ICC profile from TIFF encoderinfo [#&#8203;5321](https://github.com/python-pillow/Pillow/issues/5321) \[radarhere] - Moved RGB fix inside ImageQt class [#&#8203;5268](https://github.com/python-pillow/Pillow/issues/5268) \[radarhere] - Allow alpha_composite destination to be negative [#&#8203;5313](https://github.com/python-pillow/Pillow/issues/5313) \[radarhere] - Ensure file is closed if it is opened by ImageQt.ImageQt [#&#8203;5260](https://github.com/python-pillow/Pillow/issues/5260) \[radarhere] - Added ImageDraw rounded_rectangle method [#&#8203;5208](https://github.com/python-pillow/Pillow/issues/5208) \[radarhere] - Added IPythonViewer [#&#8203;5289](https://github.com/python-pillow/Pillow/issues/5289) \[radarhere, Kipkurui-mutai] - Only draw each rectangle outline pixel once [#&#8203;5183](https://github.com/python-pillow/Pillow/issues/5183) \[radarhere] - Use mmap instead of built-in Win32 mapper [#&#8203;5224](https://github.com/python-pillow/Pillow/issues/5224) \[radarhere, cgohlke] - Handle PCX images with an odd stride [#&#8203;5214](https://github.com/python-pillow/Pillow/issues/5214) \[radarhere] - Only read different sizes for "Large Thumbnail" MPO frames [#&#8203;5168](https://github.com/python-pillow/Pillow/issues/5168) \[radarhere] - Added PyQt6 support [#&#8203;5258](https://github.com/python-pillow/Pillow/issues/5258) \[radarhere] - Changed Image.open formats parameter to be case-insensitive [#&#8203;5250](https://github.com/python-pillow/Pillow/issues/5250) \[Piolie, radarhere] - Deprecate Tk/Tcl 8.4, to be removed in Pillow 10 (2023-07-01) [#&#8203;5216](https://github.com/python-pillow/Pillow/issues/5216) \[radarhere] - Added tk version to pilinfo [#&#8203;5226](https://github.com/python-pillow/Pillow/issues/5226) \[radarhere, nulano] - Support for ignoring tests when running valgrind [#&#8203;5150](https://github.com/python-pillow/Pillow/issues/5150) \[wiredfool, radarhere, hugovk] - OSS-Fuzz support [#&#8203;5189](https://github.com/python-pillow/Pillow/issues/5189) \[wiredfool, radarhere] ### [`v8.1.2`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#812-2021-03-06) [Compare Source](https://github.com/python-pillow/Pillow/compare/8.1.1...8.1.2) - Fix Memory DOS in BLP (CVE-2021-27921), ICNS (CVE-2021-27922) and ICO (CVE-2021-27923) Image Plugins \[wiredfool] ### [`v8.1.1`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#811-2021-03-01) [Compare Source](https://github.com/python-pillow/Pillow/compare/8.1.0...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 [#&#8203;5194](https://github.com/python-pillow/Pillow/issues/5194) \[radarhere] ### [`v8.1.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#810-2021-01-02) [Compare Source](https://github.com/python-pillow/Pillow/compare/8.0.1...8.1.0) - Fix TIFF OOB Write error. CVE-2020-35654 [#&#8203;5175](https://github.com/python-pillow/Pillow/issues/5175) \[wiredfool] - Fix for Read Overflow in PCX Decoding. CVE-2020-35653 [#&#8203;5174](https://github.com/python-pillow/Pillow/issues/5174) \[wiredfool, radarhere] - Fix for SGI Decode buffer overrun. CVE-2020-35655 [#&#8203;5173](https://github.com/python-pillow/Pillow/issues/5173) \[wiredfool, radarhere] - Fix OOB Read when saving GIF of xsize=1 [#&#8203;5149](https://github.com/python-pillow/Pillow/issues/5149) \[wiredfool] - Makefile updates [#&#8203;5159](https://github.com/python-pillow/Pillow/issues/5159) \[wiredfool, radarhere] - Add support for PySide6 [#&#8203;5161](https://github.com/python-pillow/Pillow/issues/5161) \[hugovk] - Use disposal settings from previous frame in APNG [#&#8203;5126](https://github.com/python-pillow/Pillow/issues/5126) \[radarhere] - Added exception explaining that *repr_png* saves to PNG [#&#8203;5139](https://github.com/python-pillow/Pillow/issues/5139) \[radarhere] - Use previous disposal method in GIF load_end [#&#8203;5125](https://github.com/python-pillow/Pillow/issues/5125) \[radarhere] - Allow putpalette to accept 1024 integers to include alpha values [#&#8203;5089](https://github.com/python-pillow/Pillow/issues/5089) \[radarhere] - Fix OOB Read when writing TIFF with custom Metadata [#&#8203;5148](https://github.com/python-pillow/Pillow/issues/5148) \[wiredfool] - Added append_images support for ICO [#&#8203;4568](https://github.com/python-pillow/Pillow/issues/4568) \[ziplantil, radarhere] - Block TIFFTAG_SUBIFD [#&#8203;5120](https://github.com/python-pillow/Pillow/issues/5120) \[radarhere] - Fixed dereferencing potential null pointers [#&#8203;5108](https://github.com/python-pillow/Pillow/issues/5108), [#&#8203;5111](https://github.com/python-pillow/Pillow/issues/5111) \[cgohlke, radarhere] - Deprecate FreeType 2.7 [#&#8203;5098](https://github.com/python-pillow/Pillow/issues/5098) \[hugovk, radarhere] - Moved warning to end of execution [#&#8203;4965](https://github.com/python-pillow/Pillow/issues/4965) \[radarhere] - Removed unused fromstring and tostring C methods [#&#8203;5026](https://github.com/python-pillow/Pillow/issues/5026) \[radarhere] - init() if one of the formats is unrecognised [#&#8203;5037](https://github.com/python-pillow/Pillow/issues/5037) \[radarhere] - Moved string_dimension CVE image to pillow-depends [#&#8203;4993](https://github.com/python-pillow/Pillow/issues/4993) \[radarhere] - Support raw rgba8888 for DDS [#&#8203;4760](https://github.com/python-pillow/Pillow/issues/4760) \[qiankanglai] ### [`v8.0.1`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#801-2020-10-22) [Compare Source](https://github.com/python-pillow/Pillow/compare/8.0.0...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 [#&#8203;4993](https://github.com/python-pillow/Pillow/issues/4993) \[radarhere] ### [`v8.0.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#800-2020-10-15) [Compare Source](https://github.com/python-pillow/Pillow/compare/7.2.0...8.0.0) - Drop support for EOL Python 3.5 [#&#8203;4746](https://github.com/python-pillow/Pillow/issues/4746), [#&#8203;4794](https://github.com/python-pillow/Pillow/issues/4794) \[hugovk, radarhere, nulano] - Drop support for PyPy3 < 7.2.0 [#&#8203;4964](https://github.com/python-pillow/Pillow/issues/4964) \[nulano] - Remove ImageCms.CmsProfile attributes deprecated since 3.2.0 [#&#8203;4768](https://github.com/python-pillow/Pillow/issues/4768) \[hugovk, radarhere] - Remove long-deprecated Image.py functions [#&#8203;4798](https://github.com/python-pillow/Pillow/issues/4798) \[hugovk, nulano, radarhere] - Add support for 16-bit precision JPEG quantization values [#&#8203;4918](https://github.com/python-pillow/Pillow/issues/4918) \[gofr] - Added reading of IFD tag type [#&#8203;4979](https://github.com/python-pillow/Pillow/issues/4979) \[radarhere] - Initialize offset memory for PyImagingPhotoPut [#&#8203;4806](https://github.com/python-pillow/Pillow/issues/4806) \[nqbit] - Fix TiffDecode comparison warnings [#&#8203;4756](https://github.com/python-pillow/Pillow/issues/4756) \[nulano] - Docs: Add dark mode [#&#8203;4968](https://github.com/python-pillow/Pillow/issues/4968) \[hugovk, nulano] - Added macOS SDK install path to library and include directories [#&#8203;4974](https://github.com/python-pillow/Pillow/issues/4974) \[radarhere, fxcoudert] - Imaging.h: prevent confusion with system [#&#8203;4923](https://github.com/python-pillow/Pillow/issues/4923) \[ax3l, ,radarhere] - Avoid using pkg_resources in PIL.features.pilinfo [#&#8203;4975](https://github.com/python-pillow/Pillow/issues/4975) \[nulano] - Add getlength and getbbox functions for TrueType fonts [#&#8203;4959](https://github.com/python-pillow/Pillow/issues/4959) \[nulano, radarhere, hugovk] - Allow tuples with one item to give single color value in getink [#&#8203;4927](https://github.com/python-pillow/Pillow/issues/4927) \[radarhere, nulano] - Add support for CBDT and COLR fonts [#&#8203;4955](https://github.com/python-pillow/Pillow/issues/4955) \[nulano, hugovk] - Removed OSError in favour of DecompressionBombError for BMP [#&#8203;4966](https://github.com/python-pillow/Pillow/issues/4966) \[radarhere] - Implemented another ellipse drawing algorithm [#&#8203;4523](https://github.com/python-pillow/Pillow/issues/4523) \[xtsm, radarhere] - Removed unused JpegImagePlugin.\_fixup_dict function [#&#8203;4957](https://github.com/python-pillow/Pillow/issues/4957) \[radarhere] - Added reading and writing of private PNG chunks [#&#8203;4292](https://github.com/python-pillow/Pillow/issues/4292) \[radarhere] - Implement anchor for TrueType fonts [#&#8203;4930](https://github.com/python-pillow/Pillow/issues/4930) \[nulano, hugovk] - Fixed bug in Exif **delitem** [#&#8203;4942](https://github.com/python-pillow/Pillow/issues/4942) \[radarhere] - Fix crash in ImageTk.PhotoImage on MinGW 64-bit [#&#8203;4946](https://github.com/python-pillow/Pillow/issues/4946) \[nulano] - Moved CVE images to pillow-depends [#&#8203;4929](https://github.com/python-pillow/Pillow/issues/4929) \[radarhere] - Refactor font_getsize and font_render [#&#8203;4910](https://github.com/python-pillow/Pillow/issues/4910) \[nulano] - Fixed loading profile with non-ASCII path on Windows [#&#8203;4914](https://github.com/python-pillow/Pillow/issues/4914) \[radarhere] - Fixed effect_spread bug for zero distance [#&#8203;4908](https://github.com/python-pillow/Pillow/issues/4908) \[radarhere, hugovk] - Added formats parameter to Image.open [#&#8203;4837](https://github.com/python-pillow/Pillow/issues/4837) \[nulano, radarhere] - Added regular_polygon draw method [#&#8203;4846](https://github.com/python-pillow/Pillow/issues/4846) \[comhar] - Raise proper TypeError in putpixel [#&#8203;4882](https://github.com/python-pillow/Pillow/issues/4882) \[nulano, hugovk] - Added writing of subIFDs [#&#8203;4862](https://github.com/python-pillow/Pillow/issues/4862) \[radarhere] - Fix IFDRational **eq** bug [#&#8203;4888](https://github.com/python-pillow/Pillow/issues/4888) \[luphord, radarhere] - Fixed duplicate variable name [#&#8203;4885](https://github.com/python-pillow/Pillow/issues/4885) \[liZe, radarhere] - Added homebrew zlib include directory [#&#8203;4842](https://github.com/python-pillow/Pillow/issues/4842) \[radarhere] - Corrected inverted PDF CMYK colors [#&#8203;4866](https://github.com/python-pillow/Pillow/issues/4866) \[radarhere] - Do not try to close file pointer if file pointer is empty [#&#8203;4823](https://github.com/python-pillow/Pillow/issues/4823) \[radarhere] - ImageOps.autocontrast: add mask parameter [#&#8203;4843](https://github.com/python-pillow/Pillow/issues/4843) \[navneeth, hugovk] - Read EXIF data tEXt chunk into info as bytes instead of string [#&#8203;4828](https://github.com/python-pillow/Pillow/issues/4828) \[radarhere] - Replaced distutils with setuptools [#&#8203;4797](https://github.com/python-pillow/Pillow/issues/4797), [#&#8203;4809](https://github.com/python-pillow/Pillow/issues/4809), [#&#8203;4814](https://github.com/python-pillow/Pillow/issues/4814), [#&#8203;4817](https://github.com/python-pillow/Pillow/issues/4817), [#&#8203;4829](https://github.com/python-pillow/Pillow/issues/4829), [#&#8203;4890](https://github.com/python-pillow/Pillow/issues/4890) \[hugovk, radarhere] - Add MIME type to PsdImagePlugin [#&#8203;4788](https://github.com/python-pillow/Pillow/issues/4788) \[samamorgan] - Allow ImageOps.autocontrast to specify low and high cutoffs separately [#&#8203;4749](https://github.com/python-pillow/Pillow/issues/4749) \[millionhz, radarhere] ### [`v7.2.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#720-2020-07-01) [Compare Source](https://github.com/python-pillow/Pillow/compare/7.1.2...7.2.0) - Do not convert I;16 images when showing PNGs [#&#8203;4744](https://github.com/python-pillow/Pillow/issues/4744) \[radarhere] - Fixed ICNS file pointer saving [#&#8203;4741](https://github.com/python-pillow/Pillow/issues/4741) \[radarhere] - Fixed loading non-RGBA mode APNGs with dispose background [#&#8203;4742](https://github.com/python-pillow/Pillow/issues/4742) \[radarhere] - Deprecated \_showxv [#&#8203;4714](https://github.com/python-pillow/Pillow/issues/4714) \[radarhere] - Deprecate Image.show(command="...") [#&#8203;4646](https://github.com/python-pillow/Pillow/issues/4646) \[nulano, hugovk, radarhere] - Updated JPEG magic number [#&#8203;4707](https://github.com/python-pillow/Pillow/issues/4707) \[Cykooz, radarhere] - Change STRIPBYTECOUNTS to LONG if necessary when saving [#&#8203;4626](https://github.com/python-pillow/Pillow/issues/4626) \[radarhere, hugovk] - Write JFIF header when saving JPEG [#&#8203;4639](https://github.com/python-pillow/Pillow/issues/4639) \[radarhere] - Replaced tiff_jpeg with jpeg compression when saving TIFF images [#&#8203;4627](https://github.com/python-pillow/Pillow/issues/4627) \[radarhere] - Writing TIFF tags: improved BYTE, added UNDEFINED [#&#8203;4605](https://github.com/python-pillow/Pillow/issues/4605) \[radarhere] - Consider transparency when pasting text on an RGBA image [#&#8203;4566](https://github.com/python-pillow/Pillow/issues/4566) \[radarhere] - Added method argument to single frame WebP saving [#&#8203;4547](https://github.com/python-pillow/Pillow/issues/4547) \[radarhere] - Use ImageFileDirectory_v2 in Image.Exif [#&#8203;4637](https://github.com/python-pillow/Pillow/issues/4637) \[radarhere] - Corrected reading EXIF metadata without prefix [#&#8203;4677](https://github.com/python-pillow/Pillow/issues/4677) \[radarhere] - Fixed drawing a jointed line with a sequence of numeric values [#&#8203;4580](https://github.com/python-pillow/Pillow/issues/4580) \[radarhere] - Added support for 1-D NumPy arrays [#&#8203;4608](https://github.com/python-pillow/Pillow/issues/4608) \[radarhere] - Parse orientation from XMP tags [#&#8203;4560](https://github.com/python-pillow/Pillow/issues/4560) \[radarhere] - Speed up text layout by not rendering glyphs [#&#8203;4652](https://github.com/python-pillow/Pillow/issues/4652) \[nulano] - Fixed ZeroDivisionError in Image.thumbnail [#&#8203;4625](https://github.com/python-pillow/Pillow/issues/4625) \[radarhere] - Replaced TiffImagePlugin DEBUG with logging [#&#8203;4550](https://github.com/python-pillow/Pillow/issues/4550) \[radarhere] - Fix repeatedly loading .gbr [#&#8203;4620](https://github.com/python-pillow/Pillow/issues/4620) \[ElinksFr, radarhere] - JPEG: Truncate icclist instead of setting to None [#&#8203;4613](https://github.com/python-pillow/Pillow/issues/4613) \[homm] - Fixes default offset for Exif [#&#8203;4594](https://github.com/python-pillow/Pillow/issues/4594) \[rodrigob, radarhere] - Fixed bug when unpickling TIFF images [#&#8203;4565](https://github.com/python-pillow/Pillow/issues/4565) \[radarhere] - Fix pickling WebP [#&#8203;4561](https://github.com/python-pillow/Pillow/issues/4561) \[hugovk, radarhere] - Replace IOError and WindowsError aliases with OSError [#&#8203;4536](https://github.com/python-pillow/Pillow/issues/4536) \[hugovk, radarhere] ### [`v7.1.2`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#712-2020-04-25) [Compare Source](https://github.com/python-pillow/Pillow/compare/7.1.1...7.1.2) - Raise an EOFError when seeking too far in PNG [#&#8203;4528](https://github.com/python-pillow/Pillow/issues/4528) \[radarhere] </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMTQuMSIsInVwZGF0ZWRJblZlciI6IjM3LjI3OC4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
renovate-bot added 1 commit 2024-02-29 19:18:31 +01:00
renovate-bot force-pushed renovate/pillow-10.x from acd74d2af2 to 359b4a8503 2024-04-01 14:18:20 +02:00 Compare
renovate-bot changed title from Update dependency Pillow to v10 to Update dependency Pillow to v10 - autoclosed 2024-04-18 04:17:59 +02:00
renovate-bot closed this pull request 2024-04-18 04:17:59 +02:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Netz39_Vorstand/print-adress-label#6
No description provided.