Skip to content

Update dependency pillow to v11

Ghost User requested to merge renovate/pillow-11.x into master

This MR contains the following updates:

Package Type Update Change
pillow (changelog) dependencies major 3.1.0 -> 11.0.0

Release Notes

python-pillow/Pillow (pillow)

v11.0.0

Compare Source

  • Update licence to MIT-CMU #​8460 [hugovk]

  • Conditionally define ImageCms type hint to avoid requiring core #​8197 [radarhere]

  • Support writing LONG8 offsets in AppendingTiffWriter #​8417 [radarhere]

  • Use ImageFile.MAXBLOCK when saving TIFF images #​8461 [radarhere]

  • Do not close provided file handles with libtiff when saving #​8458 [radarhere]

  • Support ImageFilter.BuiltinFilter for I;16* images #​8438 [radarhere]

  • Use ImagingCore.ptr instead of ImagingCore.id #​8341 [homm, radarhere, hugovk]

  • Updated EPS mode when opening images without transparency #​8281 [Yay295, radarhere]

  • Use transparency when combining P frames from APNGs #​8443 [radarhere]

  • Support all resampling filters when resizing I;16* images #​8422 [radarhere]

  • Free memory on early return #​8413 [radarhere]

  • Cast int before potentially exceeding INT_MAX #​8402 [radarhere]

  • Check image value before use #​8400 [radarhere]

  • Improved copying imagequant libraries #​8420 [radarhere]

  • Use Capsule for WebP saving #​8386 [homm, radarhere]

  • Fixed writing multiple StripOffsets to TIFF #​8317 [Yay295, radarhere]

  • Fix dereference before checking for NULL in ImagingTransformAffine #​8398 [PavlNekrasov]

  • Use transposed size after opening for TIFF images #​8390 [radarhere, homm]

  • Improve ImageFont error messages #​8338 [yngvem, radarhere, hugovk]

  • Mention MAX_TEXT_CHUNK limit in PNG error message #​8391 [radarhere]

  • Cast Dib handle to int #​8385 [radarhere]

  • Accept float stroke widths #​8369 [radarhere]

  • Deprecate ICNS (width, height, scale) sizes in favour of load(scale) #​8352 [radarhere]

  • Improved handling of RGBA palettes when saving GIF images #​8366 [radarhere]

  • Deprecate isImageType #​8364 [radarhere]

  • Support converting more modes to LAB by converting to RGBA first #​8358 [radarhere]

  • Deprecate support for FreeType 2.9.0 #​8356 [hugovk, radarhere]

  • Removed unused TiffImagePlugin IFD_LEGACY_API #​8355 [radarhere]

  • Handle duplicate EXIF header #​8350 [zakajd, radarhere]

  • Return early from BoxBlur if either width or height is zero #​8347 [radarhere]

  • Check text is either string or bytes #​8308 [radarhere]

  • Added writing XMP bytes to JPEG #​8286 [radarhere]

  • Support JPEG2000 RGBA palettes #​8256 [radarhere]

  • Expand C image to match GIF frame image size #​8237 [radarhere]

  • Allow saving I;16 images as PPM #​8231 [radarhere]

  • When IFD is missing, connect get_ifd() dictionary to Exif #​8230 [radarhere]

  • Skip truncated ICO mask if LOAD_TRUNCATED_IMAGES is enabled #​8180 [radarhere]

  • Treat unknown JPEG2000 colorspace as unspecified #​8343 [radarhere]

  • Updated error message when saving WebP with invalid width or height #​8322 [radarhere, hugovk]

  • Remove warning if NumPy failed to raise an error during conversion #​8326 [radarhere]

  • If left and right sides meet in ImageDraw.rounded_rectangle(), do not draw rectangle to fill gap #​8304 [radarhere]

  • Remove WebP support without anim, mux/demux, and with buggy alpha #​8213 [homm, radarhere]

  • Add missing TIFF CMYK;16B reader #​8298 [homm]

  • Remove all WITH_* flags from _imaging.c and other flags #​8211 [homm]

  • Improve ImageDraw2 shape methods #​8265 [radarhere]

  • Lock around usages of imaging memory arenas #​8238 [lysnikolaou]

  • Deprecate JpegImageFile huffman_ac and huffman_dc #​8274 [radarhere]

  • Deprecate ImageMath lambda_eval and unsafe_eval options argument #​8242 [radarhere]

  • Changed ContainerIO to subclass IO #​8240 [radarhere]

  • Move away from APIs that use borrowed references under the free-threaded build #​8216 [hugovk, lysnikolaou]

  • Allow size argument to resize() to be a NumPy array #​8201 [radarhere]

  • Drop support for Python 3.8 #​8183 [hugovk, radarhere]

  • Add support for Python 3.13 #​8181 [hugovk, radarhere]

  • Fix incompatibility with NumPy 1.20 #​8187 [neutrinoceros, radarhere]

  • Remove PSFile, PyAccess and USE_CFFI_ACCESS #​8182 [hugovk, radarhere]

v10.4.0

Compare Source

  • Raise FileNotFoundError if show_file() path does not exist #​8178 [radarhere]

  • Improved reading 16-bit TGA images with colour #​7965 [Yay295, radarhere]

  • Deprecate non-image ImageCms modes #​8031 [radarhere]

  • Fixed processing multiple JPEG EXIF markers #​8127 [radarhere]

  • Do not preserve EXIFIFD tag by default when saving TIFF images #​8110 [radarhere]

  • Added ImageFont.load_default_imagefont() #​8086 [radarhere]

  • Added Image.WARN_POSSIBLE_FORMATS #​8063 [radarhere]

  • Remove zero-byte end padding when parsing any XMP data #​8171 [radarhere]

  • Do not detect Ultra HDR images as MPO #​8056 [radarhere]

  • Raise SyntaxError specific to JP2 #​8146 [Yay295, radarhere]

  • Do not use first frame duration for other frames when saving APNG images #​8104 [radarhere]

  • Consider I;16 pixel size when using a 1 mode mask #​8112 [radarhere]

  • When saving multiple PNG frames, convert to mode rather than raw mode #​8087 [radarhere]

  • Added byte support to FreeTypeFont #​8141 [radarhere]

  • Allow float center for rotate operations #​8114 [radarhere]

  • Do not read layers immediately when opening PSD images #​8039 [radarhere]

  • Restore original thread state #​8065 [radarhere]

  • Read IM and TIFF images as RGB, rather than RGBX #​7997 [radarhere]

  • Only preserve TIFF IPTC_NAA_CHUNK tag if type is BYTE or UNDEFINED #​7948 [radarhere]

  • Clarify ImageDraw2 error message when size is missing #​8165 [radarhere]

  • Support unpacking more rawmodes to RGBA palettes #​7966 [radarhere]

  • Removed support for Qt 5 #​8159 [radarhere]

  • Improve ImageFont.freetype support for XDG directories on Linux #​8135 [mamg22, radarhere]

  • Improved consistency of XMP handling #​8069 [radarhere]

  • Use pkg-config to help find libwebp and raqm #​8142 [radarhere]

  • Accept 't' suffix for libtiff version #​8126, #​8129 [radarhere]

  • Deprecate ImageDraw.getdraw hints parameter #​8124 [radarhere, hugovk]

  • Added ImageDraw circle() #​8085 [void4, hugovk, radarhere]

  • Add mypy target to Makefile #​8077 [Yay295]

  • Added more modes to Image.MODES #​7984 [radarhere]

  • Deprecate BGR;15, BGR;16 and BGR;24 modes #​7978 [radarhere, hugovk]

  • Fix ImagingAccess for I;16N on big-endian #​7921 [Yay295, radarhere]

  • Support reading P mode TIFF images with padding #​7996 [radarhere]

  • Deprecate support for libtiff < 4 #​7998 [radarhere, hugovk]

  • Corrected ImageShow UnixViewer command #​7987 [radarhere]

  • Use functools.cached_property in ImageStat #​7952 [nulano, hugovk, radarhere]

  • Add support for reading BITMAPV2INFOHEADER and BITMAPV3INFOHEADER #​7956 [Cirras, radarhere]

  • Support reading CMYK JPEG2000 images #​7947 [radarhere]

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]

v7.1.1

Compare Source

v7.1.0

Compare Source

  • Fix multiple OOB reads in FLI decoding #​4503 [wiredfool]

  • Fix buffer overflow in SGI-RLE decoding #​4504 [wiredfool, hugovk]

  • Fix bounds overflow in JPEG 2000 decoding #​4505 [wiredfool]

  • Fix bounds overflow in PCX decoding #​4506 [wiredfool]

  • Fix 2 buffer overflows in TIFF decoding #​4507 [wiredfool]

  • Add APNG support #​4243 [pmrowla, radarhere, hugovk]

  • ImageGrab.grab() for Linux with XCB #​4260 [nulano, radarhere]

  • Added three new channel operations #​4230 [dwastberg, radarhere]

  • Prevent masking of Image reduce method in Jpeg2KImagePlugin #​4474 [radarhere, homm]

  • Added reading of earlier ImageMagick PNG EXIF data #​4471 [radarhere]

  • Fixed endian handling for I;16 getextrema #​4457 [radarhere]

  • Release buffer if function returns prematurely #​4381 [radarhere]

  • Add JPEG comment to info dictionary #​4455 [radarhere]

  • Fix size calculation of Image.thumbnail() #​4404 [orlnub123]

  • Fixed stroke on FreeType < 2.9 #​4401 [radarhere]

  • If present, only use alpha channel for bounding box #​4454 [radarhere]

  • Warn if an unknown feature is passed to features.check() #​4438 [jdufresne]

  • Fix Name field length when saving IM images #​4424 [hugovk, radarhere]

  • Allow saving of zero quality JPEG images #​4440 [radarhere]

  • Allow explicit zero width to hide outline #​4334 [radarhere]

  • Change ContainerIO return type to match file object mode #​4297 [jdufresne, radarhere]

  • Only draw each polygon pixel once #​4333 [radarhere]

  • Add support for shooting situation Exif IFD tags #​4398 [alexagv]

  • Handle multiple and malformed JPEG APP13 markers #​4370 [homm]

  • Depends: Update libwebp to 1.1.0 #​4342, libjpeg to 9d #​4352 [radarhere]

