Update dependency pillow to v11
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
-
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
-
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
-
CVE-2024-28219: Use
strncpy
to avoid buffer overflow #7928 [radarhere, hugovk] -
Deprecate
eval()
, replacing it withlambda_eval()
andunsafe_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
-
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
usingfunctools.lru_cache
#7657 [hugovk] -
Restricted environment keys for ImageMath.eval() #7655 [wiredfool, radarhere]
-
Optimise
ImageMode.getmode
usingfunctools.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
-
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
v10.0.0
-
Fixed deallocating mask images #7246 [radarhere]
-
Added ImageFont.MAX_STRING_LENGTH #7244 [radarhere, hugovk]
-
Fix Windows build with pyproject.toml #7230 [hugovk, nulano, radarhere]
-
Do not close provided file handles with libtiff #7199 [radarhere]
-
Convert to HSV if mode is HSV in getcolor() #7226 [radarhere]
-
Added alpha_only argument to getbbox() #7123 [radarhere. hugovk]
-
Prioritise speed in repr_png #7242 [radarhere]
-
Do not use CFFI access by default on PyPy #7236 [radarhere]
-
Limit size even if one dimension is zero in decompression bomb check #7235 [radarhere]
-
Use --config-settings instead of deprecated --global-option #7171 [radarhere]
-
Better C integer definitions #6645 [Yay295, hugovk]
-
Fixed finding dependencies on Cygwin #7175 [radarhere]
-
Changed grabclipboard() to use PNG instead of JPG compression on macOS #7219 [abey79, radarhere]
-
Added in_place argument to ImageOps.exif_transpose() #7092 [radarhere]
-
Fixed calling putpalette() on L and LA images before load() #7187 [radarhere]
-
Fixed saving TIFF multiframe images with LONG8 tag types #7078 [radarhere]
-
Fixed combining single duration across duplicate APNG frames #7146 [radarhere]
-
Remove temporary file when error is raised #7148 [radarhere]
-
Do not use temporary file when grabbing clipboard on Linux #7200 [radarhere]
-
If the clipboard fails to open on Windows, wait and try again #7141 [radarhere]
-
Fixed saving multiple 1 mode frames to GIF #7181 [radarhere]
-
Replaced absolute PIL import with relative import #7173 [radarhere]
-
Replaced deprecated Py_FileSystemDefaultEncoding for Python >= 3.12 #7192 [radarhere]
-
Improved wl-paste mimetype handling in ImageGrab #7094 [rrcgat, radarhere]
-
Added repr_jpeg() for IPython display_jpeg #7135 [n3011, radarhere, nulano]
-
Use "/sbin/ldconfig" if ldconfig is not found #7068 [radarhere]
-
Prefer screenshots using XCB over gnome-screenshot #7143 [nulano, radarhere]
-
Fixed joined corners for ImageDraw rounded_rectangle() odd dimensions #7151 [radarhere]
-
Support reading signed 8-bit TIFF images #7111 [radarhere]
-
Added width argument to ImageDraw regular_polygon #7132 [radarhere]
-
Support I mode for ImageFilter.BuiltinFilter #7108 [radarhere]
-
Raise error from stderr of Linux ImageGrab.grabclipboard() command #7112 [radarhere]
-
Added unpacker from I;16B to I;16 #7125 [radarhere]
-
Support float font sizes #7107 [radarhere]
-
Use later value for duplicate xref entries in PdfParser #7102 [radarhere]
-
Load before getting size in getstate #7105 [bigcat88, radarhere]
-
Fixed type handling for include and lib directories #7069 [adisbladis, radarhere]
-
Remove deprecations for Pillow 10.0.0 #7059, #7080 [hugovk, radarhere]
-
Drop support for soon-EOL Python 3.7 #7058 [hugovk, radarhere]
v9.5.0
-
Added ImageSourceData to TAGS_V2 #7053 [radarhere]
-
Clear PPM half token after use #7052 [radarhere]
-
Removed absolute path to ldconfig #7044 [radarhere]
-
Support custom comments and PLT markers when saving JPEG2000 images #6903 [joshware, radarhere, hugovk]
-
Load before getting size in array_interface #7034 [radarhere]
-
Support creating BGR;15, BGR;16 and BGR;24 images, but drop support for BGR;32 #7010 [radarhere]
-
Consider transparency when applying APNG blend mask #7018 [radarhere]
-
Round duration when saving animated WebP images #6996 [radarhere]
-
Added reading of JPEG2000 comments #6909 [radarhere]
-
Decrement reference count #7003 [radarhere, nulano]
-
Allow libtiff_support_custom_tags to be missing #7020 [radarhere]
-
Improved I;16N support #6834 [radarhere]
-
Added QOI reading #6852 [radarhere, hugovk]
-
Added saving RGBA images as PDFs #6925 [radarhere]
-
Do not raise an error if os.environ does not contain PATH #6935 [radarhere, hugovk]
-
Close OleFileIO instance when closing or exiting FPX or MIC #7005 [radarhere]
-
Added int to IFDRational for Python >= 3.11 #6998 [radarhere]
-
Added memoryview support to Dib.frombytes() #6988 [radarhere, nulano]
-
Close file pointer copy in the libtiff encoder if still open #6986 [fcarron, radarhere]
-
Raise an error if ImageDraw co-ordinates are incorrectly ordered #6978 [radarhere]
-
Added "corners" argument to ImageDraw rounded_rectangle() #6954 [radarhere]
-
Added memoryview support to frombytes() #6974 [radarhere]
-
Allow comments in FITS images #6973 [radarhere]
-
Support saving PDF with different X and Y resolutions #6961 [jvanderneutstulen, radarhere, hugovk]
-
Fixed writing int as UNDEFINED tag #6950 [radarhere]
-
Raise an error if EXIF data is too long when saving JPEG #6939 [radarhere]
-
Handle more than one directory returned by pkg-config #6896 [sebastic, radarhere]
-
Do not retry past formats when loading all formats for the first time #6902 [radarhere]
-
Do not retry specified formats if they failed when opening #6893 [radarhere]
-
Do not unintentionally load TIFF format at first #6892 [radarhere]
-
Stop reading when EPS line becomes too long #6897 [radarhere]
-
Allow writing IFDRational to BYTE tag #6890 [radarhere]
-
Raise ValueError for BoxBlur filter with negative radius #6874 [hugovk, radarhere]
-
Support arbitrary number of loaded modules on Windows #6761 [javidcf, radarhere, nulano]
v9.4.0
-
Fixed null pointer dereference crash with malformed font #6846 [wiredfool, radarhere]
-
Return from ImagingFill early if image has a zero dimension #6842 [radarhere]
-
Reversed deprecations for Image constants, except for duplicate Resampling attributes #6830 [radarhere]
-
Improve exception traceback readability #6836 [hugovk, radarhere]
-
Do not attempt to read IFD1 if absent #6840 [radarhere]
-
Fixed writing int as ASCII tag #6800 [radarhere]
-
If available, use wl-paste or xclip for grabclipboard() on Linux #6783 [radarhere]
-
Added signed option when saving JPEG2000 images #6709 [radarhere]
-
Patch OpenJPEG to include ARM64 fix #6718 [radarhere]
-
Added support for I;16 modes in putdata() #6825 [radarhere]
-
Added conversion from RGBa to RGB #6708 [radarhere]
-
Added DDS support for uncompressed L and LA images #6820 [radarhere, REDxEYE]
-
Added LightSource tag values to ExifTags #6749 [radarhere]
-
Fixed PyAccess after changing ICO size #6821 [radarhere]
-
Do not use EXIF from info when saving PNG images #6819 [radarhere]
-
Fixed saving EXIF data to MPO #6817 [radarhere]
-
Added Exif hide_offsets() #6762 [radarhere]
-
Only compare to previous frame when checking for duplicate GIF frames while saving #6787 [radarhere]
-
Always initialize all plugins in registered_extensions() #6811 [radarhere]
-
Ignore non-opaque WebP background when saving as GIF #6792 [radarhere]
-
Only set tile in ImageFile setstate #6793 [radarhere]
-
When reading BLP, do not trust JPEG decoder to determine image is CMYK #6767 [radarhere]
-
Added IFD enum to ExifTags #6748 [radarhere]
-
Fixed bug combining GIF frame durations #6779 [radarhere]
-
Support saving JPEG comments #6774 [smason, radarhere]
-
Added getxmp() to WebPImagePlugin #6758 [radarhere]
-
Added "exact" option when saving WebP #6747 [ashafaei, radarhere]
-
Use fractional coordinates when drawing text #6722 [radarhere]
-
Fixed writing int as BYTE tag #6740 [radarhere]
-
Added MP Format Version when saving MPO #6735 [radarhere]
-
Added Interop to ExifTags #6724 [radarhere]
-
CVE-2007-4559 patch when building on Windows #6704 [TrellixVulnTeam, nulano, radarhere]
-
Fix compiler warning: accessing 64 bytes in a region of size 48 #6714 [wiredfool]
-
Use verbose flag for pip install #6713 [wiredfool, radarhere]
v9.3.0
-
Limit SAMPLESPERPIXEL to avoid runtime DOS #6700 [wiredfool]
-
Initialize libtiff buffer when saving #6699 [radarhere]
-
Inline fname2char to fix memory leak #6329 [nulano]
-
Fix memory leaks related to text features #6330 [nulano]
-
Use double quotes for version check on old CPython on Windows #6695 [hugovk]
-
Remove backup implementation of Round for Windows platforms #6693 [cgohlke]
-
Fixed set_variation_by_name offset #6445 [radarhere]
-
Fix malloc in _imagingft.c:font_setvaraxes #6690 [cgohlke]
-
Release Python GIL when converting images using matrix operations #6418 [hmaarrfk]
-
Added ExifTags enums #6630 [radarhere]
-
Do not modify previous frame when calculating delta in PNG #6683 [radarhere]
-
Added support for reading BMP images with RLE4 compression #6674 [npjg, radarhere]
-
Decode JPEG compressed BLP1 data in original mode #6678 [radarhere]
-
Added GPS TIFF tag info #6661 [radarhere]
-
Added conversion between RGB/RGBA/RGBX and LAB #6647 [radarhere]
-
Do not attempt normalization if mode is already normal #6644 [radarhere]
-
Fixed seeking to an L frame in a GIF #6576 [radarhere]
-
Consider all frames when selecting mode for PNG save_all #6610 [radarhere]
-
Don't reassign crc on ChunkStream close #6627 [wiredfool, radarhere]
-
Raise a warning if NumPy failed to raise an error during conversion #6594 [radarhere]
-
Show all frames in ImageShow #6611 [radarhere]
-
Allow FLI palette chunk to not be first #6626 [radarhere]
-
If first GIF frame has transparency for RGB_ALWAYS loading strategy, use RGBA mode #6592 [radarhere]
-
Round box position to integer when pasting embedded color #6517 [radarhere, nulano]
-
Removed EXIF prefix when saving WebP #6582 [radarhere]
-
Pad IM palette to 768 bytes when saving #6579 [radarhere]
-
Added DDS BC6H reading #6449 [ShadelessFox, REDxEYE, radarhere]
-
Added support for opening WhiteIsZero 16-bit integer TIFF images #6642 [JayWiz, radarhere]
-
Raise an error when allocating translucent color to RGB palette #6654 [jsbueno, radarhere]
-
Added reading of TIFF child images #6569 [radarhere]
-
Improved ImageOps palette handling #6596 [PososikTeam, radarhere]
-
Defer parsing of palette into colors #6567 [radarhere]
-
Apply transparency to P images in ImageTk.PhotoImage #6559 [radarhere]
-
Use rounding in ImageOps contain() and pad() #6522 [bibinhashley, radarhere]
-
Fixed GIF remapping to palette with duplicate entries #6548 [radarhere]
-
Allow remap_palette() to return an image with less than 256 palette entries #6543 [radarhere]
-
Corrected BMP and TGA palette size when saving #6500 [radarhere]
-
Do not call load() before draft() in Image.thumbnail #6539 [radarhere]
-
Copy palette when converting from P to PA #6497 [radarhere]
-
Allow RGB and RGBA values for PA image putpixel #6504 [radarhere]
-
Removed support for tkinter in PyPy before Python 3.6 #6551 [nulano]
-
Do not use CCITTFaxDecode filter if libtiff is not available #6518 [radarhere]
-
Fallback to not using mmap if buffer is not large enough #6510 [radarhere]
-
Fixed writing bytes as ASCII tag #6493 [radarhere]
-
Open 1 bit EPS in mode 1 #6499 [radarhere]
-
Removed support for tkinter before Python 1.5.2 #6549 [radarhere]
-
Allow default ImageDraw font to be set #6484 [radarhere, hugovk]
-
Save 1 mode PDF using CCITTFaxDecode filter #6470 [radarhere]
-
Added support for RGBA PSD images #6481 [radarhere]
-
Parse orientation from XMP tag contents #6463 [bigcat88, radarhere]
-
Added support for reading ATI1/ATI2 (BC4/BC5) DDS images #6457 [REDxEYE, radarhere]
-
Do not clear GIF tile when checking number of frames #6455 [radarhere]
-
Support saving multiple MPO frames #6444 [radarhere]
-
Do not double quote Pillow version for setuptools >= 60 #6450 [radarhere]
-
Added ABGR BMP mask mode #6436 [radarhere]
-
Fixed PSDraw rectangle #6429 [radarhere]
-
Raise ValueError if PNG sRGB chunk is truncated #6431 [radarhere]
-
Handle missing Python executable in ImageShow on macOS #6416 [bryant1410, radarhere]
v9.2.0
-
Deprecate ImageFont.getsize and related functions #6381 [nulano, radarhere]
-
Fixed null check for fribidi_version_info in FriBiDi shim #6376 [nulano]
-
Added GIF decompression bomb check #6402 [radarhere]
-
Handle PCF fonts files with less than 256 characters #6386 [dawidcrivelli, radarhere]
-
Improved GIF optimize condition #6378 [raygard, radarhere]
-
Reverted to array_interface with the release of NumPy 1.23 #6394 [radarhere]
-
Pad PCX palette to 768 bytes when saving #6391 [radarhere]
-
Fixed bug with rounding pixels to palette colors #6377 [btrekkie, radarhere]
-
Use gnome-screenshot on Linux if available #6361 [radarhere, nulano]
-
Fixed loading L mode BMP RLE8 images #6384 [radarhere]
-
Fixed incorrect operator in ImageCms error #6370 [LostBenjamin, hugovk, radarhere]
-
Limit FPX tile size to avoid extending outside image #6368 [radarhere]
-
Added support for decoding plain PPM formats #5242 [Piolie, radarhere]
-
Added apply_transparency() #6352 [radarhere]
-
Fixed behaviour change from endian fix #6197 [radarhere]
-
Allow remapping P images with RGBA palettes #6350 [radarhere]
-
Fixed drawing translucent 1px high polygons #6278 [radarhere]
-
Pad COLORMAP to 768 items when saving TIFF #6232 [radarhere]
-
Fix P -> PA conversion #6337 [RedShy, radarhere]
-
Once exif data is parsed, do not reload unless it changes #6335 [radarhere]
-
Only try to connect discontiguous corners at the end of edges #6303 [radarhere]
-
Improve transparency handling when saving GIF images #6176 [radarhere]
-
Do not update GIF frame position until local image is found #6219 [radarhere]
-
Netscape GIF extension belongs after the global color table #6211 [radarhere]
-
Only write GIF comments at the beginning of the file #6300 [raygard, radarhere]
-
Separate multiple GIF comment blocks with newlines #6294 [raygard, radarhere]
-
Always use GIF89a for comments #6292 [raygard, radarhere]
-
Ignore compression value from BMP info dictionary when saving as TIFF #6231 [radarhere]
-
If font is file-like object, do not re-read from object to get variant #6234 [radarhere]
-
Raise ValueError when trying to access internal fp after close #6213 [radarhere]
-
Support more affine expression forms in im.point() #6254 [benrg, radarhere]
-
Populate Python palette in fromarray() #6283 [radarhere]
-
Raise ValueError if PNG chunks are truncated #6253 [radarhere]
-
Use durations from each frame by default when saving GIFs #6265 [radarhere]
-
Adjust BITSPERSAMPLE to match SAMPLESPERPIXEL when opening TIFFs #6270 [radarhere]
-
Search pkgconf system libs/cflags #6138 [jameshilliard, radarhere]
-
Raise ValueError for invalid PPM maxval #6242 [radarhere]
-
Corrected screencapture argument in ImageGrab.grab() #6244 [axt-one]
-
Deprecate support for Qt 5 (PyQt5 and PySide2) #6237 [hugovk, radarhere]
-
Increase wait time of temporary file deletion on Windows #6224 [AlexTedeschi]
-
Deprecate FreeTypeFont.getmask2 fill parameter #6220 [nulano, radarhere, hugovk]
-
Round lut values where necessary #6188 [radarhere]
-
Load before getting size in resize() #6190 [radarhere]
-
Load image before performing size calculations in thumbnail() #6186 [radarhere]
-
Deprecated PhotoImage.paste() box parameter #6178 [radarhere]
v9.1.1
-
When reading past the end of a TGA scan line, reduce bytes left. CVE-2022-30595 [radarhere]
-
Do not open images with zero or negative height #6269 [radarhere]
v9.1.0
-
Add support for multiple component transformation to JPEG2000 #5500 [scaramallion, radarhere, hugovk]
-
Fix loading FriBiDi on Alpine #6165 [nulano]
-
Added setting for converting GIF P frames to RGB #6150 [radarhere]
-
Allow 1 mode images to be inverted #6034 [radarhere]
-
Raise ValueError when trying to save empty JPEG #6159 [radarhere]
-
Always save TIFF with contiguous planar configuration #5973 [radarhere]
-
Connected discontiguous polygon corners #5980 [radarhere]
-
Ensure Tkinter hook is activated for getimage() #6032 [radarhere]
-
Use screencapture arguments to crop on macOS #6152 [radarhere]
-
Do not mark L mode JPEG as 1 bit in PDF #6151 [radarhere]
-
Added support for reading I;16R TIFF images #6132 [radarhere]
-
If an error occurs after creating a file, remove the file #6134 [radarhere]
-
Fixed calling DisplayViewer or XVViewer without a title #6136 [radarhere]
-
Retain RGBA transparency when saving multiple GIF frames #6128 [radarhere]
-
Save additional ICO frames with other bit depths if supplied #6122 [radarhere]
-
Handle EXIF data truncated to just the header #6124 [radarhere]
-
Added support for reading BMP images with RLE8 compression #6102 [radarhere]
-
Support Python distributions where _tkinter is compiled in #6006 [lukegb]
-
Added support for PPM arbitrary maxval #6119 [radarhere]
-
Added BigTIFF reading #6097 [radarhere]
-
When converting, clip I;16 to be unsigned, not signed #6112 [radarhere]
-
Fixed loading L mode GIF with transparency #6086 [radarhere]
-
Improved handling of PPM header #5121 [Piolie, radarhere]
-
Reset size when seeking away from "Large Thumbnail" MPO frame #6101 [radarhere]
-
Replace requirements.txt with extras #6072 [hugovk, radarhere]
-
Added PyEncoder and support BLP saving #6069 [radarhere]
-
Handle TGA images with packets that cross scan lines #6087 [radarhere]
-
Added FITS reading #6056 [radarhere, hugovk]
-
Added rawmode argument to Image.getpalette() #6061 [radarhere]
-
Fixed BUFR, GRIB and HDF5 stub saving #6071 [radarhere]
-
Do not automatically remove temporary ImageShow files on Unix #6045 [radarhere]
-
Correctly read JPEG compressed BLP images #4685 [Meithal, radarhere]
-
Merged _MODE_CONV typ into ImageMode as typestr #6057 [radarhere]
-
Consider palette size when converting and in getpalette() #6060 [radarhere]
-
Added enums #5954 [radarhere]
-
Ensure image is opaque after converting P to PA with RGB palette #6052 [radarhere]
-
Attach RGBA palettes from putpalette() when suitable #6054 [radarhere]
-
Added get_photoshop_blocks() to parse Photoshop TIFF tag #6030 [radarhere]
-
Drop excess values in BITSPERSAMPLE #6041 [mikhail-iurkov]
-
Added unpacker from RGBA;15 to RGB #6031 [radarhere]
-
Enable arm64 for MSVC on Windows #5811 [gaborkertesz-linaro, gaborkertesz]
-
Keep IPython/Jupyter text/plain output stable #5891 [shamrin, radarhere]
-
Raise an error when performing a negative crop #5972 [radarhere, hugovk]
-
Deprecated show_file "file" argument in favour of "path" #5959 [radarhere]
-
Fixed SPIDER images for use with Bio-formats library #5956 [radarhere]
-
Ensure duplicated file pointer is closed #5946 [radarhere]
-
Added specific error if path coordinate type is incorrect #5942 [radarhere]
-
Return an empty bytestring from tobytes() for an empty image #5938 [radarhere]
-
Remove readonly from Image.eq #5930 [hugovk]
v9.0.1
-
In show_file, use os.remove to remove temporary images. CVE-2022-24303 #6010 [radarhere, hugovk]
-
Restrict builtins within lambdas for ImageMath.eval. CVE-2022-22817 #6009 [radarhere]
v9.0.0
-
Restrict builtins for ImageMath.eval(). CVE-2022-22817 #5923 [radarhere]
-
Ensure JpegImagePlugin stops at the end of a truncated file #5921 [radarhere]
-
Fixed ImagePath.Path array handling. CVE-2022-22815, CVE-2022-22816 #5920 [radarhere]
-
Remove consecutive duplicate tiles that only differ by their offset #5919 [radarhere]
-
Improved I;16 operations on big endian #5901 [radarhere]
-
Limit quantized palette to number of colors #5879 [radarhere]
-
Fixed palette index for zeroed color in FASTOCTREE quantize #5869 [radarhere]
-
When saving RGBA to GIF, make use of first transparent palette entry #5859 [radarhere]
-
Pass SAMPLEFORMAT to libtiff #5848 [radarhere]
-
Added rounding when converting P and PA #5824 [radarhere]
-
Improved putdata() documentation and data handling #5910 [radarhere]
-
Exclude carriage return in PDF regex to help prevent ReDoS #5912 [hugovk]
-
Fixed freeing pointer in ImageDraw.Outline.transform #5909 [radarhere]
-
Added ImageShow support for xdg-open #5897 [m-shinder, radarhere]
-
Support 16-bit grayscale ImageQt conversion #5856 [cmbruns, radarhere]
-
Convert subsequent GIF frames to RGB or RGBA #5857 [radarhere]
-
Do not prematurely return in ImageFile when saving to stdout #5665 [infmagic2047, radarhere]
-
Added support for top right and bottom right TGA orientations #5829 [radarhere]
-
Corrected ICNS file length in header #5845 [radarhere]
-
Block tile TIFF tags when saving #5839 [radarhere]
-
Added line width argument to polygon #5694 [radarhere]
-
Do not redeclare class each time when converting to NumPy #5844 [radarhere]
-
Only prevent repeated polygon pixels when drawing with transparency #5835 [radarhere]
-
Add support for pickling TrueType fonts #5826 [hugovk, radarhere]
-
Only prefer command line tools SDK on macOS over default MacOSX SDK #5828 [radarhere]
-
Drop support for soon-EOL Python 3.6 #5768 [hugovk, nulano, radarhere]
-
Fix compilation on 64-bit Termux #5793 [landfillbaby]
-
Use title for display in ImageShow #5788 [radarhere]
-
Remove support for FreeType 2.7 and older #5777 [hugovk, radarhere]
-
Fix for PyQt6 #5775 [hugovk, radarhere]
-
Removed deprecated PILLOW_VERSION, Image.show command parameter, Image._showxv and ImageFile.raise_ioerror #5776 [radarhere]
v8.4.0
-
Prefer global transparency in GIF when replacing with background color #5756 [radarhere]
-
Added "exif" keyword argument to TIFF saving #5575 [radarhere]
-
Copy Python palette to new image in quantize() #5696 [radarhere]
-
Read ICO AND mask from end #5667 [radarhere]
-
Actually check the framesize in FliDecode.c #5659 [wiredfool]
-
Determine JPEG2000 mode purely from ihdr header box #5654 [radarhere]
-
Fixed using info dictionary when writing multiple APNG frames #5611 [radarhere]
-
Allow saving 1 and L mode TIFF with PhotometricInterpretation 0 #5655 [radarhere]
-
For GIF save_all with palette, do not include palette with each frame #5603 [radarhere]
-
Keep transparency when converting from P to LA or PA #5606 [radarhere]
-
Copy palette to new image in transform() #5647 [radarhere]
-
Added "transparency" argument to EpsImagePlugin load() #5620 [radarhere]
-
Corrected pathlib.Path detection when saving #5633 [radarhere]
-
Added WalImageFile class #5618 [radarhere]
-
Consider I;16 pixel size when drawing text #5598 [radarhere]
-
If default conversion from P is RGB with transparency, convert to RGBA #5594 [radarhere]
-
Speed up rotating square images by 90 or 270 degrees #5646 [radarhere]
-
Add support for reading DPI information from JPEG2000 images [rogermb, radarhere]
-
Catch TypeError from corrupted DPI value in EXIF #5639 [homm, radarhere]
-
Do not close file pointer when saving SGI images #5645 [farizrahman4u, radarhere]
-
Deprecate ImagePalette size parameter #5641 [radarhere, hugovk]
-
Prefer command line tools SDK on macOS #5624 [radarhere]
-
Added tags when saving YCbCr TIFF #5597 [radarhere]
-
PSD layer count may be negative #5613 [radarhere]
-
Fixed ImageOps expand with tuple border on P image #5615 [radarhere]
-
Fixed error saving APNG with duplicate frames and different duration times #5609 [thak1411, radarhere]
v8.3.2
-
CVE-2021-23437 Raise ValueError if color specifier is too long [hugovk, radarhere]
-
Fix 6-byte OOB read in FliDecode [wiredfool]
-
Add support for Python 3.10 #5569, #5570 [hugovk, radarhere]
-
Ensure TIFF
RowsPerStrip
is multiple of 8 for JPEG compression #5588 [kmilos, radarhere] -
Updates for
ImagePalette
channel order #5599 [radarhere] -
Hide FriBiDi shim symbols to avoid conflict with real FriBiDi library #5651 [nulano]
v8.3.1
-
Catch OSError when checking if fp is sys.stdout #5585 [radarhere]
-
Handle removing orientation from alternate types of EXIF data #5584 [radarhere]
-
Make Image.array take optional dtype argument #5572 [t-vi, radarhere]
v8.3.0
-
Use snprintf instead of sprintf. CVE-2021-34552 #5567 [radarhere]
-
Limit TIFF strip size when saving with LibTIFF #5514 [kmilos]
-
Allow ICNS save on all operating systems #4526 [baletu, radarhere, newpanjing, hugovk]
-
De-zigzag JPEG's DQT when loading; deprecate convert_dict_qtables #4989 [gofr, radarhere]
-
Replaced xml.etree.ElementTree #5565 [radarhere]
-
Moved CVE image to pillow-depends #5561 [radarhere]
-
Added tag data for IFD groups #5554 [radarhere]
-
Improved ImagePalette #5552 [radarhere]
-
Add DDS saving #5402 [radarhere]
-
Improved getxmp() #5455 [radarhere]
-
Convert to float for comparison with float in IFDRational eq #5412 [radarhere]
-
Allow getexif() to access TIFF tag_v2 data #5416 [radarhere]
-
Read FITS image mode and size #5405 [radarhere]
-
Merge parallel horizontal edges in ImagingDrawPolygon #5347 [radarhere, hrdrq]
-
Use transparency behind first GIF frame and when disposing to background #5557 [radarhere, zewt]
-
Avoid unstable nature of qsort in Quant.c #5367 [radarhere]
-
Copy palette to new images in ImageOps expand #5551 [radarhere]
-
Ensure palette string matches RGB mode #5549 [radarhere]
-
Do not modify EXIF of original image instance in exif_transpose() #5547 [radarhere]
-
Fixed default numresolution for small JPEG2000 images #5540 [radarhere]
-
Added DDS BC5 reading #5501 [radarhere]
-
Raise an error if ImageDraw.textbbox is used without a TrueType font #5510 [radarhere]
-
Added ICO saving in BMP format #5513 [radarhere]
-
Ensure PNG seeks to end of previous chunk at start of load_end #5493 [radarhere]
-
Do not allow TIFF to seek to a past frame #5473 [radarhere]
-
Avoid race condition when displaying images with eog #5507 [mconst]
-
Added specific error messages when ink has incorrect number of bands #5504 [radarhere]
-
Allow converting an image to a numpy array to raise errors #5379 [radarhere]
-
Removed DPI rounding from BMP, JPEG, PNG and WMF loading #5476, #5470 [radarhere]
-
Remove spikes when drawing thin pieslices #5460 [xtsm]
-
Updated default value for SAMPLESPERPIXEL TIFF tag #5452 [radarhere]
-
Removed TIFF DPI rounding #5446 [radarhere, hugovk]
-
Include code in WebP error #5471 [radarhere]
-
Do not alter pixels outside mask when drawing text on an image with transparency #5434 [radarhere]
-
Reset handle when seeking backwards in TIFF #5443 [radarhere]
-
Replace sys.stdout with sys.stdout.buffer when saving #5437 [radarhere]
-
Fixed UNDEFINED TIFF tag of length 0 being changed in roundtrip #5426 [radarhere]
-
Fixed bug when checking FreeType2 version if it is not installed #5445 [radarhere]
-
Do not round dimensions when saving PDF #5459 [radarhere]
-
Added ImageOps contain() #5417 [radarhere, hugovk]
-
Changed WebP default "method" value to 4 #5450 [radarhere]
-
Switched to saving 1-bit PDFs with DCTDecode #5430 [radarhere]
-
Use bpp from ICO header #5429 [radarhere]
-
Corrected JPEG APP14 transform value #5408 [radarhere]
-
Changed TIFF tag 33723 length to 1 #5425 [radarhere]
-
Changed ImageMorph incorrect mode errors to ValueError #5414 [radarhere]
-
Add EXIF tags specified in EXIF 2.32 #5419 [gladiusglad]
-
Treat previous contents of first GIF frame as transparent #5391 [radarhere]
-
For special image modes, revert default resize resampling to NEAREST #5411 [radarhere]
-
JPEG2000: Support decoding subsampled RGB and YCbCr images #4996 [nulano, radarhere]
-
Stop decoding BC1 punchthrough alpha in BC2&3 #4144 [jansol]
-
Use zero if GIF background color index is missing #5390 [radarhere]
-
Fixed ensuring that GIF previous frame was loaded #5386 [radarhere]
-
Valgrind fixes #5397 [wiredfool]
-
Round down the radius in rounded_rectangle #5382 [radarhere]
-
Fixed reading uncompressed RGB data from DDS #5383 [radarhere]
v8.2.0
-
Added getxmp() method #5144 [UrielMaD, radarhere]
-
Add ImageShow support for GraphicsMagick #5349 [latosha-maltba, radarhere]
-
Do not load transparent pixels from subsequent GIF frames #5333 [zewt, radarhere]
-
Use LZW encoding when saving GIF images #5291 [raygard]
-
Set all transparent colors to be equal in quantize() #5282 [radarhere]
-
Allow PixelAccess to use Python int when parsing x and y #5206 [radarhere]
-
Removed Image._MODEINFO #5316 [radarhere]
-
Add preserve_tone option to autocontrast #5350 [elejke, radarhere]
-
Fixed linear_gradient and radial_gradient I and F modes #5274 [radarhere]
-
Add support for reading TIFFs with PlanarConfiguration=2 #5364 [kkopachev, wiredfool, nulano]
-
Deprecated categories #5351 [radarhere]
-
Do not premultiply alpha when resizing with Image.NEAREST resampling #5304 [nulano]
-
Dynamically link FriBiDi instead of Raqm #5062 [nulano]
-
Allow fewer PNG palette entries than the bit depth maximum when saving #5330 [radarhere]
-
Use duration from info dictionary when saving WebP #5338 [radarhere]
-
Stop flattening EXIF IFD into getexif() #4947 [radarhere, kkopachev]
-
Replaced tiff_deflate with tiff_adobe_deflate compression when saving TIFF images #5343 [radarhere]
-
Save ICC profile from TIFF encoderinfo #5321 [radarhere]
-
Moved RGB fix inside ImageQt class #5268 [radarhere]
-
Allow alpha_composite destination to be negative #5313 [radarhere]
-
Ensure file is closed if it is opened by ImageQt.ImageQt #5260 [radarhere]
-
Added ImageDraw rounded_rectangle method #5208 [radarhere]
-
Added IPythonViewer #5289 [radarhere, Kipkurui-mutai]
-
Only draw each rectangle outline pixel once #5183 [radarhere]
-
Use mmap instead of built-in Win32 mapper #5224 [radarhere, cgohlke]
-
Handle PCX images with an odd stride #5214 [radarhere]
-
Only read different sizes for "Large Thumbnail" MPO frames #5168 [radarhere]
-
Added PyQt6 support #5258 [radarhere]
-
Changed Image.open formats parameter to be case-insensitive #5250 [Piolie, radarhere]
-
Deprecate Tk/Tcl 8.4, to be removed in Pillow 10 (2023-07-01) #5216 [radarhere]
-
Added tk version to pilinfo #5226 [radarhere, nulano]
-
Support for ignoring tests when running valgrind #5150 [wiredfool, radarhere, hugovk]
-
OSS-Fuzz support #5189 [wiredfool, radarhere]
v8.1.2
- Fix Memory DOS in BLP (CVE-2021-27921), ICNS (CVE-2021-27922) and ICO (CVE-2021-27923) Image Plugins [wiredfool]
v8.1.1
-
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
-
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
-
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
-
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
-
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
- Raise an EOFError when seeking too far in PNG #4528 [radarhere]
v7.1.1
v7.1.0
-
Fix multiple OOB reads in FLI decoding #4503 [wiredfool]
-
Fix buffer overflow in SGI-RLE decoding #4504 [wiredfool, hugovk]
-
Fix bounds overflow in JPEG 2000 decoding #4505 [wiredfool]
-
Fix bounds overflow in PCX decoding #4506 [wiredfool]
-
Fix 2 buffer overflows in TIFF decoding #4507 [wiredfool]
-
Add APNG support #4243 [pmrowla, radarhere, hugovk]
-
ImageGrab.grab() for Linux with XCB #4260 [nulano, radarhere]
-
Added three new channel operations #4230 [dwastberg, radarhere]
-
Prevent masking of Image reduce method in Jpeg2KImagePlugin #4474 [radarhere, homm]
-
Added reading of earlier ImageMagick PNG EXIF data #4471 [radarhere]
-
Fixed endian handling for I;16 getextrema #4457 [radarhere]
-
Release buffer if function returns prematurely #4381 [radarhere]
-
Add JPEG comment to info dictionary #4455 [radarhere]
-
Fix size calculation of Image.thumbnail() #4404 [orlnub123]
-
Fixed stroke on FreeType < 2.9 #4401 [radarhere]
-
If present, only use alpha channel for bounding box #4454 [radarhere]
-
Warn if an unknown feature is passed to features.check() #4438 [jdufresne]
-
Fix Name field length when saving IM images #4424 [hugovk, radarhere]
-
Allow saving of zero quality JPEG images #4440 [radarhere]
-
Allow explicit zero width to hide outline #4334 [radarhere]
-
Change ContainerIO return type to match file object mode #4297 [jdufresne, radarhere]
-
Only draw each polygon pixel once #4333 [radarhere]
-
Add support for shooting situation Exif IFD tags #4398 [alexagv]
-
Handle multiple and malformed JPEG APP13 markers #4370 [homm]
-
Depends: Update libwebp to 1.1.0 #4342, libjpeg to 9d #4352 [radarhere]
v7.0.0
-
Drop support for EOL Python 2.7 #4109 [hugovk, radarhere, jdufresne]
-
Fix rounding error on RGB to L conversion #4320 [homm]
-
Exif writing fixes: Rational boundaries and signed/unsigned types #3980 [kkopachev, radarhere]
-
Allow loading of WMF images at a given DPI #4311 [radarhere]
-
Added reduce operation #4251 [homm]
-
Raise ValueError for io.StringIO in Image.open #4302 [radarhere, hugovk]
-
Fix thumbnail geometry when DCT scaling is used #4231 [homm, radarhere]
-
Use default DPI when exif provides invalid x_resolution #4147 [beipang2, radarhere]
-
Change default resize resampling filter from NEAREST to BICUBIC #4255 [homm]
-
Fixed black lines on upscaled images with the BOX filter #4278 [homm]
-
Better thumbnail aspect ratio preservation #4256 [homm]
-
Add La mode packing and unpacking #4248 [homm]
-
Include tests in coverage reports #4173 [hugovk]
-
Handle broken Photoshop data #4239 [radarhere]
-
Raise a specific exception if no data is found for an MPO frame #4240 [radarhere]
-
Fix Unicode support for PyPy #4145 [nulano]
-
Added UnidentifiedImageError #4182 [radarhere, hugovk]
-
Remove deprecated version from plugins #4197 [hugovk, radarhere]
-
Fixed freeing unallocated pointer when resizing with height too large #4116 [radarhere]
-
Copy info in Image.transform #4128 [radarhere]
-
Corrected DdsImagePlugin setting info gamma #4171 [radarhere]
-
Depends: Update libtiff to 4.1.0 #4195, Tk Tcl to 8.6.10 #4229, libimagequant to 2.12.6 #4318 [radarhere]
-
Improve handling of file resources #3577 [jdufresne]
-
Removed CI testing of Fedora 29 #4165 [hugovk]
-
Added pypy3 to tox envlist #4137 [jdufresne]
-
Drop support for EOL PyQt4 and PySide #4108 [hugovk, radarhere]
-
Removed deprecated setting of TIFF image sizes #4114 [radarhere]
-
Removed deprecated PILLOW_VERSION #4107 [hugovk]
-
Changed default frombuffer raw decoder args #1730 [radarhere]
v6.2.2
-
This is the last Pillow release to support Python 2.7 #3642
-
Overflow checks for realloc for tiff decoding. CVE-2020-5310 [wiredfool, radarhere]
-
Catch SGI buffer overrun. CVE-2020-5311 [radarhere]
-
Catch PCX P mode buffer overrun. CVE-2020-5312 [radarhere]
-
Catch FLI buffer overrun. CVE-2020-5313 [radarhere]
-
Raise an error for an invalid number of bands in FPX image. CVE-2019-19911 [wiredfool, radarhere]
v6.2.1
- Add support for Python 3.8 #4141 [hugovk]
v6.2.0
-
Catch buffer overruns #4104 [radarhere]
-
Initialize rows_per_strip when RowsPerStrip tag is missing #4034 [cgohlke, radarhere]
-
Raise error if TIFF dimension is a string #4103 [radarhere]
-
Added decompression bomb checks #4102 [radarhere]
-
Fix ImageGrab.grab DPI scaling on Windows 10 version 1607+ #4000 [nulano, radarhere]
-
Corrected negative seeks #4101 [radarhere]
-
Added argument to capture all screens on Windows #3950 [nulano, radarhere]
-
Updated warning to specify when Image.frombuffer defaults will change #4086 [radarhere]
-
Changed WindowsViewer format to PNG #4080 [radarhere]
-
Use TIFF orientation #4063 [radarhere]
-
Raise the same error if a truncated image is loaded a second time #3965 [radarhere]
-
Lazily use ImageFileDirectory_v1 values from Exif #4031 [radarhere]
-
Improved HSV conversion #4004 [radarhere]
-
Added text stroking #3978 [radarhere, hugovk]
-
No more deprecated bdist_wininst .exe installers #4029 [hugovk]
-
Do not allow floodfill to extend into negative coordinates #4017 [radarhere]
-
Fixed arc drawing bug for a non-whole number of degrees #4014 [radarhere]
-
Fix bug when merging identical images to GIF with a list of durations #4003 [djy0, radarhere]
-
Fix bug in TIFF loading of BufferedReader #3998 [chadawagner]
-
Added fallback for finding ld on MinGW Cygwin #4019 [radarhere]
-
Remove indirect dependencies from requirements.txt #3976 [hugovk]
-
Depends: Update libwebp to 1.0.3 #3983, libimagequant to 2.12.5 #3993, freetype to 2.10.1 #3991 [radarhere]
-
Change overflow check to use PY_SSIZE_T_MAX #3964 [radarhere]
-
Report reason for pytest skips #3942 [hugovk]
v6.1.0
-
Deprecate Image.del #3929 [jdufresne]
-
Tiff: Add support for JPEG quality #3886 [olt]
-
Respect the PKG_CONFIG environment variable when building #3928 [chewi]
-
Use explicit memcpy() to avoid unaligned memory accesses #3225 [DerDakon]
-
Improve encoding of TIFF tags #3861 [olt]
-
Update Py_UNICODE to Py_UCS4 #3780 [nulano]
-
Consider I;16 pixel size when drawing #3899 [radarhere]
-
Add TIFFTAG_SAMPLEFORMAT to blocklist #3926 [cgohlke, radarhere]
-
Create GIF deltas from background colour of GIF frames if disposal mode is 2 #3708 [sircinnamon, radarhere]
-
Added ImageSequence all_frames #3778 [radarhere]
-
Use unsigned int to store TIFF IFD offsets #3923 [cgohlke]
-
Include CPPFLAGS when searching for libraries #3819 [jefferyto]
-
Updated TIFF tile descriptors to match current decoding functionality #3795 [dmnisson]
-
Added an
image.entropy()
method (second revision) #3608 [fish2000] -
Pass the correct types to PyArg_ParseTuple #3880 [QuLogic]
-
Fixed crash when loading non-font bytes #3912 [radarhere]
-
Fix SPARC memory alignment issues in Pack/Unpack functions #3858 [kulikjak]
-
Added CMYK;16B and CMYK;16N unpackers #3913 [radarhere]
-
Fixed bugs in calculating text size #3864 [radarhere]
-
Add main.py to output basic format and support information #3870 [jdufresne]
-
Added variation font support #3802 [radarhere]
-
Do not down-convert if image is LA when showing with PNG format #3869 [radarhere]
-
Improve handling of PSD frames #3759 [radarhere]
-
Improved ICO and ICNS loading #3897 [radarhere]
-
Changed Preview application path so that it is no longer static #3896 [radarhere]
-
Corrected ttb text positioning #3856 [radarhere]
-
Handle unexpected ICO image sizes #3836 [radarhere]
-
Fixed bits value for RGB;16N unpackers #3837 [kkopachev]
-
Travis CI: Add Fedora 30, remove Fedora 28 #3821 [hugovk]
-
Added reading of CMYK;16L TIFF images #3817 [radarhere]
-
Fixed dimensions of 1-bit PDFs #3827 [radarhere]
-
Fixed opening mmap image through Path on Windows #3825 [radarhere]
-
Fixed ImageDraw arc gaps #3824 [radarhere]
-
Expand GIF to include frames with extents outside the image size #3822 [radarhere]
-
Fixed ImageTk getimage #3814 [radarhere]
-
Fixed bug in decoding large images #3791 [radarhere]
-
Fixed reading APP13 marker without Photoshop data #3771 [radarhere]
-
Added option to include layered windows in ImageGrab.grab on Windows #3808 [radarhere]
-
Detect libimagequant when installed by pacman on MingW #3812 [radarhere]
-
Fixed raqm layout bug #3787 [radarhere]
-
Fixed loading font with non-Unicode path on Windows #3785 [radarhere]
-
Travis CI: Upgrade PyPy from 6.0.0 to 7.1.1 #3783 [hugovk, johnthagen]
-
Depends: Updated openjpeg to 2.3.1 #3794, raqm to 0.7.0 #3877, libimagequant to 2.12.3 #3889 [radarhere]
-
Fix numpy bool bug #3790 [radarhere]
v6.0.0
-
Python 2.7 support will be removed in Pillow 7.0.0 #3682 [hugovk]
-
Add EXIF class #3625 [radarhere]
-
Add ImageOps exif_transpose method #3687 [radarhere]
-
Added warnings to deprecated CMSProfile attributes #3615 [hugovk]
-
Documented reading TIFF multiframe images #3720 [akuchling]
-
Improved speed of opening an MPO file #3658 [Glandos]
-
Update palette in quantize #3721 [radarhere]
-
Improvements to TIFF is_animated and n_frames #3714 [radarhere]
-
Fixed incompatible pointer type warnings #3754 [radarhere]
-
Improvements to PA and LA conversion and palette operations #3728 [radarhere]
-
Consistent DPI rounding #3709 [radarhere]
-
Change size of MPO image to match frame #3588 [radarhere]
-
Read Photoshop resolution data #3701 [radarhere]
-
Ensure image is mutable before saving #3724 [radarhere]
-
Correct remap_palette documentation #3740 [radarhere]
-
Promote P images to PA in putalpha #3726 [radarhere]
-
Allow RGB and RGBA values for new P images #3719 [radarhere]
-
Fixed TIFF bug when seeking backwards and then forwards #3713 [radarhere]
-
Cache EXIF information #3498 [Glandos]
-
Added transparency for all PNG grayscale modes #3744 [radarhere]
-
Fix deprecation warnings in Python 3.8 #3749 [radarhere]
-
Fixed GIF bug when rewinding to a non-zero frame #3716 [radarhere]
-
Only close original fp in del and exit if original fp is exclusive #3683 [radarhere]
-
Fix BytesWarning in Tests/test_numpy.py #3725 [jdufresne]
-
Add missing MIME types and extensions #3520 [pirate486743186]
-
Add I;16 PNG save #3566 [radarhere]
-
Add support for BMP RGBA bitfield compression #3705 [radarhere]
-
Added ability to set language for text rendering #3693 [iwsfutcmd]
-
Only close exclusive fp on Image exit #3698 [radarhere]
-
Changed EPS subprocess stdout from devnull to None #3635 [radarhere]
-
Add reading old-JPEG compressed TIFFs #3489 [kkopachev]
-
Add EXIF support for PNG #3674 [radarhere]
-
Add option to set dither param on quantize #3699 [glasnt]
-
Add reading of DDS uncompressed RGB data #3673 [radarhere]
-
Correct length of Tiff BYTE tags #3672 [radarhere]
-
Add DIB saving and loading through Image open #3691 [radarhere]
-
Removed deprecated VERSION #3624 [hugovk]
-
Fix 'BytesWarning: Comparison between bytes and string' in PdfDict #3580 [jdufresne]
-
Do not resize in Image.thumbnail if already the destination size #3632 [radarhere]
-
Replace .seek() magic numbers with io.SEEK_* constants #3572 [jdufresne]
-
Make ContainerIO.isatty() return a bool, not int #3568 [jdufresne]
-
Add support to all transpose operations for I;16 modes #3563, #3741 [radarhere]
-
Deprecate support for PyQt4 and PySide #3655 [hugovk, radarhere]
-
Add TIFF compression codecs: LZMA, Zstd, WebP #3555 [cgohlke]
-
Fixed pickling of iTXt class with protocol > 1 #3537 [radarhere]
-
_util.isPath returns True for pathlib.Path objects #3616 [wbadart]
-
Remove unnecessary unittest.main() boilerplate from test files #3631 [jdufresne]
-
Exif: Seek to IFD offset #3584 [radarhere]
-
Deprecate PIL.*ImagePlugin.version attributes #3628 [jdufresne]
-
Docs: Add note about ImageDraw operations that exceed image bounds #3620 [radarhere]
-
Allow for unknown PNG chunks after image data #3558 [radarhere]
-
Changed EPS subprocess stdin from devnull to None #3611 [radarhere]
-
Fix possible integer overflow #3609 [cgohlke]
-
Catch BaseException for resource cleanup handlers #3574 [jdufresne]
-
Improve pytest configuration to allow specific tests as CLI args #3579 [jdufresne]
-
Drop support for Python 3.4 #3596 [hugovk]
-
Remove deprecated PIL.OleFileIO #3598 [hugovk]
-
Remove deprecated ImageOps undocumented functions #3599 [hugovk]
-
Depends: Update libwebp to 1.0.2 #3602 [radarhere]
-
Detect MIME types #3525 [radarhere]
v5.4.1
-
File closing: Only close __fp if not fp #3540 [radarhere]
-
Fix build for Termux #3529 [pslacerda]
-
PNG: Detect MIME types #3525 [radarhere]
-
PNG: Handle IDAT chunks after image end #3532 [radarhere]
v5.4.0
-
Docs: Improved ImageChops documentation #3522 [radarhere]
-
Allow RGB and RGBA values for P image putpixel #3519 [radarhere]
-
Add APNG extension to PNG plugin #3501 [pirate486743186, radarhere]
-
Lookup ld.so.cache instead of hardcoding search paths #3245 [pslacerda]
-
Added custom string TIFF tags #3513 [radarhere]
-
Improve setup.py configuration #3395 [diorcety]
-
Read textual chunks located after IDAT chunks for PNG #3506 [radarhere]
-
Performance: Don't try to hash value if enum is empty #3503 [Glandos]
-
Added custom int and float TIFF tags #3350 [radarhere]
-
Fixes for issues reported by static code analysis #3393 [frenzymadness]
-
GIF: Wait until mode is normalized to copy im.info into encoderinfo #3187 [radarhere]
-
Docs: Add page of deprecations and removals #3486 [hugovk]
-
Travis CI: Upgrade PyPy from 5.8.0 to 6.0 #3488 [hugovk]
-
Travis CI: Allow lint job to fail #3467 [hugovk]
-
Resolve __fp when closing and deleting #3261 [radarhere]
-
Close exclusive fp before discarding #3461 [radarhere]
-
Updated open files documentation #3490 [radarhere]
-
Added libjpeg_turbo to check_feature #3493 [radarhere]
-
Change color table index background to tuple when saving as WebP #3471 [radarhere]
-
Allow arbitrary number of comment extension subblocks #3479 [radarhere]
-
Ensure previous FLI frame is loaded before seeking to the next #3478 [radarhere]
-
ImageShow improvements #3450 [radarhere]
-
Depends: Update libimagequant to 2.12.2 #3442, libtiff to 4.0.10 #3458, libwebp to 1.0.1 #3468, Tk Tcl to 8.6.9 #3465 [radarhere]
-
Check quality_layers type #3464 [radarhere]
-
Add context manager, del and close methods to TarIO #3455 [radarhere]
-
Test: Do not play sound when running screencapture command #3454 [radarhere]
-
Close exclusive fp on open exception #3456 [radarhere]
-
Only close existing fp in WebP if fp is exclusive #3418 [radarhere]
-
Docs: Re-add the downloads badge #3443 [hugovk]
-
Added negative index to PixelAccess #3406 [Nazime]
-
Change tuple background to global color table index when saving as GIF #3385 [radarhere]
-
Test: Improved ImageGrab tests #3424 [radarhere]
-
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
-
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]
-
Avoid deprecated 'U' mode when opening files #2187 [jdufresne]
v5.2.0
-
Fixed saving a multiframe image as a single frame PDF #3137 [radarhere]
-
If a Qt version is already imported, attempt to use it first #3143 [radarhere]
-
Fix transform fill color for alpha images #3147 [fozcode]
-
TGA: Add support for writing RLE data #3186 [danpla]
-
TGA: Read and write LA data #3178 [danpla]
-
QuantOctree.c: Remove erroneous attempt to average over an empty range #3196 [tkoeppe]
-
Changed ICNS format tests to pass on OS X 10.11 #3202 [radarhere]
-
Fixed bug in ImageDraw.multiline_textsize() #3114 [tianyu139]
-
Added getsize_multiline support for PIL.ImageFont #3113 [tianyu139]
-
Added ImageFile get_format_mimetype method #3190 [radarhere]
-
Changed mmap file pointer to use context manager #3216 [radarhere]
-
Changed ellipse point calculations to be more evenly distributed #3142 [radarhere]
-
Only extract first Exif segment #2946 [hugovk]
-
Tests: Test ImageDraw2, WalImageFile #3135, #2989 [hugovk]
-
Remove unnecessary '#if 0' code #3075 [hugovk]
-
Tests: Added GD tests #1817 [radarhere]
-
Fix collections ABCs DeprecationWarning in Python 3.7 #3123 [hugovk]
-
unpack_from is faster than unpack of slice #3201 [landfillbaby]
-
Docs: Add coordinate system links and file handling links in documentation #3204, #3214 [radarhere]
-
Tests: TestFilePng: Fix test_save_l_transparency() #3182 [danpla]
-
Docs: Correct argument name #3171 [radarhere]
-
Docs: Update CMake download URL #3166 [radarhere]
-
Docs: Improve Image.transform documentation #3164 [radarhere]
-
Fix transform fillcolor argument when image mode is RGBA or LA #3163 [radarhere]
-
Tests: More specific Exception testing #3158 [radarhere]
-
Add getrgb HSB/HSV color strings #3148 [radarhere]
-
Allow float values in getrgb HSL color string #3146 [radarhere]
-
AppVeyor: Upgrade to Python 2.7.15 and 3.4.4 #3140 [radarhere]
-
AppVeyor: Upgrade to PyPy 6.0.0 #3133 [hugovk]
-
Deprecate PILLOW_VERSION and VERSION #3090 [hugovk]
-
Support Python 3.7 #3076 [hugovk]
-
Depends: Update freetype to 2.9.1, libjpeg to 9c, libwebp to 1.0.0 #3121, #3136, #3108 [radarhere]
-
Build macOS wheels with Xcode 6.4, supporting older macOS versions #3068 [wiredfool]
-
Fix _i2f compilation on some GCC versions #3067 [homm]
-
Changed encoderinfo to have priority over info when saving GIF images #3086 [radarhere]
-
Rename PIL.version to PIL._version and remove it from module #3083 [homm]
-
Enable background colour parameter on rotate #3057 [storesource]
-
Remove unnecessary
#if 1
directive #3072 [jdufresne] -
Remove unused Python class, Path #3070 [jdufresne]
-
Fix dereferencing type-punned pointer will break strict-aliasing #3069 [jdufresne]
v5.1.0
-
Close fp before return in ImagingSavePPM #3061 [kathryndavies]
-
Added documentation for ICNS append_images #3051 [radarhere]
-
Docs: Move intro text below its header #3021 [hugovk]
-
CI: Rename appveyor.yml as .appveyor.yml #2978 [hugovk]
-
Fix TypeError for JPEG2000 parser feed #3042 [hugovk]
-
Certain corrupted jpegs can result in no data read #3023 [kkopachev]
-
Add support for BLP file format #3007 [jleclanche]
-
Simplify version checks #2998 [hugovk]
-
Fix "invalid escape sequence" warning on Python 3.6+ #2996 [timgraham]
-
Allow append_images to set .icns scaled images #3005 [radarhere]
-
Support appending to existing PDFs #2965 [vashek]
-
Fix and improve efficient saving of ICNS on macOS #3004 [radarhere]
-
Build: Enable pip cache in AppVeyor build #3009 [thijstriemstra]
-
Trim trailing whitespace #2985 [Metallicow]
-
Docs: Correct reference to Image.new method #3000 [radarhere]
-
Rearrange ImageFilter classes into alphabetical order #2990 [radarhere]
-
Test: Remove duplicate line #2983 [radarhere]
-
Build: Update AppVeyor PyPy version #3003 [radarhere]
-
Tiff: Open 8 bit Tiffs with 5 or 6 channels, discarding extra channels #2938 [homm]
-
Readme: Added Twitter badge #2930 [hugovk]
-
Removed main code from ImageCms #2942 [radarhere]
-
Test: Changed assert statements to unittest calls #2961 [radarhere]
-
Depends: Update libimagequant to 2.11.10, raqm to 0.5.0, freetype to 2.9 #3036, #3017, #2957 [radarhere]
-
Remove _imaging.crc32 in favor of builtin Python crc32 implementation #2935 [wiredfool]
-
Move Tk directory to src directory #2928 [hugovk]
-
Enable pip cache in Travis CI #2933 [jdufresne]
-
Remove unused and duplicate imports #2927 [radarhere]
-
Docs: Changed documentation references to 2.x to 2.7 #2921 [radarhere]
-
Fix memory leak when opening webp files #2974 [wiredfool]
-
Setup: Fix "TypeError: 'NoneType' object is not iterable" for PPC and CRUX #2951 [hugovk]
-
Setup: Add libdirs for ppc64le and armv7l #2968 [nehaljwani]
v5.0.0
-
Docs: Added docstrings from documentation #2914 [radarhere]
-
Test: Switch from nose to pytest #2815 [hugovk]
-
Rework Source directory layout, preventing accidental import of PIL. #2911 [wiredfool]
-
Dynamically link libraqm #2753 [wiredfool]
-
Removed scripts directory #2901 [wiredfool]
-
TIFF: Run all compressed tiffs through libtiff decoder #2899 [wiredfool]
-
GIF: Add disposal option when saving GIFs #2902 [linnil1, wiredfool]
-
EPS: Allow for an empty line in EPS header data #2903 [radarhere]
-
PNG: Add support for sRGB and cHRM chunks, permit sRGB when no iCCP chunk present #2898 [wiredfool]
-
Dependencies: Update Tk Tcl to 8.6.8 #2905 [radarhere]
-
Decompression bomb error now raised for images 2x larger than a decompression bomb warning #2583 [wiredfool]
-
Test: avoid random failure in test_effect_noise #2894 [hugovk]
-
Increased epsilon for test_file_eps.py:test_showpage due to Arch update. #2896 [wiredfool]
-
Removed check parameter from _save in BmpImagePlugin, PngImagePlugin, ImImagePlugin, PalmImagePlugin, and PcxImagePlugin. #2873 [radarhere]
-
Make PngImagePlugin.add_text() zip argument type bool #2890 [jdufresne]
-
Depends: Updated libwebp to 0.6.1 #2880 [radarhere]
-
Remove unnecessary bool() calls in Image.registered_extensions and skipKnownBadTests #2891 [jdufresne]
-
Fix count of BITSPERSAMPLE items in broken TIFF files #2883 [homm]
-
Fillcolor parameter for Image.Transform #2852 [wiredfool]
-
Test: Display differences for test failures #2862 [wiredfool]
-
Added executable flag to file with shebang line #2884 [radarhere]
-
Setup: Specify compatible Python versions for pip #2877 [hugovk]
-
Dependencies: Updated libimagequant to 2.11.4 #2878 [radarhere]
-
Setup: Warn if trying to install for Py3.7 on Windows #2855 [hugovk]
-
Doc: Fonts can be loaded from a file-like object, not just filename #2861 [robin-norwood]
-
Add eog support for Ubuntu Image Viewer #2864 [NafisFaysal]
-
Test: Test on 3.7-dev on Travis CI #2870 [hugovk]
-
Dependencies: Update libtiff to 4.0.9 #2871 [radarhere]
-
Setup: Replace deprecated platform.dist with file existence check #2869 [wiredfool]
-
Build: Fix setup.py on Debian #2853 [wiredfool]
-
Docs: Correct error in ImageDraw documentation #2858 [meribold]
-
Test: Drop Ubuntu Precise, Fedora 24, Fedora 25, add Fedora 27, Centos 7, Amazon v2 CI Support #2854, #2843, #2895, #2897 [wiredfool]
-
Dependencies: Updated libimagequant to 2.11.3 #2849 [radarhere]
-
Test: Fix test_image.py to use tempfile #2841 [radarhere]
-
Replace PIL.OleFileIO deprecation warning with descriptive ImportError #2833 [hugovk]
-
WebP: Add support for animated WebP files #2761 [jd20]
-
PDF: Set encoderinfo for images when saving multi-page PDF. Fixes #2804. #2805 [ixio]
-
Allow the olefile dependency to be optional #2789 [jdufresne]
-
GIF: Permit LZW code lengths up to 12 bits in GIF decode #2813 [wiredfool]
-
Fix unterminated string and unchecked exception in _font_text_asBytes. #2825 [wiredfool]
-
PPM: Use fixed list of whitespace, rather relying on locale, fixes #272. #2831 [markmiscavage]
-
Added support for generators when using append_images #2829, #2835 [radarhere]
-
Doc: Correct PixelAccess.rst #2824 [hasahmed]
-
Depends: Update raqm to 0.3.0 #2822 [radarhere]
-
Docs: Link to maintained version of aggdraw #2809 [hugovk]
-
Include license file in the generated wheel packages #2801 [jdufresne]
-
Depends: Update openjpeg to 2.3.0 #2791 [radarhere]
-
Add option to Makefile to build and install with C coverage #2781 [hugovk]
-
Add context manager support to ImageFile.Parser and PngImagePlugin.ChunkStream #2793 [radarhere]
-
ImageDraw.textsize: fix zero length error #2788 [wiredfool, hugovk]
v4.3.0
-
Fix warning on pointer cast in isblock #2775, #2778 [cgohlke]
-
Doc: Added macOS High Sierra tested Pillow version #2777 [radarhere]
-
Use correct Windows handle type on 64 bit in imagingcms #2774 [cgohlke]
-
64 Bit Windows fix for block storage #2773 [cgohlke]
-
Fix "expression result unused" warning #2764 [radarhere]
-
Add 16bit Read/Write and RLE read support to SgiImageFile #2769 [jbltx, wiredfool]
-
Block & array hybrid storage #2738 [homm]
-
Common seek frame position check #1849 [radarhere]
-
Doc: Add note about aspect ratio to Image thumbnail script #2281 [wilsonge]
-
Fix ValueError: invalid version number '1.0.0rc1' in scipy release candidate #2771 [cgohlke]
-
Unfreeze requirements.txt #2766 [hugovk]
-
Test: ResourceWarning tests #2756 [hugovk]
-
Use n_frames to determine is_animated if possible #2315 [radarhere]
-
Doc: Corrected parameters in documentation #2768 [radarhere]
-
Avoid unnecessary Image operations #1891 [radarhere]
-
Added register_extensions method #1860 [radarhere]
-
Fix TIFF support for I;16S, I;16BS, and I;32BS rawmodes #2748 [wiredfool]
-
Fixed doc syntax in ImageDraw #2752 [radarhere]
-
Fixed support for building on Windows/msys2. Added Appveyor CI coverage for python3 on msys2 #2746 [wiredfool]
-
Fix ValueError in Exif/Tiff IFD #2719 [wiredfool]
-
Use pathlib2 for Path objects on Python < 3.4 #2291 [asergi]
-
Export only required properties in unsafe_ptrs #2740 [homm]
-
Alpha composite fixes #2709 [homm]
-
Faster Transpose operations, added 'Transverse' option #2730 [homm]
-
Deprecate ImageOps undocumented functions gaussian_blur, gblur, unsharp_mask, usm and box_blur in favor of ImageFilter implementations #2735 [homm]
-
Dependencies: Updated freetype to 2.8.1 #2741 [radarhere]
-
Bug: Player skipped first image #2742 [radarhere]
-
Faster filter operations for Kernel, Gaussian, and Unsharp Mask filters #2679 [homm]
-
EPS: Add showpage to force rendering of some EPS images #2636 [kaplun]
-
DOC: Fix type of palette parameter in Image.quantize. #2703 [kkopachev]
-
DOC: Fix Ico docs to match code #2712 [hugovk]
-
Added file pointer save to SpiderImagePlugin #2647 [radarhere]
-
Add targa version 2 footer #2713 [jhultgre]
-
Removed redundant lines #2714 [radarhere]
-
Travis CI: Use default pypy/pypy3 #2721 [hugovk]
-
Fix for SystemError when rendering an empty string, added in 4.2.0 #2706 [wiredfool]
-
Fix for memory leaks in font handling added in 4.2.0 #2634 [wiredfool]
-
Tests: cleanup, more tests. Fixed WMF save handler #2689 [radarhere]
-
Removed debugging interface for Image.core.grabclipboard #2708 [radarhere]
-
Doc syntax fix #2710 [radarhere]
-
Faster packing and unpacking for RGB, LA, and related storage modes #2693 [homm]
-
Use RGBX rawmode for RGB JPEG images where possible #1989 [homm]
-
Remove palettes from non-palette modes in _new #2704 [wiredfool]
-
Delete transparency info when convert'ing RGB/L to RGBA #2633 [olt]
-
Code tweaks to ease type annotations #2687 [neiljp]
-
Fixed incorrect use of 's#' to byteslike object #2691 [wiredfool]
-
Fix JPEG subsampling labels for subsampling=2 #2698 [homm]
-
Region of interest (box) for resampling #2254 [homm]
-
Basic support for Termux (android) in setup.py #2684 [wiredfool]
-
Bug: Fix Image.fromarray for numpy.bool type. #2683 [wiredfool]
-
CI: Add Fedora 24 and 26 to Docker tests [wiredfool]
-
JPEG: Fix ZeroDivisionError when EXIF contains invalid DPI (0/0). #2667 [vytisb]
-
Depends: Updated openjpeg to 2.2.0 #2669 [radarhere]
-
Depends: Updated Tk Tcl to 8.6.7 #2668 [radarhere]
-
Depends: Updated libimagequant to 2.10.2 #2660 [radarhere]
-
Test: Added test for ImImagePlugin tell() #2675 [radarhere]
-
Test: Additional tests for SGIImagePlugin #2659 [radarhere]
-
New Image.getchannel method #2661 [homm]
-
Remove unused im.copy2 and core.copy methods #2657 [homm]
-
Fast Image.merge() #2677 [homm]
-
Fast Image.split() #2676 [homm]
-
Fast image allocation #2655 [homm]
-
Storage cleanup #2654 [homm]
-
FLI: Use frame count from FLI header #2674 [radarhere]
-
Test: Test animated FLI file #2650 [hugovk]
-
Bug: Fixed uninitialized memory in bc5 decoding #2648 [ifeherva]
-
Moved SgiImagePlugin save error to before the start of write operations #2646 [radarhere]
-
Move createfontdatachunk.py so isn't installed globally #2645 [hugovk]
-
Bug: Fix unexpected keyword argument 'align' #2641 [hugovk]
-
Add newlines to error message for clarity #2640 [hugovk]
-
Docs: Updated redirected URL #2637 [radarhere]
-
Bug: Fix JPEG DPI when EXIF is invalid #2632 [wiredfool]
-
Bug: Fix for font getsize on empty string #2624 [radarhere]
-
Docs: Improved ImageDraw documentation #2626 [radarhere]
-
Docs: Corrected alpha_composite args documentation #2627 [radarhere]
-
Docs: added the description of the filename attribute to images.rst #2621 [dasdachs]
-
Dependencies: Updated libimagequant to 2.10.1 #2616 [radarhere]
-
PDF: Renamed parameter to not shadow built-in dict #2612 [kijeong]
v4.2.1
- CI: Fix version specification and test on CI for PyPy/Windows #2608 [wiredfool]
v4.2.0
-
Doc: Clarified Image.save:append_images documentation #2604 [radarhere]
-
CI: Amazon Linux and Centos6 docker images added to Travis CI #2585 [wiredfool]
-
Image.alpha_composite added #2595 [wiredfool]
-
Complex Text Support #2576 [ShamsaHamed, Fahad-Alsaidi, wiredfool]
-
Added threshold parameter to ImageDraw.floodfill #2599 [nediamond]
-
Added dBATCH parameter to ghostscript command #2588 [radarhere]
-
JPEG: Adjust buffer size when icc_profile > MAXBLOCK #2596 [Darou]
-
Specify Pillow Version in one place #2517 [wiredfool]
-
CI: Change the owner of the TRAVIS_BUILD_DIR, fixing broken docker runs #2587 [wiredfool]
-
Fix truncated PNG loading for some images, Fix memory leak on truncated PNG images. #2541, #2598 [homm]
-
Add decompression bomb check to Image.crop #2410 [wiredfool]
-
ImageFile: Ensure that the
err_code
variable is initialized in case of exception. #2363 [alexkiro] -
Tiff: Support append_images for saving multipage TIFFs #2406 [blochl]
-
Doc: Clarify that draft is only implemented for JPEG and PCD #2409 [wiredfool]
-
Test: MicImagePlugin #2447 [hugovk]
-
Use round() instead of floor() to eliminate zero coefficients in resample #2558 [homm]
-
Remove deprecated code #2549 [hugovk]
-
Added append_images to PDF saving #2526 [radarhere]
-
Remove unused function core image function new_array #2548 [hugovk]
-
Remove unnecessary calls to dict.keys() #2551 [jdufresne]
-
Add more ImageDraw.py tests and remove unused Draw.c code #2533 [hugovk]
-
Test: More tests for ImageMorph #2554 [hugovk]
-
Test: McIDAS area file #2552 [radarhere]
-
Update Feature Detection #2520 [wiredfool]
-
CI: Update pypy on Travis CI #2573 [hugovk]
-
ImageMorph: Fix wrong expected size of MRLs read from disk #2561 [dov]
-
Docs: Update install docs for FreeBSD #2546 [wiredfool]
-
Build: Ignore OpenJpeg 1.5 on FreeBSD #2544 [melvyn-sopacua]
-
Remove 'not yet implemented' methods from PIL 1.1.4 #2538 [hugovk]
-
Dependencies: Update FreeType to 2.8, LibTIFF to 4.0.8 and libimagequant to 2.9.1 #2535 #2537 #2540 [radarhere]
-
Raise TypeError and not also UnboundLocalError in ImageFile.Parser() #2525 [joshblum]
-
Test: Use Codecov for coverage #2528 [hugovk]
-
Use PNG for Image.show() #2527 [HinTak, wiredfool]
-
Remove WITH_DEBUG compilation flag #2522 [wiredfool]
-
Fix return value on parameter parse error in _webp.c #2521 [adw1n]
-
Set executable flag on scripts with shebang line #2295 [radarhere]
-
Flake8 #2460 [radarhere]
-
Doc: Release Process Changes #2516 [wiredfool]
-
CI: Added region for s3 deployment on appveyor #2515 [wiredfool]
-
Doc: Updated references to point to existing files #2507 [radarhere]
-
Return copy on Image crop if crop dimensions match the image #2471 [radarhere]
v4.1.1
-
Undef PySlice_GetIndicesEx, see https://bugs.python.org/issue29943 #2493 [cgohlke]
-
Fix for file with DPI in EXIF but not metadata, and XResolution is an int rather than tuple #2484 [hugovk]
-
Docs: Removed broken download counter badge #2487 [hugovk]
-
Docs: Fixed rst syntax error #2477 [thebjorn]
v4.1.0
-
Close files after loading if possible #2330 [homm, wiredfool]
-
Fix Image Access to be reloadable when embedding the Python interpreter #2296 [wiredfool, cgohlke]
-
Fetch DPI from EXIF if not specified in JPEG header #2449, #2472 [hugovk]
-
Removed winbuild checksum verification #2468 [radarhere]
-
Git: Set ContainerIO test file as binary #2469 [cgohlke]
-
Remove superfluous import of FixTk #2455 [cgohlke)
-
Fix import of tkinter/Tkinter #2456 [cgohlke)
-
Pure Python Decoders, including Python decoder to fix for MSP images #1938 [wiredfool, hugovk]
-
Reorganized GifImagePlugin, fixes #2314. #2374 [radarhere, wiredfool]
-
Doc: Reordered operating systems in Compatibility Matrix #2436 [radarhere]
-
Test: Additional tests for BufrStub, Eps, Container, GribStub, IPTC, Wmf, XVThumb, ImageDraw, ImageMorph, ImageShow #2425 [radarhere]
-
Health fixes #2437 [radarhere]
-
Test: Correctness tests ContainerIO, XVThumbImagePlugin, BufrStubImagePlugin, GribStubImagePlugin, FitsStubImagePlugin, Hdf5StubImagePlugin, PixarImageFile, PsdImageFile #2443, #2442, #2441, #2440, #2431, #2430, #2428, #2427 [hugovk]
-
Remove unused imports #1822 [radarhere]
-
Replaced KeyError catch with dictionary get method #2424 [radarhere]
-
Test: Removed unrunnable code in test_image_toqimage #2415 [hugovk]
-
Removed use of spaces in TIFF kwargs names, deprecated in 2.7 #1390 [radarhere]
-
Removed deprecated ImageDraw setink, setfill, setfont methods #2220 [jdufresne]
-
Send unwanted subprocess output to /dev/null #2253 [jdufresne]
-
Fix division by zero when creating 0x0 image from numpy array #2419 [hugovk]
-
Test: Added matrix convert tests #2381 [hugovk]
-
Replaced broken URL to partners.adobe.com #2413 [radarhere]
-
Removed unused private functions in setup.py and build_dep.py #2414 [radarhere]
-
Test: Fixed Qt tests for QT5 and saving 1 bit PNG #2394 [wiredfool]
-
Test: docker builds for Arch and Debian Stretch #2394 [wiredfool]
-
Updated libwebp to 0.6.0 on appveyor #2395 [radarhere]
-
More explicit error message when saving to a file with invalid extension #2399 [ces42]
-
Docs: Update some http urls to https #2403 [hugovk]
-
Preserve aux/alpha channels when performing Imagecms transforms #2355 [gunjambi]
-
Test linear and radial gradient effects #2382 [hugovk]
-
Test ImageDraw.Outline and and ImageDraw.Shape #2389 [hugovk]
-
Added PySide to ImageQt documentation #2392 [radarhere]
-
BUG: Empty image mode no longer causes a crash #2380 [evalapply]
-
Exclude .travis and contents from manifest #2386 [radarhere]
-
Remove 'MIT-like' from license #2145 [wiredfool]
-
Tests: Add tests for several Image operations #2379 [radarhere]
-
PNG: Moved iCCP chunk before PLTE chunk when saving as PNG, restricted chunks known value/ordering #2347 [radarhere]
-
Default to inch-interpretation for missing ResolutionUnit in TiffImagePlugin #2365 [lambdafu]
-
Bug: Fixed segfault when using ImagingTk on pypy Issue #2376, #2359. [wiredfool]
-
Bug: Fixed Integer overflow using ImagingTk on 32 bit platforms #2359 [wiredfool, QuLogic]
-
Tests: Added docker images for testing alternate platforms. See also https://github.com/python-pillow/docker-images. #2368 [wiredfool]
-
Removed PIL 1.0 era TK readme that concerns Windows 95/NT #2360 [wiredfool]
-
Prevent
nose -v
printing docstrings #2369 [hugovk] -
Replaced absolute PIL imports with relative imports #2349 [radarhere]
-
Added context managers for file handling #2307 [radarhere]
-
Expose registered file extensions in Image #2343 [iggomez, radarhere]
-
Make mode descriptor cache initialization thread-safe. #2351 [gunjambi]
-
Updated Windows test dependencies: Freetype 2.7.1, zlib 1.2.11 #2331, #2332, #2357 [radarhere]
-
Followed upstream pngquant packaging reorg to libimagquant #2354 [radarhere]
-
Fix invalid string escapes #2352 [hugovk]
-
Add test for crop operation with no argument #2333 [radarhere]
v4.0.0
-
Refactor out postprocessing hack to load_end in PcdImageFile [wiredfool]
-
Add center and translate option to Image.rotate. #2328 [lambdafu]
-
Test: Relax WMF test condition, fixes #2323. #2327 [wiredfool]
-
Allow 0 size images, Fixes #2259, Reverts to pre-3.4 behavior. #2262 [wiredfool]
-
SGI: Save uncompressed SGI/BW/RGB/RGBA files #2325 [jbltx]
-
Depends: Updated pngquant to 2.8.2 #2319 [radarhere]
-
Test: Added correctness tests for opening SGI images #2324 [wiredfool]
-
Allow passing a list or tuple of individual frame durations when saving a GIF #2298 [Xdynix]
-
Unified different GIF optimize conditions #2196 [radarhere]
-
Build: Refactor dependency installation #2305 [hugovk]
-
Test: Add python 3.6 to travis, tox #2304 [hugovk]
-
Test: Fix coveralls coverage for Python+C #2300 [hugovk]
-
Remove executable bit and shebang from OleFileIO.py #2308 [jwilk, radarhere]
-
PyPy: Buffer interface workaround #2294 [wiredfool]
-
Test: Switch to Ubuntu Trusty 14.04 on Travis CI #2294
-
Remove vendored version of olefile Python package in favor of upstream #2199 [jdufresne]
-
Updated comments to use print as a function #2234 [radarhere]
-
Set executable flag on selftest.py, setup.py and added shebang line #2282, #2277 [radarhere, homm]
-
Test: Increase epsilon for FreeType 2.7 as rendering is slightly different. #2286 [hugovk]
-
Test: Faster assert_image_similar #2279 [homm]
-
Removed deprecated internal "stretch" method #2276 [homm]
-
Removed the handles_eof flag in decode.c #2223 [wiredfool]
-
Tiff: Fix for writing Tiff to BytesIO using libtiff #2263 [wiredfool]
-
Doc: Design docs #2269 [wiredfool]
-
Test: Move tests requiring libtiff to test_file_libtiff #2273 [wiredfool]
-
Update Maxblock heuristic #2275 [wiredfool]
-
Fix for 2-bit palette corruption #2274 [pdknsk, wiredfool]
-
Tiff: Update info.icc_profile when using libtiff reader. #2193 [lambdafu]
-
Test: Fix bug in test_ifd_rational_save when libtiff is not available #2270 [ChristopherHogan]
-
ICO: Only save relevant sizes #2267 [hugovk]
-
ICO: Allow saving .ico files of 256x256 instead of 255x255 #2265 [hugovk]
-
Fix TIFFImagePlugin ICC color profile saving. #2087 [cskau]
-
Doc: Improved description of ImageOps.deform resample parameter #2256 [radarhere]
-
EMF: support negative bounding box coordinates #2249 [glexey]
-
Close file if opened in WalImageFile #2216 [radarhere]
-
Use Image._new() instead of _makeself() #2248 [homm]
-
SunImagePlugin fixes #2241 [wiredfool]
-
Use minimal scale for jpeg drafts #2240 [homm]
-
Updated dependency scripts to use FreeType 2.7, OpenJpeg 2.1.2, WebP 0.5.2 and Tcl/Tk 8.6.6 #2235, #2236, #2237, #2290, #2302 [radarhere]
-
Fix "invalid escape sequence" bytestring warnings in Python 3.6 #2186 [timgraham]
-
Removed support for Python 2.6 and Python 3.2 #2192 [jdufresne]
-
Setup: Raise custom exceptions when required/requested dependencies are not found #2213 [wiredfool]
-
Use a context manager in FontFile.save() to ensure file is always closed #2226 [jdufresne]
-
Fixed bug in saving to fp-objects in Python >= 3.4 #2227 [radarhere]
-
Use a context manager in ImageFont._load_pilfont() to ensure file is always closed #2232 [jdufresne]
-
Use generator expressions instead of list comprehension #2225 [jdufresne]
-
Close file after reading in ImagePalette.load() #2215 [jdufresne]
-
Changed behaviour of default box argument for paste method to match docs #2211 [radarhere]
-
Add support for another BMP bitfield #2221 [jmerdich]
-
Added missing top-level test main #2222 [radarhere]
-
Replaced range(len()) #2197 [radarhere]
-
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
- Fix Resample coefficient calculation #2162 [homm]
v3.4.1
-
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
-
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]
-
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]
-
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]
-
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
- Fix fix for map.c overflow #2151 [wiredfool]
v3.3.2
-
Fix negative image sizes in Storage.c #2146 [wiredfool]
-
Fix integer overflow in map.c #2146 [wiredfool]
v3.3.1
-
Fix C90 compilation error for Tcl / Tk rewrite #2033 [matthew-brett]
-
Fix image loading when rotating by 0 deg #2052 [homm]
v3.3.0
-
Fixed enums for Resolution Unit and Predictor in TiffTags.py #1998 [wiredfool]
-
Fix issue converting P mode to LA #1986 [didrix]
-
Moved test_j2k_overflow to check_j2k_overflow, prevent DOS of our 32bit testing machines #1995 [wiredfool]
-
Skip CRC checks in PNG files when LOAD_TRUNCATED_IMAGES is enabled #1991 [kkopachev]
-
Added CMYK mode for opening EPS files #1826 [radarhere]
-
Docs: OSX build instruction clarification #1994 [wiredfool]
-
Docs: Filter comparison table #1993 [homm]
-
Removal of pthread based Incremental.c, new interface for file decoders/encoders to access the python file. Fixes assorted J2k Hangs. #1934 [wiredfool]
-
Skip unnecessary passes when resizing #1954 [homm]
-
Removed duplicate code in ImagePalette #1832 [radarhere]
-
test_imagecms: Reduce precision of extended info due to 32 bit machine precision #1990 [AbdealiJK]
-
Binary Tiff Metadata/ICC profile. #1988 [wiredfool]
-
Ignore large text blocks in PNG if LOAD_TRUNCATED_IMAGES is enabled #1970 [homm]
-
Replace index = index+1 in docs with +=1 [cclauss]
-
Skip extra 0xff00 in jpeg #1977 [kkopachev]
-
Use bytearray for palette mutable storage #1985 [radarhere, wiredfool]
-
Added additional uint modes for Image.fromarray, more extensive tests of fromarray #1984 [mairsbw, wiredfool]
-
Fix for program importing PyQt4 when PyQt5 also installed #1942 [hugovk]
-
Changed depends/install_*.sh urls to point to github pillow-depends repo #1983 [wiredfool]
-
Allow ICC profile from
encoderinfo
while saving PNGs #1909 [homm] -
Fix integer overflow on ILP32 systems (32-bit Linux). #1975 [lambdafu]
-
Change function declaration to match Tcl_CmdProc type #1966 [homm]
-
Integer overflow checks on all calls to *alloc #1781 [wiredfool]
-
Change equals method on Image so it short circuits #1967 [mattBoros]
-
Runtime loading of TCL/TK libraries, eliminating build time dependency. #1932 [matthew-brett]
-
Cleanup of transform methods #1941 [homm]
-
Fix "Fatal Python error: UNREF invalid object" in debug builds #1936 [wiredfool]
-
Setup fixes for Alpine linux #1937 [wiredfool]
-
Split resample into horizontal + vertical passes #1933 [homm]
-
Box blur with premultiplied alpha #1914 [homm]
-
Add libimagequant support in quantize() #1889 [rr-]
-
Added internal Premultiplied luminosity (La) mode #1912 [homm]
-
Fixed point integer resample #1881 [homm]
-
Removed docs/BUILDME script #1924 [radarhere]
-
Moved comments to docstrings #1926 [hugovk]
-
Include Python.h before wchar.h so _GNU_SOURCE is set consistently #1906 [hugovk]
-
Updated example decoder in documentation #1899 [radarhere]
-
Added support for GIF comment extension #1896 [radarhere]
-
Removed support for pre- 1.5.2 list form of Image info in Image.new #1897 [radarhere]
-
Fix typos in TIFF tags #1918 [radarhere]
-
Skip tests that require libtiff if it is not installed #1893 (fixes #1866) [wiredfool]
-
Skip test when icc profile is not available, fixes #1887. #1892 [doko42]
-
Make deprecated functions raise NotImplementedError instead of Exception. #1862, #1890 [daniel-leicht, radarhere]
-
Replaced os.system with subprocess.call in setup.py #1879 [radarhere]
-
Corrected Image show documentation #1886 [radarhere]
-
Added check for executable permissions to ImageShow #1880 [radarhere]
-
Fixed tutorial code and added explanation #1877 [radarhere]
-
Added OS X support for ImageGrab grabclipboard #1837 [radarhere]
-
Combined duplicate code in ImageTk #1856 [radarhere]
-
Added --disable-platform-guessing option to setup.py build extension #1861 [angeloc]
-
Fixed loading Transparent PNGs with a transparent black color #1840 [olt]
-
Add support for LA mode in Image.fromarray #1865 [pierriko]
-
Make ImageFile load images in read-only mode #1864 [hdante]
-
Added _accept hook for XVThumbImagePlugin #1853 [radarhere]
-
Test TIFF with LZW compression #1855, TGA RLE file #1854 [hugovk]
-
Improved SpiderImagePlugin help text #1863 [radarhere]
-
Updated Sphinx project description #1870 [radarhere]
-
Remove support for Python 3.0 from _imaging.c #1851 [radarhere]
-
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]
-
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]
v3.2.0
-
Added install docs for Fedora 23 and FreeBSD #1729, #1739, #1792 [koobs, zandermartin, wiredfool]
-
Fixed TIFF multiframe load when the frames have different compression types #1782 [radarhere, geka000]
-
Added copy method to Image #1772 [radarhere]
-
Updated dates in PIL license in OleFileIO README #1787 [radarhere]
-
Corrected Tiff tag names #1786 [radarhere]
-
Fixed documented name of JPEG property #1783 [radarhere]
-
Fixed UnboundLocalError when loading a corrupt jpeg2k file #1780 [wiredfool]
-
Fixed integer overflow in path.c #1773 [wiredfool, nedwill]
-
Added debug to command line help text for pilprint #1766 [radarhere]
-
Expose many more fields in ICC Profiles #1756 [lambdafu]
-
Documentation changes, URL update, transpose, release checklist [radarhere]
-
Fixed saving to 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
- Fixed an integer overflow in Jpeg2KEncode.c causing a buffer overflow. CVE-2016-3076 [wiredfool]
v3.1.1
-
Fixed an integer overflow in Resample.c causing writes in the Python heap. [nedwill]
-
Fixed a buffer overflow in PcdDecode.c causing a segfault when opening PhotoCD files. CVE-2016-2533 [wiredfool]
-
Fixed a buffer overflow in FliDecode.c causing a segfault when opening FLI files. CVE-2016-0775 [wiredfool]
-
Fixed a buffer overflow in TiffDecode.c causing an arbitrary amount of memory to be overwritten when opening a specially crafted invalid TIFF file. CVE-2016-0740 [wiredfool]
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.