https://pillow.readthedocs.io/en/stable/releasenotes/10.4.0.html
Changes
- Raise FileNotFoundError if show_file() path does not exist #8178 [@radarhere]
- Improved reading 16-bit TGA images with colour #7965 [@Yay295]
- 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]
- Do not presume "xmp" info simply because "XML:com.adobe.xmp" info exists #8173 [@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]
- 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]
- Prevent extra EPS header validations #8144 [@Yay295]
- 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] - Improved consistency of XMP handling #8069 [@radarhere]
- Use pkg-config to help find libwebp and raqm #8142 [@radarhere]
- Renamed C transform2 to transform #8113 [@radarhere]
- Updated nasm to 2.16.03 #7990 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate #8100 [@pre-commit-ci]
- Updated ImageCms.createProfile colorTemp default and docstring #8096 [@radarhere]
- Added ImageDraw circle() #8085 [@void4]
- Don't reuse variable name #8082 [@Yay295]
- Use functools.cached_property in GifImagePlugin #8037 [@radarhere]
- Add mypy target to Makefile #8077 [@Yay295]
- Added Python 3.13 beta wheels #8071 [@radarhere]
- Parse _version contents instead of using exec() #8050 [@radarhere]
- Lint fixes #8068 [@radarhere]
- Fix type errors #8064 [@radarhere]
- Added MPEG accept function #7999 [@radarhere]
- Added more modes to Image.MODES #7984 [@radarhere]
- [pre-commit.ci] pre-commit autoupdate #8044 [@pre-commit-ci]
- Do not use percent format in strings #8045 [@radarhere]
- Changed string formatting to f-strings #8043 [@mrKazzila]
- Removed direct invocation of setup.py #8027 [@radarhere]
- Update ExifTags.py #8020 [@CTimmerman]
- Fix ImagingAccess for I;16N on big-endian #7921 [@Yay295]
- Combined conditions #8011 [@radarhere]
- Simplified RGB to I;16, I;16L and I;16B conversion #8008 [@radarhere]
- Extract band count check #8006 [@Yay295]
- Remove unused variable #8005 [@Yay295]
- Remove semicolon after function definition #8004 [@Yay295]
- Support reading P mode TIFF images with padding #7996 [@radarhere]
- Corrected ImageShow UnixViewer command #7987 [@radarhere]
- Removed CentOS Stream 8 #7977 [@radarhere]
- Removed CentOS 7 #7976 [@radarhere]
- dist directory is no longer created #7974 [@radarhere]
- Add support for reading BITMAPV2INFOHEADER and BITMAPV3INFOHEADER #7956 [@Cirras]
- Update
make release-test
: no more eggs #7957 [@hugovk] - Make ModeDescriptor a NamedTuple #7951 [@Yay295]
- Support reading CMYK JPEG2000 images #7947 [@radarhere]
- Remove unused CMS properties and fix documentation #7931 [@Yay295]
- [pre-commit.ci] pre-commit autoupdate #7932 [@pre-commit-ci]
Dependencies
- Update dependency mypy to v1.10.1 #8177 [@renovate]
- Update dependency cibuildwheel to v2.19.1 #8143 [@renovate]
- Update dependency cibuildwheel to v2.19.0 #8131 [@renovate]
- Updated libjpeg-turbo to 3.0.3 #8048 [@radarhere]
- Updated fribidi to 1.0.15 #8014 [@radarhere]
- Updated libwebp to 1.4.0 #7973 [@radarhere]
- Updated libxcb and xcb-proto to 1.17.0 #7982 [@radarhere]
- Updated libimagequant to 4.3.1 #8025 [@radarhere]
- Updated harfbuzz to 8.5.0 #8059 [@radarhere]
- Updated Ghostscript to 10.3.1 #8078 [@radarhere]
- chore(deps): update dependency cibuildwheel to v2.18.1 #8070 [@renovate]
- chore(deps): update dependency cibuildwheel to v2.18.0 #8054 [@renovate]
- Update dependency mypy to v1.10.0 #8013 [@renovate]
Deprecations
- Deprecate non-image ImageCms modes #8031 [@radarhere]
- Deprecate ImageDraw.getdraw hints parameter #8124 [@radarhere]
- Deprecate BGR;15, BGR;16 and BGR;24 modes #7978 [@radarhere]
- Deprecate support for libtiff < 4 #7998 [@radarhere]
Documentation
- Converted example images to WebP #7963 [@radarhere]
- Use latest Ubuntu on Read The Docs #8136 [@radarhere]
- Use Sphinx long options in
Makefile
#8109 [@hugovk] - Removed documentation of unused argument #8079 [@radarhere]
- Updated CI targets table #8028 [@radarhere]
- Automatically add dates to release notes #8001 [@hugovk]
- Remove sphinx-removed-in, now Sphinx 7.3 adds versionremoved #7988 [@hugovk]
- Removed nitpick_ignore by updating Sphinx to 7.3 #7985 [@radarhere]
- Updated installation links #7981 [@radarhere]
- Corrected packer comments #7964 [@Yay295]
- Release checklist: inline the 'Source and Binary Distributions' step #7959 [@hugovk]
- Removed outdated comment #7955 [@radarhere]
- Document that QoiImagePlugin uses Python for decoding #7937 [@radarhere]
- Updated macOS tested Pillow versions #7934 [@radarhere]
- Fix ImageMath documentation parameter names #7933 [@jbjd]
Testing
- Use more specific error #8168 [@radarhere]
- Ignore brew dependencies for libraqm on macOS 13 #8140 [@radarhere]
- Corrected AppVeyor Ghostscript path #8138 [@radarhere]
- Accept 't' suffix for libtiff version #8129 [@radarhere]
- Accept 't' suffix for libtiff version #8126 [@radarhere]
- Add ClangFormat to pre-commit #8015 [@hugovk]
- Removed helper.py modes #8053 [@radarhere]
- Updated codecov/codecov-action to v4 #8041 [@radarhere]
- Added Ubuntu 24.04 #8023 [@radarhere]
- Corrected big-endian check #8022 [@radarhere]
- Use LAB hopper file if conversion is not supported #7979 [@radarhere]
- Removed Fedora 38 and added Fedora 40 #8012 [@radarhere]
- Update tests to allow for zlib-ng #8009 [@radarhere]
- GitHub Actions: use
macos-13
ormacos-14
instead ofmacos-latest
#8010 [@hugovk] - Corrected check for libtiff feature #8000 [@radarhere]
- Corrected check for libtiff feature #7975 [@radarhere]
- Fix test error message grammar #7967 [@Yay295]
- Replace ImageMath.eval with ImageMath.lambda_eval in selftest.py #7960 [@radarhere]
- Rename test_roundtrip() to test_mode() #7950 [@Yay295]
- Updated pattern for skipping builds based on file changes #7938 [@radarhere]
- Corrected ImageCms test #7930 [@radarhere]
Type hints
- Simplified casts #8169 [@radarhere]
- Added type hints #8167 [@radarhere]
- Added type hints for PixelAccess related methods and others #8032 [@nulano]
- Added type hints to additional tests #8163 [@radarhere]
- Updated type hints #8153 [@radarhere]
- Added type hints to ImageFilter #8156 [@radarhere]
- Added type hints to ImageDraw shape methods #8151 [@radarhere]
- Added type hints to Image #8150 [@radarhere]
- Added type hints #8134 [@radarhere]
- Added type hints to additional tests #8118 [@radarhere]
- Added type hints #8132 [@radarhere]
- Added type hints to GifImagePlugin #8128 [@radarhere]
- Added type hints #8125 [@radarhere]
- Added type hints #8117 [@radarhere]
- Added type hints #8108 [@radarhere]
- Added type hints to ImageColor #8115 [@radarhere]
- Add various type annotations #8046 [@srittau]
- Added type hints #8107 [@radarhere]
- Added type hints #8105 [@radarhere]
- Added type hints #8066 [@radarhere]
- Added type hints #8099 [@radarhere]
- Corrected type hint #8098 [@radarhere]
- Updated type hints for tests #8095 [@radarhere]
- Added type hints to additional tests #8093 [@radarhere]
- Added type hints to additional tests #8091 [@radarhere]
- Added type hints to additional tests #8090 [@radarhere]
- Added type hints #8061 [@radarhere]
- Added type hints #8055 [@radarhere]
- Added type hints #8051 [@radarhere]
- Added type hints #8042 [@radarhere]
- Added type hints #8030 [@radarhere]
- Removed type hint ignores #7989 [@radarhere]
- fromarray: add type hints #7936 [@adamjstewart]
- Use functools.cached_property in ImageStat #7952 [@nulano]
- Add type hints for
Image.open
,Image.init
, andImage.Image.save
#7944 [@nulano]