v7.0.0

Compare Source

  • Drop support for EOL Python 2.7 #​4109 [hugovk, radarhere, jdufresne]

  • Fix rounding error on RGB to L conversion #​4320 [homm]

  • Exif writing fixes: Rational boundaries and signed/unsigned types #​3980 [kkopachev, radarhere]

  • Allow loading of WMF images at a given DPI #​4311 [radarhere]

  • Added reduce operation #​4251 [homm]

  • Raise ValueError for io.StringIO in Image.open #​4302 [radarhere, hugovk]

  • Fix thumbnail geometry when DCT scaling is used #​4231 [homm, radarhere]

  • Use default DPI when exif provides invalid x_resolution #​4147 [beipang2, radarhere]

  • Change default resize resampling filter from NEAREST to BICUBIC #​4255 [homm]

  • Fixed black lines on upscaled images with the BOX filter #​4278 [homm]

  • Better thumbnail aspect ratio preservation #​4256 [homm]

  • Add La mode packing and unpacking #​4248 [homm]

  • Include tests in coverage reports #​4173 [hugovk]

  • Handle broken Photoshop data #​4239 [radarhere]

  • Raise a specific exception if no data is found for an MPO frame #​4240 [radarhere]

  • Fix Unicode support for PyPy #​4145 [nulano]

  • Added UnidentifiedImageError #​4182 [radarhere, hugovk]

  • Remove deprecated version from plugins #​4197 [hugovk, radarhere]

  • Fixed freeing unallocated pointer when resizing with height too large #​4116 [radarhere]

  • Copy info in Image.transform #​4128 [radarhere]

  • Corrected DdsImagePlugin setting info gamma #​4171 [radarhere]

  • Depends: Update libtiff to 4.1.0 #​4195, Tk Tcl to 8.6.10 #​4229, libimagequant to 2.12.6 #​4318 [radarhere]

  • Improve handling of file resources #​3577 [jdufresne]

  • Removed CI testing of Fedora 29 #​4165 [hugovk]

  • Added pypy3 to tox envlist #​4137 [jdufresne]

  • Drop support for EOL PyQt4 and PySide #​4108 [hugovk, radarhere]

  • Removed deprecated setting of TIFF image sizes #​4114 [radarhere]

  • Removed deprecated PILLOW_VERSION #​4107 [hugovk]

  • Changed default frombuffer raw decoder args #​1730 [radarhere]

v6.2.2

Compare Source

  • This is the last Pillow release to support Python 2.7 #​3642

  • Overflow checks for realloc for tiff decoding. CVE-2020-5310 [wiredfool, radarhere]

  • Catch SGI buffer overrun. CVE-2020-5311 [radarhere]

  • Catch PCX P mode buffer overrun. CVE-2020-5312 [radarhere]

  • Catch FLI buffer overrun. CVE-2020-5313 [radarhere]

  • Raise an error for an invalid number of bands in FPX image. CVE-2019-19911 [wiredfool, radarhere]

v6.2.1

Compare Source

  • Add support for Python 3.8 #​4141 [hugovk]

v6.2.0

Compare Source

  • Catch buffer overruns #​4104 [radarhere]

  • Initialize rows_per_strip when RowsPerStrip tag is missing #​4034 [cgohlke, radarhere]

  • Raise error if TIFF dimension is a string #​4103 [radarhere]

  • Added decompression bomb checks #​4102 [radarhere]

  • Fix ImageGrab.grab DPI scaling on Windows 10 version 1607+ #​4000 [nulano, radarhere]

  • Corrected negative seeks #​4101 [radarhere]

  • Added argument to capture all screens on Windows #​3950 [nulano, radarhere]

  • Updated warning to specify when Image.frombuffer defaults will change #​4086 [radarhere]

  • Changed WindowsViewer format to PNG #​4080 [radarhere]

  • Use TIFF orientation #​4063 [radarhere]

  • Raise the same error if a truncated image is loaded a second time #​3965 [radarhere]

  • Lazily use ImageFileDirectory_v1 values from Exif #​4031 [radarhere]

  • Improved HSV conversion #​4004 [radarhere]

  • Added text stroking #​3978 [radarhere, hugovk]

  • No more deprecated bdist_wininst .exe installers #​4029 [hugovk]

  • Do not allow floodfill to extend into negative coordinates #​4017 [radarhere]

  • Fixed arc drawing bug for a non-whole number of degrees #​4014 [radarhere]

  • Fix bug when merging identical images to GIF with a list of durations #​4003 [djy0, radarhere]

  • Fix bug in TIFF loading of BufferedReader #​3998 [chadawagner]

  • Added fallback for finding ld on MinGW Cygwin #​4019 [radarhere]

  • Remove indirect dependencies from requirements.txt #​3976 [hugovk]

  • Depends: Update libwebp to 1.0.3 #​3983, libimagequant to 2.12.5 #​3993, freetype to 2.10.1 #​3991 [radarhere]

  • Change overflow check to use PY_SSIZE_T_MAX #​3964 [radarhere]

  • Report reason for pytest skips #​3942 [hugovk]

v6.1.0

Compare Source

  • Deprecate Image.del #​3929 [jdufresne]

  • Tiff: Add support for JPEG quality #​3886 [olt]

  • Respect the PKG_CONFIG environment variable when building #​3928 [chewi]

  • Use explicit memcpy() to avoid unaligned memory accesses #​3225 [DerDakon]

  • Improve encoding of TIFF tags #​3861 [olt]

  • Update Py_UNICODE to Py_UCS4 #​3780 [nulano]

  • Consider I;16 pixel size when drawing #​3899 [radarhere]

  • Add TIFFTAG_SAMPLEFORMAT to blocklist #​3926 [cgohlke, radarhere]

  • Create GIF deltas from background colour of GIF frames if disposal mode is 2 #​3708 [sircinnamon, radarhere]

  • Added ImageSequence all_frames #​3778 [radarhere]

  • Use unsigned int to store TIFF IFD offsets #​3923 [cgohlke]

  • Include CPPFLAGS when searching for libraries #​3819 [jefferyto]

  • Updated TIFF tile descriptors to match current decoding functionality #​3795 [dmnisson]

  • Added an image.entropy() method (second revision) #​3608 [fish2000]

  • Pass the correct types to PyArg_ParseTuple #​3880 [QuLogic]

  • Fixed crash when loading non-font bytes #​3912 [radarhere]

  • Fix SPARC memory alignment issues in Pack/Unpack functions #​3858 [kulikjak]

  • Added CMYK;16B and CMYK;16N unpackers #​3913 [radarhere]

  • Fixed bugs in calculating text size #​3864 [radarhere]

  • Add main.py to output basic format and support information #​3870 [jdufresne]

  • Added variation font support #​3802 [radarhere]

  • Do not down-convert if image is LA when showing with PNG format #​3869 [radarhere]

  • Improve handling of PSD frames #​3759 [radarhere]

  • Improved ICO and ICNS loading #​3897 [radarhere]

  • Changed Preview application path so that it is no longer static #​3896 [radarhere]

  • Corrected ttb text positioning #​3856 [radarhere]

  • Handle unexpected ICO image sizes #​3836 [radarhere]

  • Fixed bits value for RGB;16N unpackers #​3837 [kkopachev]

  • Travis CI: Add Fedora 30, remove Fedora 28 #​3821 [hugovk]

  • Added reading of CMYK;16L TIFF images #​3817 [radarhere]

  • Fixed dimensions of 1-bit PDFs #​3827 [radarhere]

  • Fixed opening mmap image through Path on Windows #​3825 [radarhere]

  • Fixed ImageDraw arc gaps #​3824 [radarhere]

  • Expand GIF to include frames with extents outside the image size #​3822 [radarhere]

  • Fixed ImageTk getimage #​3814 [radarhere]

  • Fixed bug in decoding large images #​3791 [radarhere]

  • Fixed reading APP13 marker without Photoshop data #​3771 [radarhere]

  • Added option to include layered windows in ImageGrab.grab on Windows #​3808 [radarhere]

  • Detect libimagequant when installed by pacman on MingW #​3812 [radarhere]

  • Fixed raqm layout bug #​3787 [radarhere]

  • Fixed loading font with non-Unicode path on Windows #​3785 [radarhere]

  • Travis CI: Upgrade PyPy from 6.0.0 to 7.1.1 #​3783 [hugovk, johnthagen]

  • Depends: Updated openjpeg to 2.3.1 #​3794, raqm to 0.7.0 #​3877, libimagequant to 2.12.3 #​3889 [radarhere]

  • Fix numpy bool bug #​3790 [radarhere]

v6.0.0

Compare Source

  • Python 2.7 support will be removed in Pillow 7.0.0 #​3682 [hugovk]

  • Add EXIF class #​3625 [radarhere]

  • Add ImageOps exif_transpose method #​3687 [radarhere]

  • Added warnings to deprecated CMSProfile attributes #​3615 [hugovk]

  • Documented reading TIFF multiframe images #​3720 [akuchling]

  • Improved speed of opening an MPO file #​3658 [Glandos]

  • Update palette in quantize #​3721 [radarhere]

  • Improvements to TIFF is_animated and n_frames #​3714 [radarhere]

  • Fixed incompatible pointer type warnings #​3754 [radarhere]

  • Improvements to PA and LA conversion and palette operations #​3728 [radarhere]

  • Consistent DPI rounding #​3709 [radarhere]

  • Change size of MPO image to match frame #​3588 [radarhere]

  • Read Photoshop resolution data #​3701 [radarhere]

  • Ensure image is mutable before saving #​3724 [radarhere]

  • Correct remap_palette documentation #​3740 [radarhere]

  • Promote P images to PA in putalpha #​3726 [radarhere]

  • Allow RGB and RGBA values for new P images #​3719 [radarhere]

  • Fixed TIFF bug when seeking backwards and then forwards #​3713 [radarhere]

  • Cache EXIF information #​3498 [Glandos]

  • Added transparency for all PNG grayscale modes #​3744 [radarhere]

  • Fix deprecation warnings in Python 3.8 #​3749 [radarhere]

  • Fixed GIF bug when rewinding to a non-zero frame #​3716 [radarhere]

  • Only close original fp in del and exit if original fp is exclusive #​3683 [radarhere]

  • Fix BytesWarning in Tests/test_numpy.py #​3725 [jdufresne]

  • Add missing MIME types and extensions #​3520 [pirate486743186]

  • Add I;16 PNG save #​3566 [radarhere]

  • Add support for BMP RGBA bitfield compression #​3705 [radarhere]

  • Added ability to set language for text rendering #​3693 [iwsfutcmd]

  • Only close exclusive fp on Image exit #​3698 [radarhere]

  • Changed EPS subprocess stdout from devnull to None #​3635 [radarhere]

  • Add reading old-JPEG compressed TIFFs #​3489 [kkopachev]

  • Add EXIF support for PNG #​3674 [radarhere]

  • Add option to set dither param on quantize #​3699 [glasnt]

  • Add reading of DDS uncompressed RGB data #​3673 [radarhere]

  • Correct length of Tiff BYTE tags #​3672 [radarhere]

  • Add DIB saving and loading through Image open #​3691 [radarhere]

  • Removed deprecated VERSION #​3624 [hugovk]

  • Fix 'BytesWarning: Comparison between bytes and string' in PdfDict #​3580 [jdufresne]

  • Do not resize in Image.thumbnail if already the destination size #​3632 [radarhere]

  • Replace .seek() magic numbers with io.SEEK_* constants #​3572 [jdufresne]

  • Make ContainerIO.isatty() return a bool, not int #​3568 [jdufresne]

  • Add support to all transpose operations for I;16 modes #​3563, #​3741 [radarhere]

  • Deprecate support for PyQt4 and PySide #​3655 [hugovk, radarhere]

  • Add TIFF compression codecs: LZMA, Zstd, WebP #​3555 [cgohlke]

  • Fixed pickling of iTXt class with protocol > 1 #​3537 [radarhere]

  • _util.isPath returns True for pathlib.Path objects #​3616 [wbadart]

  • Remove unnecessary unittest.main() boilerplate from test files #​3631 [jdufresne]

  • Exif: Seek to IFD offset #​3584 [radarhere]

  • Deprecate PIL.*ImagePlugin.version attributes #​3628 [jdufresne]

  • Docs: Add note about ImageDraw operations that exceed image bounds #​3620 [radarhere]

  • Allow for unknown PNG chunks after image data #​3558 [radarhere]

  • Changed EPS subprocess stdin from devnull to None #​3611 [radarhere]

  • Fix possible integer overflow #​3609 [cgohlke]

  • Catch BaseException for resource cleanup handlers #​3574 [jdufresne]

  • Improve pytest configuration to allow specific tests as CLI args #​3579 [jdufresne]

  • Drop support for Python 3.4 #​3596 [hugovk]

  • Remove deprecated PIL.OleFileIO #​3598 [hugovk]

  • Remove deprecated ImageOps undocumented functions #​3599 [hugovk]

  • Depends: Update libwebp to 1.0.2 #​3602 [radarhere]

  • Detect MIME types #​3525 [radarhere]

v5.4.1

Compare Source

  • File closing: Only close __fp if not fp #​3540 [radarhere]

  • Fix build for Termux #​3529 [pslacerda]

  • PNG: Detect MIME types #​3525 [radarhere]

  • PNG: Handle IDAT chunks after image end #​3532 [radarhere]

v5.4.0

Compare Source

  • Docs: Improved ImageChops documentation #​3522 [radarhere]

  • Allow RGB and RGBA values for P image putpixel #​3519 [radarhere]

  • Add APNG extension to PNG plugin #​3501 [pirate486743186, radarhere]

  • Lookup ld.so.cache instead of hardcoding search paths #​3245 [pslacerda]

  • Added custom string TIFF tags #​3513 [radarhere]

  • Improve setup.py configuration #​3395 [diorcety]

  • Read textual chunks located after IDAT chunks for PNG #​3506 [radarhere]

  • Performance: Don't try to hash value if enum is empty #​3503 [Glandos]

  • Added custom int and float TIFF tags #​3350 [radarhere]

  • Fixes for issues reported by static code analysis #​3393 [frenzymadness]

  • GIF: Wait until mode is normalized to copy im.info into encoderinfo #​3187 [radarhere]

  • Docs: Add page of deprecations and removals #​3486 [hugovk]

  • Travis CI: Upgrade PyPy from 5.8.0 to 6.0 #​3488 [hugovk]

  • Travis CI: Allow lint job to fail #​3467 [hugovk]

  • Resolve __fp when closing and deleting #​3261 [radarhere]

  • Close exclusive fp before discarding #​3461 [radarhere]

  • Updated open files documentation #​3490 [radarhere]

  • Added libjpeg_turbo to check_feature #​3493 [radarhere]

  • Change color table index background to tuple when saving as WebP #​3471 [radarhere]

  • Allow arbitrary number of comment extension subblocks #​3479 [radarhere]

  • Ensure previous FLI frame is loaded before seeking to the next #​3478 [radarhere]

  • ImageShow improvements #​3450 [radarhere]

  • Depends: Update libimagequant to 2.12.2 #​3442, libtiff to 4.0.10 #​3458, libwebp to 1.0.1 #​3468, Tk Tcl to 8.6.9 #​3465 [radarhere]

  • Check quality_layers type #​3464 [radarhere]

  • Add context manager, del and close methods to TarIO #​3455 [radarhere]

  • Test: Do not play sound when running screencapture command #​3454 [radarhere]

  • Close exclusive fp on open exception #​3456 [radarhere]

  • Only close existing fp in WebP if fp is exclusive #​3418 [radarhere]

  • Docs: Re-add the downloads badge #​3443 [hugovk]

  • Added negative index to PixelAccess #​3406 [Nazime]

  • Change tuple background to global color table index when saving as GIF #​3385 [radarhere]

  • Test: Improved ImageGrab tests #​3424 [radarhere]

  • Flake8 fixes #​3422, #​3440 [radarhere, hugovk]

  • Only ask for YCbCr->RGB libtiff conversion for jpeg-compressed tiffs #​3417 [kkopachev]

  • Optimise ImageOps.fit by combining resize and crop #​3409 [homm]

v5.3.0

Compare Source

  • Changed Image size property to be read-only by default #​3203 [radarhere]

  • Add warnings if image file identification fails due to lack of WebP support #​3169 [radarhere, hugovk]

  • Hide the Ghostscript progress dialog popup on Windows #​3378 [hugovk]

  • Adding support to reading tiled and YcbCr jpeg tiffs through libtiff #​3227 [kkopachev]

  • Fixed None as TIFF compression argument #​3310 [radarhere]

  • Changed GIF seek to remove previous info items #​3324 [radarhere]

  • Improved PDF document info #​3274 [radarhere]

  • Add line width parameter to rectangle and ellipse-based shapes #​3094 [hugovk, radarhere]

  • Fixed decompression bomb check in _crop #​3313 [dinkolubina, hugovk]

  • Added support to ImageDraw.floodfill for non-RGB colors #​3377 [radarhere]

  • Tests: Avoid catching unexpected exceptions in tests #​2203 [jdufresne]

  • Use TextIOWrapper.detach() instead of NoCloseStream #​2214 [jdufresne]

  • Added transparency to matrix conversion #​3205 [radarhere]

  • Added ImageOps pad method #​3364 [radarhere]

  • Give correct extrema for I;16 format images #​3359 [bz2]

  • Added PySide2 #​3279 [radarhere]

  • Corrected TIFF tags #​3369 [radarhere]

  • CI: Install CFFI and pycparser without any PYTHONOPTIMIZE #​3374 [hugovk]

  • Read/Save RGB webp as RGB (instead of RGBX) #​3298 [kkopachev]

  • ImageDraw: Add line joints #​3250 [radarhere]

  • Improved performance of ImageDraw floodfill method #​3294 [yo1995]

  • Fix builds with --parallel #​3272 [hsoft]

  • Add more raw Tiff modes (RGBaX, RGBaXX, RGBAX, RGBAXX) #​3335 [homm]

  • Close existing WebP fp before setting new fp #​3341 [radarhere]

  • Add orientation, compression and id_section as TGA save keyword arguments #​3327 [radarhere]

  • Convert int values of RATIONAL TIFF tags to floats #​3338 [radarhere, wiredfool]

  • Fix code for PYTHONOPTIMIZE #​3233 [hugovk]

  • Changed ImageFilter.Kernel to subclass ImageFilter.BuiltinFilter, instead of the other way around #​3273 [radarhere]

  • Remove unused draw.draw_line, draw.draw_point and font.getabc methods #​3232 [hugovk]

  • Tests: Added ImageFilter tests #​3295 [radarhere]

  • Tests: Added ImageChops tests #​3230 [hugovk, radarhere]

  • AppVeyor: Download lib if not present in pillow-depends #​3316 [radarhere]

  • Travis CI: Add Python 3.7 and Xenial #​3234 [hugovk]

  • Docs: Added documentation for NumPy conversion #​3301 [radarhere]

  • Depends: Update libimagequant to 2.12.1 #​3281 [radarhere]

  • Add three-color support to ImageOps.colorize #​3242 [tsennott]

  • Tests: Add LA to TGA test modes #​3222 [danpla]

  • Skip outline if the draw operation fills with the same colour #​2922 [radarhere]

  • Flake8 fixes #​3173, #​3380 [radarhere]

  • Avoid deprecated 'U' mode when opening files #​2187 [jdufresne]

v5.2.0

Compare Source

  • Fixed saving a multiframe image as a single frame PDF #​3137 [radarhere]

  • If a Qt version is already imported, attempt to use it first #​3143 [radarhere]

  • Fix transform fill color for alpha images #​3147 [fozcode]

  • TGA: Add support for writing RLE data #​3186 [danpla]

  • TGA: Read and write LA data #​3178 [danpla]

  • QuantOctree.c: Remove erroneous attempt to average over an empty range #​3196 [tkoeppe]

  • Changed ICNS format tests to pass on OS X 10.11 #​3202 [radarhere]

  • Fixed bug in ImageDraw.multiline_textsize() #​3114 [tianyu139]

  • Added getsize_multiline support for PIL.ImageFont #​3113 [tianyu139]

  • Added ImageFile get_format_mimetype method #​3190 [radarhere]

  • Changed mmap file pointer to use context manager #​3216 [radarhere]

  • Changed ellipse point calculations to be more evenly distributed #​3142 [radarhere]

  • Only extract first Exif segment #​2946 [hugovk]

  • Tests: Test ImageDraw2, WalImageFile #​3135, #​2989 [hugovk]

  • Remove unnecessary '#if 0' code #​3075 [hugovk]

  • Tests: Added GD tests #​1817 [radarhere]

  • Fix collections ABCs DeprecationWarning in Python 3.7 #​3123 [hugovk]

  • unpack_from is faster than unpack of slice #​3201 [landfillbaby]

  • Docs: Add coordinate system links and file handling links in documentation #​3204, #​3214 [radarhere]

  • Tests: TestFilePng: Fix test_save_l_transparency() #​3182 [danpla]

  • Docs: Correct argument name #​3171 [radarhere]

  • Docs: Update CMake download URL #​3166 [radarhere]

  • Docs: Improve Image.transform documentation #​3164 [radarhere]

  • Fix transform fillcolor argument when image mode is RGBA or LA #​3163 [radarhere]

  • Tests: More specific Exception testing #​3158 [radarhere]

  • Add getrgb HSB/HSV color strings #​3148 [radarhere]

  • Allow float values in getrgb HSL color string #​3146 [radarhere]

  • AppVeyor: Upgrade to Python 2.7.15 and 3.4.4 #​3140 [radarhere]

  • AppVeyor: Upgrade to PyPy 6.0.0 #​3133 [hugovk]

  • Deprecate PILLOW_VERSION and VERSION #​3090 [hugovk]

  • Support Python 3.7 #​3076 [hugovk]

  • Depends: Update freetype to 2.9.1, libjpeg to 9c, libwebp to 1.0.0 #​3121, #​3136, #​3108 [radarhere]

  • Build macOS wheels with Xcode 6.4, supporting older macOS versions #​3068 [wiredfool]

  • Fix _i2f compilation on some GCC versions #​3067 [homm]

  • Changed encoderinfo to have priority over info when saving GIF images #​3086 [radarhere]

  • Rename PIL.version to PIL._version and remove it from module #​3083 [homm]

  • Enable background colour parameter on rotate #​3057 [storesource]

  • Remove unnecessary #if 1 directive #​3072 [jdufresne]

  • Remove unused Python class, Path #​3070 [jdufresne]

  • Fix dereferencing type-punned pointer will break strict-aliasing #​3069 [jdufresne]

v5.1.0

Compare Source

  • Close fp before return in ImagingSavePPM #​3061 [kathryndavies]

  • Added documentation for ICNS append_images #​3051 [radarhere]

  • Docs: Move intro text below its header #​3021 [hugovk]

  • CI: Rename appveyor.yml as .appveyor.yml #​2978 [hugovk]

  • Fix TypeError for JPEG2000 parser feed #​3042 [hugovk]

  • Certain corrupted jpegs can result in no data read #​3023 [kkopachev]

  • Add support for BLP file format #​3007 [jleclanche]

  • Simplify version checks #​2998 [hugovk]

  • Fix "invalid escape sequence" warning on Python 3.6+ #​2996 [timgraham]

  • Allow append_images to set .icns scaled images #​3005 [radarhere]

  • Support appending to existing PDFs #​2965 [vashek]

  • Fix and improve efficient saving of ICNS on macOS #​3004 [radarhere]

  • Build: Enable pip cache in AppVeyor build #​3009 [thijstriemstra]

  • Trim trailing whitespace #​2985 [Metallicow]

  • Docs: Correct reference to Image.new method #​3000 [radarhere]

  • Rearrange ImageFilter classes into alphabetical order #​2990 [radarhere]

  • Test: Remove duplicate line #​2983 [radarhere]

  • Build: Update AppVeyor PyPy version #​3003 [radarhere]

  • Tiff: Open 8 bit Tiffs with 5 or 6 channels, discarding extra channels #​2938 [homm]

  • Readme: Added Twitter badge #​2930 [hugovk]

  • Removed main code from ImageCms #​2942 [radarhere]

  • Test: Changed assert statements to unittest calls #​2961 [radarhere]

  • Depends: Update libimagequant to 2.11.10, raqm to 0.5.0, freetype to 2.9 #​3036, #​3017, #​2957 [radarhere]

  • Remove _imaging.crc32 in favor of builtin Python crc32 implementation #​2935 [wiredfool]

  • Move Tk directory to src directory #​2928 [hugovk]

  • Enable pip cache in Travis CI #​2933 [jdufresne]

  • Remove unused and duplicate imports #​2927 [radarhere]

  • Docs: Changed documentation references to 2.x to 2.7 #​2921 [radarhere]

  • Fix memory leak when opening webp files #​2974 [wiredfool]

  • Setup: Fix "TypeError: 'NoneType' object is not iterable" for PPC and CRUX #​2951 [hugovk]

  • Setup: Add libdirs for ppc64le and armv7l #​2968 [nehaljwani]

v5.0.0

Compare Source

  • Docs: Added docstrings from documentation #​2914 [radarhere]

  • Test: Switch from nose to pytest #​2815 [hugovk]

  • Rework Source directory layout, preventing accidental import of PIL. #​2911 [wiredfool]

  • Dynamically link libraqm #​2753 [wiredfool]

  • Removed scripts directory #​2901 [wiredfool]

  • TIFF: Run all compressed tiffs through libtiff decoder #​2899 [wiredfool]

  • GIF: Add disposal option when saving GIFs #​2902 [linnil1, wiredfool]

  • EPS: Allow for an empty line in EPS header data #​2903 [radarhere]

  • PNG: Add support for sRGB and cHRM chunks, permit sRGB when no iCCP chunk present #​2898 [wiredfool]

  • Dependencies: Update Tk Tcl to 8.6.8 #​2905 [radarhere]

  • Decompression bomb error now raised for images 2x larger than a decompression bomb warning #​2583 [wiredfool]

  • Test: avoid random failure in test_effect_noise #​2894 [hugovk]

  • Increased epsilon for test_file_eps.py:test_showpage due to Arch update. #​2896 [wiredfool]

  • Removed check parameter from _save in BmpImagePlugin, PngImagePlugin, ImImagePlugin, PalmImagePlugin, and PcxImagePlugin. #​2873 [radarhere]

  • Make PngImagePlugin.add_text() zip argument type bool #​2890 [jdufresne]

  • Depends: Updated libwebp to 0.6.1 #​2880 [radarhere]

  • Remove unnecessary bool() calls in Image.registered_extensions and skipKnownBadTests #​2891 [jdufresne]

  • Fix count of BITSPERSAMPLE items in broken TIFF files #​2883 [homm]

  • Fillcolor parameter for Image.Transform #​2852 [wiredfool]

  • Test: Display differences for test failures #​2862 [wiredfool]

  • Added executable flag to file with shebang line #​2884 [radarhere]

  • Setup: Specify compatible Python versions for pip #​2877 [hugovk]

  • Dependencies: Updated libimagequant to 2.11.4 #​2878 [radarhere]

  • Setup: Warn if trying to install for Py3.7 on Windows #​2855 [hugovk]

  • Doc: Fonts can be loaded from a file-like object, not just filename #​2861 [robin-norwood]

  • Add eog support for Ubuntu Image Viewer #​2864 [NafisFaysal]

  • Test: Test on 3.7-dev on Travis CI #​2870 [hugovk]

  • Dependencies: Update libtiff to 4.0.9 #​2871 [radarhere]

  • Setup: Replace deprecated platform.dist with file existence check #​2869 [wiredfool]

  • Build: Fix setup.py on Debian #​2853 [wiredfool]

  • Docs: Correct error in ImageDraw documentation #​2858 [meribold]

  • Test: Drop Ubuntu Precise, Fedora 24, Fedora 25, add Fedora 27, Centos 7, Amazon v2 CI Support #​2854, #​2843, #​2895, #​2897 [wiredfool]

  • Dependencies: Updated libimagequant to 2.11.3 #​2849 [radarhere]

  • Test: Fix test_image.py to use tempfile #​2841 [radarhere]

  • Replace PIL.OleFileIO deprecation warning with descriptive ImportError #​2833 [hugovk]

  • WebP: Add support for animated WebP files #​2761 [jd20]

  • PDF: Set encoderinfo for images when saving multi-page PDF. Fixes #​2804. #​2805 [ixio]

  • Allow the olefile dependency to be optional #​2789 [jdufresne]

  • GIF: Permit LZW code lengths up to 12 bits in GIF decode #​2813 [wiredfool]

  • Fix unterminated string and unchecked exception in _font_text_asBytes. #​2825 [wiredfool]

  • PPM: Use fixed list of whitespace, rather relying on locale, fixes #​272. #​2831 [markmiscavage]

  • Added support for generators when using append_images #​2829, #​2835 [radarhere]

  • Doc: Correct PixelAccess.rst #​2824 [hasahmed]

  • Depends: Update raqm to 0.3.0 #​2822 [radarhere]

  • Docs: Link to maintained version of aggdraw #​2809 [hugovk]

  • Include license file in the generated wheel packages #​2801 [jdufresne]

  • Depends: Update openjpeg to 2.3.0 #​2791 [radarhere]

  • Add option to Makefile to build and install with C coverage #​2781 [hugovk]

  • Add context manager support to ImageFile.Parser and PngImagePlugin.ChunkStream #​2793 [radarhere]

  • ImageDraw.textsize: fix zero length error #​2788 [wiredfool, hugovk]

v4.3.0

Compare Source

  • Fix warning on pointer cast in isblock #​2775, #​2778 [cgohlke]

  • Doc: Added macOS High Sierra tested Pillow version #​2777 [radarhere]

  • Use correct Windows handle type on 64 bit in imagingcms #​2774 [cgohlke]

  • 64 Bit Windows fix for block storage #​2773 [cgohlke]

  • Fix "expression result unused" warning #​2764 [radarhere]

  • Add 16bit Read/Write and RLE read support to SgiImageFile #​2769 [jbltx, wiredfool]

  • Block & array hybrid storage #​2738 [homm]

  • Common seek frame position check #​1849 [radarhere]

  • Doc: Add note about aspect ratio to Image thumbnail script #​2281 [wilsonge]

  • Fix ValueError: invalid version number '1.0.0rc1' in scipy release candidate #​2771 [cgohlke]

  • Unfreeze requirements.txt #​2766 [hugovk]

  • Test: ResourceWarning tests #​2756 [hugovk]

  • Use n_frames to determine is_animated if possible #​2315 [radarhere]

  • Doc: Corrected parameters in documentation #​2768 [radarhere]

  • Avoid unnecessary Image operations #​1891 [radarhere]

  • Added register_extensions method #​1860 [radarhere]

  • Fix TIFF support for I;16S, I;16BS, and I;32BS rawmodes #​2748 [wiredfool]

  • Fixed doc syntax in ImageDraw #​2752 [radarhere]

  • Fixed support for building on Windows/msys2. Added Appveyor CI coverage for python3 on msys2 #​2746 [wiredfool]

  • Fix ValueError in Exif/Tiff IFD #​2719 [wiredfool]

  • Use pathlib2 for Path objects on Python < 3.4 #​2291 [asergi]

  • Export only required properties in unsafe_ptrs #​2740 [homm]

  • Alpha composite fixes #​2709 [homm]

  • Faster Transpose operations, added 'Transverse' option #​2730 [homm]

  • Deprecate ImageOps undocumented functions gaussian_blur, gblur, unsharp_mask, usm and box_blur in favor of ImageFilter implementations #​2735 [homm]

  • Dependencies: Updated freetype to 2.8.1 #​2741 [radarhere]

  • Bug: Player skipped first image #​2742 [radarhere]

  • Faster filter operations for Kernel, Gaussian, and Unsharp Mask filters #​2679 [homm]

  • EPS: Add showpage to force rendering of some EPS images #​2636 [kaplun]

  • DOC: Fix type of palette parameter in Image.quantize. #​2703 [kkopachev]

  • DOC: Fix Ico docs to match code #​2712 [hugovk]

  • Added file pointer save to SpiderImagePlugin #​2647 [radarhere]

  • Add targa version 2 footer #​2713 [jhultgre]

  • Removed redundant lines #​2714 [radarhere]

  • Travis CI: Use default pypy/pypy3 #​2721 [hugovk]

  • Fix for SystemError when rendering an empty string, added in 4.2.0 #​2706 [wiredfool]

  • Fix for memory leaks in font handling added in 4.2.0 #​2634 [wiredfool]

  • Tests: cleanup, more tests. Fixed WMF save handler #​2689 [radarhere]

  • Removed debugging interface for Image.core.grabclipboard #​2708 [radarhere]

  • Doc syntax fix #​2710 [radarhere]

  • Faster packing and unpacking for RGB, LA, and related storage modes #​2693 [homm]

  • Use RGBX rawmode for RGB JPEG images where possible #​1989 [homm]

  • Remove palettes from non-palette modes in _new #​2704 [wiredfool]

  • Delete transparency info when convert'ing RGB/L to RGBA #​2633 [olt]

  • Code tweaks to ease type annotations #​2687 [neiljp]

  • Fixed incorrect use of 's#' to byteslike object #​2691 [wiredfool]

  • Fix JPEG subsampling labels for subsampling=2 #​2698 [homm]

  • Region of interest (box) for resampling #​2254 [homm]

  • Basic support for Termux (android) in setup.py #​2684 [wiredfool]

  • Bug: Fix Image.fromarray for numpy.bool type. #​2683 [wiredfool]

  • CI: Add Fedora 24 and 26 to Docker tests [wiredfool]

  • JPEG: Fix ZeroDivisionError when EXIF contains invalid DPI (0/0). #​2667 [vytisb]

  • Depends: Updated openjpeg to 2.2.0 #​2669 [radarhere]

  • Depends: Updated Tk Tcl to 8.6.7 #​2668 [radarhere]

  • Depends: Updated libimagequant to 2.10.2 #​2660 [radarhere]

  • Test: Added test for ImImagePlugin tell() #​2675 [radarhere]

  • Test: Additional tests for SGIImagePlugin #​2659 [radarhere]

  • New Image.getchannel method #​2661 [homm]

  • Remove unused im.copy2 and core.copy methods #​2657 [homm]

  • Fast Image.merge() #​2677 [homm]

  • Fast Image.split() #​2676 [homm]

  • Fast image allocation #​2655 [homm]

  • Storage cleanup #​2654 [homm]

  • FLI: Use frame count from FLI header #​2674 [radarhere]

  • Test: Test animated FLI file #​2650 [hugovk]

  • Bug: Fixed uninitialized memory in bc5 decoding #​2648 [ifeherva]

  • Moved SgiImagePlugin save error to before the start of write operations #​2646 [radarhere]

  • Move createfontdatachunk.py so isn't installed globally #​2645 [hugovk]

  • Bug: Fix unexpected keyword argument 'align' #​2641 [hugovk]

  • Add newlines to error message for clarity #​2640 [hugovk]

  • Docs: Updated redirected URL #​2637 [radarhere]

  • Bug: Fix JPEG DPI when EXIF is invalid #​2632 [wiredfool]

  • Bug: Fix for font getsize on empty string #​2624 [radarhere]

  • Docs: Improved ImageDraw documentation #​2626 [radarhere]

  • Docs: Corrected alpha_composite args documentation #​2627 [radarhere]

  • Docs: added the description of the filename attribute to images.rst #​2621 [dasdachs]

  • Dependencies: Updated libimagequant to 2.10.1 #​2616 [radarhere]

  • PDF: Renamed parameter to not shadow built-in dict #​2612 [kijeong]

v4.2.1

Compare Source

  • CI: Fix version specification and test on CI for PyPy/Windows #​2608 [wiredfool]

v4.2.0

Compare Source

  • Doc: Clarified Image.save:append_images documentation #​2604 [radarhere]

  • CI: Amazon Linux and Centos6 docker images added to Travis CI #​2585 [wiredfool]

  • Image.alpha_composite added #​2595 [wiredfool]

  • Complex Text Support #​2576 [ShamsaHamed, Fahad-Alsaidi, wiredfool]

  • Added threshold parameter to ImageDraw.floodfill #​2599 [nediamond]

  • Added dBATCH parameter to ghostscript command #​2588 [radarhere]

  • JPEG: Adjust buffer size when icc_profile > MAXBLOCK #​2596 [Darou]

  • Specify Pillow Version in one place #​2517 [wiredfool]

  • CI: Change the owner of the TRAVIS_BUILD_DIR, fixing broken docker runs #​2587 [wiredfool]

  • Fix truncated PNG loading for some images, Fix memory leak on truncated PNG images. #​2541, #​2598 [homm]

  • Add decompression bomb check to Image.crop #​2410 [wiredfool]

  • ImageFile: Ensure that the err_code variable is initialized in case of exception. #​2363 [alexkiro]

  • Tiff: Support append_images for saving multipage TIFFs #​2406 [blochl]

  • Doc: Clarify that draft is only implemented for JPEG and PCD #​2409 [wiredfool]

  • Test: MicImagePlugin #​2447 [hugovk]

  • Use round() instead of floor() to eliminate zero coefficients in resample #​2558 [homm]

  • Remove deprecated code #​2549 [hugovk]

  • Added append_images to PDF saving #​2526 [radarhere]

  • Remove unused function core image function new_array #​2548 [hugovk]

  • Remove unnecessary calls to dict.keys() #​2551 [jdufresne]

  • Add more ImageDraw.py tests and remove unused Draw.c code #​2533 [hugovk]

  • Test: More tests for ImageMorph #​2554 [hugovk]

  • Test: McIDAS area file #​2552 [radarhere]

  • Update Feature Detection #​2520 [wiredfool]

  • CI: Update pypy on Travis CI #​2573 [hugovk]

  • ImageMorph: Fix wrong expected size of MRLs read from disk #​2561 [dov]

  • Docs: Update install docs for FreeBSD #​2546 [wiredfool]

  • Build: Ignore OpenJpeg 1.5 on FreeBSD #​2544 [melvyn-sopacua]

  • Remove 'not yet implemented' methods from PIL 1.1.4 #​2538 [hugovk]

  • Dependencies: Update FreeType to 2.8, LibTIFF to 4.0.8 and libimagequant to 2.9.1 #​2535 #​2537 #​2540 [radarhere]

  • Raise TypeError and not also UnboundLocalError in ImageFile.Parser() #​2525 [joshblum]

  • Test: Use Codecov for coverage #​2528 [hugovk]

  • Use PNG for Image.show() #​2527 [HinTak, wiredfool]

  • Remove WITH_DEBUG compilation flag #​2522 [wiredfool]

  • Fix return value on parameter parse error in _webp.c #​2521 [adw1n]

  • Set executable flag on scripts with shebang line #​2295 [radarhere]

  • Flake8 #​2460 [radarhere]

  • Doc: Release Process Changes #​2516 [wiredfool]

  • CI: Added region for s3 deployment on appveyor #​2515 [wiredfool]

  • Doc: Updated references to point to existing files #​2507 [radarhere]

  • Return copy on Image crop if crop dimensions match the image #​2471 [radarhere]

  • Test: Optimize CI speed #​2464, #​2466 [hugovk]

v4.1.1

Compare Source

v4.1.0

Compare Source

  • Close files after loading if possible #​2330 [homm, wiredfool]

  • Fix Image Access to be reloadable when embedding the Python interpreter #​2296 [wiredfool, cgohlke]

  • Fetch DPI from EXIF if not specified in JPEG header #​2449, #​2472 [hugovk]

  • Removed winbuild checksum verification #​2468 [radarhere]

  • Git: Set ContainerIO test file as binary #​2469 [cgohlke]

  • Remove superfluous import of FixTk #​2455 [cgohlke)

  • Fix import of tkinter/Tkinter #​2456 [cgohlke)

  • Pure Python Decoders, including Python decoder to fix for MSP images #​1938 [wiredfool, hugovk]

  • Reorganized GifImagePlugin, fixes #​2314. #​2374 [radarhere, wiredfool]

  • Doc: Reordered operating systems in Compatibility Matrix #​2436 [radarhere]

  • Test: Additional tests for BufrStub, Eps, Container, GribStub, IPTC, Wmf, XVThumb, ImageDraw, ImageMorph, ImageShow #​2425 [radarhere]

  • Health fixes #​2437 [radarhere]

  • Test: Correctness tests ContainerIO, XVThumbImagePlugin, BufrStubImagePlugin, GribStubImagePlugin, FitsStubImagePlugin, Hdf5StubImagePlugin, PixarImageFile, PsdImageFile #​2443, #​2442, #​2441, #​2440, #​2431, #​2430, #​2428, #​2427 [hugovk]

  • Remove unused imports #​1822 [radarhere]

  • Replaced KeyError catch with dictionary get method #​2424 [radarhere]

  • Test: Removed unrunnable code in test_image_toqimage #​2415 [hugovk]

  • Removed use of spaces in TIFF kwargs names, deprecated in 2.7 #​1390 [radarhere]

  • Removed deprecated ImageDraw setink, setfill, setfont methods #​2220 [jdufresne]

  • Send unwanted subprocess output to /dev/null #​2253 [jdufresne]

  • Fix division by zero when creating 0x0 image from numpy array #​2419 [hugovk]

  • Test: Added matrix convert tests #​2381 [hugovk]

  • Replaced broken URL to partners.adobe.com #​2413 [radarhere]

  • Removed unused private functions in setup.py and build_dep.py #​2414 [radarhere]

  • Test: Fixed Qt tests for QT5 and saving 1 bit PNG #​2394 [wiredfool]

  • Test: docker builds for Arch and Debian Stretch #​2394 [wiredfool]

  • Updated libwebp to 0.6.0 on appveyor #​2395 [radarhere]

  • More explicit error message when saving to a file with invalid extension #​2399 [ces42]

  • Docs: Update some http urls to https #​2403 [hugovk]

  • Preserve aux/alpha channels when performing Imagecms transforms #​2355 [gunjambi]

  • Test linear and radial gradient effects #​2382 [hugovk]

  • Test ImageDraw.Outline and and ImageDraw.Shape #​2389 [hugovk]

  • Added PySide to ImageQt documentation #​2392 [radarhere]

  • BUG: Empty image mode no longer causes a crash #​2380 [evalapply]

  • Exclude .travis and contents from manifest #​2386 [radarhere]

  • Remove 'MIT-like' from license #​2145 [wiredfool]

  • Tests: Add tests for several Image operations #​2379 [radarhere]

  • PNG: Moved iCCP chunk before PLTE chunk when saving as PNG, restricted chunks known value/ordering #​2347 [radarhere]

  • Default to inch-interpretation for missing ResolutionUnit in TiffImagePlugin #​2365 [lambdafu]

  • Bug: Fixed segfault when using ImagingTk on pypy Issue #​2376, #​2359. [wiredfool]

  • Bug: Fixed Integer overflow using ImagingTk on 32 bit platforms #​2359 [wiredfool, QuLogic]

  • Tests: Added docker images for testing alternate platforms. See also https://github.com/python-pillow/docker-images. #​2368 [wiredfool]

  • Removed PIL 1.0 era TK readme that concerns Windows 95/NT #​2360 [wiredfool]

  • Prevent nose -v printing docstrings #​2369 [hugovk]

  • Replaced absolute PIL imports with relative imports #​2349 [radarhere]

  • Added context managers for file handling #​2307 [radarhere]

  • Expose registered file extensions in Image #​2343 [iggomez, radarhere]

  • Make mode descriptor cache initialization thread-safe. #​2351 [gunjambi]

  • Updated Windows test dependencies: Freetype 2.7.1, zlib 1.2.11 #​2331, #​2332, #​2357 [radarhere]

  • Followed upstream pngquant packaging reorg to libimagquant #​2354 [radarhere]

  • Fix invalid string escapes #​2352 [hugovk]

  • Add test for crop operation with no argument #​2333 [radarhere]

v4.0.0

Compare Source

  • Refactor out postprocessing hack to load_end in PcdImageFile [wiredfool]

  • Add center and translate option to Image.rotate. #​2328 [lambdafu]

  • Test: Relax WMF test condition, fixes #​2323. #​2327 [wiredfool]

  • Allow 0 size images, Fixes #​2259, Reverts to pre-3.4 behavior. #​2262 [wiredfool]

  • SGI: Save uncompressed SGI/BW/RGB/RGBA files #​2325 [jbltx]

  • Depends: Updated pngquant to 2.8.2 #​2319 [radarhere]

  • Test: Added correctness tests for opening SGI images #​2324 [wiredfool]

  • Allow passing a list or tuple of individual frame durations when saving a GIF #​2298 [Xdynix]

  • Unified different GIF optimize conditions #​2196 [radarhere]

  • Build: Refactor dependency installation #​2305 [hugovk]

  • Test: Add python 3.6 to travis, tox #​2304 [hugovk]

  • Test: Fix coveralls coverage for Python+C #​2300 [hugovk]

  • Remove executable bit and shebang from OleFileIO.py #​2308 [jwilk, radarhere]

  • PyPy: Buffer interface workaround #​2294 [wiredfool]

  • Test: Switch to Ubuntu Trusty 14.04 on Travis CI #​2294

  • Remove vendored version of olefile Python package in favor of upstream #​2199 [jdufresne]

  • Updated comments to use print as a function #​2234 [radarhere]

  • Set executable flag on selftest.py, setup.py and added shebang line #​2282, #​2277 [radarhere, homm]

  • Test: Increase epsilon for FreeType 2.7 as rendering is slightly different. #​2286 [hugovk]

  • Test: Faster assert_image_similar #​2279 [homm]

  • Removed deprecated internal "stretch" method #​2276 [homm]

  • Removed the handles_eof flag in decode.c #​2223 [wiredfool]

  • Tiff: Fix for writing Tiff to BytesIO using libtiff #​2263 [wiredfool]

  • Doc: Design docs #​2269 [wiredfool]

  • Test: Move tests requiring libtiff to test_file_libtiff #​2273 [wiredfool]

  • Update Maxblock heuristic #​2275 [wiredfool]

  • Fix for 2-bit palette corruption #​2274 [pdknsk, wiredfool]

  • Tiff: Update info.icc_profile when using libtiff reader. #​2193 [lambdafu]

  • Test: Fix bug in test_ifd_rational_save when libtiff is not available #​2270 [ChristopherHogan]

  • ICO: Only save relevant sizes #​2267 [hugovk]

  • ICO: Allow saving .ico files of 256x256 instead of 255x255 #​2265 [hugovk]

  • Fix TIFFImagePlugin ICC color profile saving. #​2087 [cskau]

  • Doc: Improved description of ImageOps.deform resample parameter #​2256 [radarhere]

  • EMF: support negative bounding box coordinates #​2249 [glexey]

  • Close file if opened in WalImageFile #​2216 [radarhere]

  • Use Image._new() instead of _makeself() #​2248 [homm]

  • SunImagePlugin fixes #​2241 [wiredfool]

  • Use minimal scale for jpeg drafts #​2240 [homm]

  • Updated dependency scripts to use FreeType 2.7, OpenJpeg 2.1.2, WebP 0.5.2 and Tcl/Tk 8.6.6 #​2235, #​2236, #​2237, #​2290, #​2302 [radarhere]

  • Fix "invalid escape sequence" bytestring warnings in Python 3.6 #​2186 [timgraham]

  • Removed support for Python 2.6 and Python 3.2 #​2192 [jdufresne]

  • Setup: Raise custom exceptions when required/requested dependencies are not found #​2213 [wiredfool]

  • Use a context manager in FontFile.save() to ensure file is always closed #​2226 [jdufresne]

  • Fixed bug in saving to fp-objects in Python >= 3.4 #​2227 [radarhere]

  • Use a context manager in ImageFont._load_pilfont() to ensure file is always closed #​2232 [jdufresne]

  • Use generator expressions instead of list comprehension #​2225 [jdufresne]

  • Close file after reading in ImagePalette.load() #​2215 [jdufresne]

  • Changed behaviour of default box argument for paste method to match docs #​2211 [radarhere]

  • Add support for another BMP bitfield #​2221 [jmerdich]

  • Added missing top-level test main #​2222 [radarhere]

  • Replaced range(len()) #​2197 [radarhere]

  • Fix for ImageQt Segfault, fixes #​1370 #​2182 [wiredfool]

  • Setup: Close file in setup.py after finished reading #​2208 [jdufresne]

  • Setup: optionally use pkg-config (when present) to detect dependencies #​2074 [garbas]

  • Search for tkinter first in builtins #​2210 [matthew-brett]

  • Tests: Replace try/except/fail pattern with TestCase.assertRaises() #​2200 [jdufresne]

  • Tests: Remove unused, open files at top level of tests #​2188 [jdufresne]

  • Replace type() equality checks with isinstance #​2184 [jdufresne]

  • Doc: Move ICO out of the list of read-only file formats #​2180 [alexwlchan]

  • Doc: Fix formatting, too-short title underlines and malformed table #​2175 [hugovk]

  • Fix BytesWarnings #​2172 [jdufresne]

  • Use Integer division to eliminate deprecation warning. #​2168 [mastermatt]

  • Doc: Update compatibility matrix [daavve, wiredfool]

v3.4.2

Compare Source

  • Fix Resample coefficient calculation #​2162 [homm]

v3.4.1

Compare Source

  • Allow lists as arguments for Image.new() #​2149 [homm]

  • Fix fix for map.c overflow #​2151 (also in 3.3.3) [wiredfool]

v3.4.0

Compare Source

  • Removed Image.core.open_ppm, added negative image size checks in Image.py. #​2146 [wiredfool]

  • Windows build: fetch dependencies from pillow-depends #​2095 [hugovk]

  • Add TIFF save_all writer. #​2140 [lambdafu, vashek]

  • Move libtiff fd duplication to _load_libtiff #​2141 [sekrause]

  • Speed up GIF save optimization step, fixes #​2093. #​2133 [wiredfool]

  • Fix for ImageCms Segfault, Issue #​2037. #​2131 [wiredfool]

  • Make Image.crop an immediate operation, not lazy. #​2138 [wiredfool]

  • Skip empty values in ImageFileDirectory #​2024 [homm]

  • Force reloading palette when using mmap in ImageFile. #​2139 [lambdafu]

  • Fix "invalid escape sequence" warning in Python 3.6 #​2136 [timgraham]

  • Update documentation about drafts #​2137 [radarhere]

  • Converted documentation parameter format, comments to docstrings #​2021 [radarhere]

  • Fixed typos #​2128 #​2142 [radarhere]

  • Renamed references to OS X to macOS #​2125 2130 [radarhere]

  • Use truth value when checking for progressive and optimize option on save #​2115, #​2129 [radarhere]

  • Convert DPI to ints when saving as JPEG #​2102 [radarhere]

  • Added append_images parameter to GIF saving #​2103 [radarhere]

  • Speedup paste with masks up to 80% #​2015 [homm]

  • Rewrite DDS decoders in C, add DXT3 and BC7 decoders #​2068 [Mischanix]

  • Fix PyArg_ParseTuple format in getink() #​2070 [arjennienhuis]

  • Fix saving originally missing TIFF tags. #​2111 [anntzer]

  • Allow pathlib.Path in Image.open on Python 2.7 #​2110 [patricksnape]

  • Use modern base64 interface over deprecated #​2121 [hugovk]

  • ImageColor.getrgb hexadecimal RGBA #​2114 [homm]

  • Test fix for bigendian machines #​2092 [wiredfool]

  • Resampling lookups, trailing empty coefficients, precision #​2008 [homm]

  • Add (un)packing between RGBA and BGRa #​2057 [arjennienhuis]

  • Added return for J2k (and fpx) Load to return a pixel access object #​2061 [wiredfool]

  • Skip failing numpy tests on Pypy <= 5.3.1 #​2090 [arjennienhuis]

  • Show warning when trying to save RGBA image as JPEG #​2010 [homm]

  • Respect pixel centers during transform #​2022 [homm]

  • TOC for supported file formats #​2056 [polarize]

  • Fix conversion of bit images to numpy arrays Fixes #​350, #​2058 [matthew-brett]

  • Add ImageOps.scale to expand or contract a PIL image by a factor #​2011 [vlmath]

  • Flake8 fixes #​2050 [hugovk]

  • Updated freetype to 2.6.5 on Appveyor builds #​2035 [radarhere]

  • PCX encoder fixes #​2023, pr #​2041 [homm]

  • Docs: Windows console prompts are > #​2031 [techtonik]

  • Expose Pillow package version as PIL.version #​2027 [techtonik]

  • Add Box and Hamming filters for resampling #​1959 [homm]

  • Retain a reference to core image object in PyAccess #​2009 [homm]

v3.3.3

Compare Source

  • Fix fix for map.c overflow #​2151 [wiredfool]

v3.3.2

Compare Source

  • Fix negative image sizes in Storage.c #​2146 [wiredfool]

  • Fix integer overflow in map.c #​2146 [wiredfool]

v3.3.1

Compare Source

  • Fix C90 compilation error for Tcl / Tk rewrite #​2033 [matthew-brett]

  • Fix image loading when rotating by 0 deg #​2052 [homm]

v3.3.0

Compare Source

  • Fixed enums for Resolution Unit and Predictor in TiffTags.py #​1998 [wiredfool]

  • Fix issue converting P mode to LA #​1986 [didrix]

  • Moved test_j2k_overflow to check_j2k_overflow, prevent DOS of our 32bit testing machines #​1995 [wiredfool]

  • Skip CRC checks in PNG files when LOAD_TRUNCATED_IMAGES is enabled #​1991 [kkopachev]

  • Added CMYK mode for opening EPS files #​1826 [radarhere]

  • Docs: OSX build instruction clarification #​1994 [wiredfool]

  • Docs: Filter comparison table #​1993 [homm]

  • Removal of pthread based Incremental.c, new interface for file decoders/encoders to access the python file. Fixes assorted J2k Hangs. #​1934 [wiredfool]

  • Skip unnecessary passes when resizing #​1954 [homm]

  • Removed duplicate code in ImagePalette #​1832 [radarhere]

  • test_imagecms: Reduce precision of extended info due to 32 bit machine precision #​1990 [AbdealiJK]

  • Binary Tiff Metadata/ICC profile. #​1988 [wiredfool]

  • Ignore large text blocks in PNG if LOAD_TRUNCATED_IMAGES is enabled #​1970 [homm]

  • Replace index = index+1 in docs with +=1 [cclauss]

  • Skip extra 0xff00 in jpeg #​1977 [kkopachev]

  • Use bytearray for palette mutable storage #​1985 [radarhere, wiredfool]

  • Added additional uint modes for Image.fromarray, more extensive tests of fromarray #​1984 [mairsbw, wiredfool]

  • Fix for program importing PyQt4 when PyQt5 also installed #​1942 [hugovk]

  • Changed depends/install_*.sh urls to point to github pillow-depends repo #​1983 [wiredfool]

  • Allow ICC profile from encoderinfo while saving PNGs #​1909 [homm]

  • Fix integer overflow on ILP32 systems (32-bit Linux). #​1975 [lambdafu]

  • Change function declaration to match Tcl_CmdProc type #​1966 [homm]

  • Integer overflow checks on all calls to *alloc #​1781 [wiredfool]

  • Change equals method on Image so it short circuits #​1967 [mattBoros]

  • Runtime loading of TCL/TK libraries, eliminating build time dependency. #​1932 [matthew-brett]

  • Cleanup of transform methods #​1941 [homm]

  • Fix "Fatal Python error: UNREF invalid object" in debug builds #​1936 [wiredfool]

  • Setup fixes for Alpine linux #​1937 [wiredfool]

  • Split resample into horizontal + vertical passes #​1933 [homm]

  • Box blur with premultiplied alpha #​1914 [homm]

  • Add libimagequant support in quantize() #​1889 [rr-]

  • Added internal Premultiplied luminosity (La) mode #​1912 [homm]

  • Fixed point integer resample #​1881 [homm]

  • Removed docs/BUILDME script #​1924 [radarhere]

  • Moved comments to docstrings #​1926 [hugovk]

  • Include Python.h before wchar.h so _GNU_SOURCE is set consistently #​1906 [hugovk]

  • Updated example decoder in documentation #​1899 [radarhere]

  • Added support for GIF comment extension #​1896 [radarhere]

  • Removed support for pre- 1.5.2 list form of Image info in Image.new #​1897 [radarhere]

  • Fix typos in TIFF tags #​1918 [radarhere]

  • Skip tests that require libtiff if it is not installed #​1893 (fixes #​1866) [wiredfool]

  • Skip test when icc profile is not available, fixes #​1887. #​1892 [doko42]

  • Make deprecated functions raise NotImplementedError instead of Exception. #​1862, #​1890 [daniel-leicht, radarhere]

  • Replaced os.system with subprocess.call in setup.py #​1879 [radarhere]

  • Corrected Image show documentation #​1886 [radarhere]

  • Added check for executable permissions to ImageShow #​1880 [radarhere]

  • Fixed tutorial code and added explanation #​1877 [radarhere]

  • Added OS X support for ImageGrab grabclipboard #​1837 [radarhere]

  • Combined duplicate code in ImageTk #​1856 [radarhere]

  • Added --disable-platform-guessing option to setup.py build extension #​1861 [angeloc]

  • Fixed loading Transparent PNGs with a transparent black color #​1840 [olt]

  • Add support for LA mode in Image.fromarray #​1865 [pierriko]

  • Make ImageFile load images in read-only mode #​1864 [hdante]

  • Added _accept hook for XVThumbImagePlugin #​1853 [radarhere]

  • Test TIFF with LZW compression #​1855, TGA RLE file #​1854 [hugovk]

  • Improved SpiderImagePlugin help text #​1863 [radarhere]

  • Updated Sphinx project description #​1870 [radarhere]

  • Remove support for Python 3.0 from _imaging.c #​1851 [radarhere]

  • Jpeg qtables are unsigned chars #​1814, #​1921 [thebostik]

  • Added additional EXIF tags #​1841, TIFF Tags #​1821 [radarhere]

  • Changed documentation to refer to ImageSequence Iterator #​1833 [radarhere]

  • Fix Fedora prerequisites in installation docs, depends script #​1842 [living180]

  • Added _accept hook for PixarImagePlugin #​1843 [radarhere]

  • Removed outdated scanner classifier #​1823 [radarhere]

  • Combined identical error messages in _imaging #​1825 [radarhere]

  • Added debug option for setup.py to trace header and library finding #​1790 [wiredfool]

  • Fix doc building on travis #​1820, #​1844 [wiredfool]

  • Fix for DIB/BMP images #​1813, #​1847 [wiredfool]

  • Add PixarImagePlugin file extension #​1809 [radarhere]

  • Catch struct.errors when verifying png files #​1805 [wiredfool]

  • SpiderImagePlugin: raise an error when seeking in a non-stack file #​1794 [radarhere, jmichalon]

  • Added support for 2/4 bpp Tiff grayscale images #​1789 [zwhfly]

  • Removed unused variable from selftest #​1788 [radarhere]

  • Added warning for as_dict method (deprecated in 3.0.0) #​1799 [radarhere]

  • Removed powf support for older Python versions #​1784 [radarhere]

  • Health fixes #​1625 #​1903 [radarhere]

v3.2.0

Compare Source

  • Added install docs for Fedora 23 and FreeBSD #​1729, #​1739, #​1792 [koobs, zandermartin, wiredfool]

  • Fixed TIFF multiframe load when the frames have different compression types #​1782 [radarhere, geka000]

  • Added copy method to Image #​1772 [radarhere]

  • Updated dates in PIL license in OleFileIO README #​1787 [radarhere]

  • Corrected Tiff tag names #​1786 [radarhere]

  • Fixed documented name of JPEG property #​1783 [radarhere]

  • Fixed UnboundLocalError when loading a corrupt jpeg2k file #​1780 [wiredfool]

  • Fixed integer overflow in path.c #​1773 [wiredfool, nedwill]

  • Added debug to command line help text for pilprint #​1766 [radarhere]

  • Expose many more fields in ICC Profiles #​1756 [lambdafu]

  • Documentation changes, URL update, transpose, release checklist [radarhere]

  • Fixed saving to nonexistent files specified by pathlib.Path objects #​1748 (fixes #​1747) [radarhere]

  • Round Image.crop arguments to the nearest integer #​1745 (fixes #​1744) [hugovk]

  • Fix uninitialized variable warning in _imaging.c:getink #​1663 (fixes #​486) [wiredfool]

  • Disable multiprocessing install on cygwin #​1700 (fixes #​1690) [wiredfool]

  • Fix the error reported when libz is not found #​1764 [wiredfool]

  • More general error check to avoid Symbol not found: _PyUnicodeUCS2_AsLatin1String on OS X #​1761 [wiredfool]

  • Added py35 to tox envlist #​1724 [radarhere]

  • Fix EXIF tag name typos #​1736 [zarlant, radarhere]

  • Updated freetype to 2.6.3, Tk/Tcl to 8.6.5 and 8.5.19 #​1725, #​1752 [radarhere]

  • Add a loader for the FTEX format from Independence War 2: Edge of Chaos #​1688 [jleclanche]

  • Improved alpha_composite documentation #​1698 [radarhere]

  • Extend ImageDraw.text method to pass on multiline_text method specific arguments #​1647 [radarhere]

  • Allow ImageSequence to seek to zero #​1686 [radarhere]

  • ImageSequence Iterator is now an iterator #​1649 [radarhere]

  • Updated windows test builds to jpeg9b #​1673 [radarhere]

  • Fixed support for .gbr version 1 images, added support for version 2 in GbrImagePlugin #​1653 [wiredfool]

  • Clarified which YCbCr format is used #​1677 [radarhere]

  • Added TiffTags documentation, Moved windows build documentation to winbuild/ #​1667 [wiredfool]

  • Add tests for OLE file based formats #​1678 [radarhere]

  • Add TIFF IFD test #​1671 [radarhere]

  • Add a basic DDS image plugin with more tests #​1654 [jleclanche, hugovk, wiredfool]

  • Fix incorrect conditional in encode.c #​1638 [manisandro]

v3.1.2

Compare Source

  • Fixed an integer overflow in Jpeg2KEncode.c causing a buffer overflow. CVE-2016-3076 [wiredfool]

v3.1.1

Compare Source

  • Fixed an integer overflow in Resample.c causing writes in the Python heap. [nedwill]

  • Fixed a buffer overflow in PcdDecode.c causing a segfault when opening PhotoCD files. CVE-2016-2533 [wiredfool]

  • Fixed a buffer overflow in FliDecode.c causing a segfault when opening FLI files. CVE-2016-0775 [wiredfool]

  • Fixed a buffer overflow in TiffDecode.c causing an arbitrary amount of memory to be overwritten when opening a specially crafted invalid TIFF file. CVE-2016-0740 [wiredfool]


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 MR becomes conflicted, or you tick the rebase/retry checkbox.

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


  • [ ] If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

Merge request reports