fix(deps): update dependency pillow to v13 #76

Merged
kfickel merged 1 commit from renovate/pillow-13.x into main 2026-10-20 11:14:44 +02:00
Collaborator

This PR contains the following updates:

Package Change Age Confidence
pillow (changelog) ==12.3.0 → ==13.0.0 age confidence

Release Notes

python-pillow/Pillow (pillow)

v13.0.0

Compare Source

https://pillow.readthedocs.io/en/stable/releasenotes/13.0.0.html

Removals

Deprecations

Documentation

Dependencies

Testing

Type hints

Other changes


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

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

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

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


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

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [pillow](https://github.com/python-pillow/Pillow) ([changelog](https://github.com/python-pillow/Pillow/releases)) | `==12.3.0` → `==13.0.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/pillow/13.0.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pillow/12.3.0/13.0.0?slim=true) | --- ### Release Notes <details> <summary>python-pillow/Pillow (pillow)</summary> ### [`v13.0.0`](https://github.com/python-pillow/Pillow/releases/tag/13.0.0) [Compare Source](https://github.com/python-pillow/Pillow/compare/12.3.0...13.0.0) <https://pillow.readthedocs.io/en/stable/releasenotes/13.0.0.html> #### Removals - Remove undocumented `GifImagePlugin._save_netpbm` [#&#8203;9901](https://github.com/python-pillow/Pillow/issues/9901) \[[@&#8203;akx](https://github.com/akx)] - Remove ExifTags.IFD.Makernote [#&#8203;9850](https://github.com/python-pillow/Pillow/issues/9850) \[[@&#8203;radarhere](https://github.com/radarhere)] - Drop support for Python 3.10 [#&#8203;9750](https://github.com/python-pillow/Pillow/issues/9750) \[[@&#8203;hugovk](https://github.com/hugovk)] - Remove deprecations for Pillow 13.0.0 [#&#8203;9751](https://github.com/python-pillow/Pillow/issues/9751) \[[@&#8203;radarhere](https://github.com/radarhere)] #### Deprecations - Deprecate IM image format [#&#8203;9849](https://github.com/python-pillow/Pillow/issues/9849) \[[@&#8203;radarhere](https://github.com/radarhere)] - Deprecate ImageQt align8to32() in favour of raw encoder stride [#&#8203;9940](https://github.com/python-pillow/Pillow/issues/9940) \[[@&#8203;akx](https://github.com/akx)] - Deprecate JpegImageFile.load_djpeg [#&#8203;9924](https://github.com/python-pillow/Pillow/issues/9924) \[[@&#8203;akx](https://github.com/akx)] #### Documentation - Update release notes for Pillow 13.0.0 [#&#8203;10223](https://github.com/python-pillow/Pillow/issues/10223) \[[@&#8203;hugovk](https://github.com/hugovk)] - Correct the ImageOps.fit centering corner documentation [#&#8203;10118](https://github.com/python-pillow/Pillow/issues/10118) \[[@&#8203;FanWu-ai](https://github.com/FanWu-ai)] - Update Tidelift links [#&#8203;10102](https://github.com/python-pillow/Pillow/issues/10102) \[[@&#8203;radarhere](https://github.com/radarhere)] - Correct bullet point syntax in release notes [#&#8203;10069](https://github.com/python-pillow/Pillow/issues/10069) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update ImageDraw signatures in docs [#&#8203;10065](https://github.com/python-pillow/Pillow/issues/10065) \[[@&#8203;ZainnQureshii](https://github.com/ZainnQureshii)] - Update macOS tested Pillow versions [#&#8203;10048](https://github.com/python-pillow/Pillow/issues/10048) \[[@&#8203;hugovk](https://github.com/hugovk)] - Add pillow-wmf and pillow-zx-spectrum to third-party plugins list [#&#8203;10037](https://github.com/python-pillow/Pillow/issues/10037) \[[@&#8203;bitplane](https://github.com/bitplane)] - Delete CLAUDE.md [#&#8203;10027](https://github.com/python-pillow/Pillow/issues/10027) \[[@&#8203;hugovk](https://github.com/hugovk)] - Add pillow-lunasvg to third-party plugins list [#&#8203;10016](https://github.com/python-pillow/Pillow/issues/10016) \[[@&#8203;Maksim-Burtsev](https://github.com/Maksim-Burtsev)] - Extend security policy [#&#8203;10018](https://github.com/python-pillow/Pillow/issues/10018) \[[@&#8203;hugovk](https://github.com/hugovk)] - Update Color3DLUT description [#&#8203;10004](https://github.com/python-pillow/Pillow/issues/10004) \[[@&#8203;radarhere](https://github.com/radarhere)] - Document the internal image distinctness constraints [#&#8203;9752](https://github.com/python-pillow/Pillow/issues/9752) \[[@&#8203;akx](https://github.com/akx)] - Update macOS tested Pillow versions [#&#8203;10000](https://github.com/python-pillow/Pillow/issues/10000) \[[@&#8203;radarhere](https://github.com/radarhere)] - Link security policy in project metadata [#&#8203;9980](https://github.com/python-pillow/Pillow/issues/9980) \[[@&#8203;hugovk](https://github.com/hugovk)] - Image.new(): correct docstring and comment about uninitialized memory [#&#8203;9960](https://github.com/python-pillow/Pillow/issues/9960) \[[@&#8203;akx](https://github.com/akx)] - Add AGENTS.md [#&#8203;9582](https://github.com/python-pillow/Pillow/issues/9582) \[[@&#8203;aclark4life](https://github.com/aclark4life)] - Add release notes for [#&#8203;8811](https://github.com/python-pillow/Pillow/issues/8811) [#&#8203;9937](https://github.com/python-pillow/Pillow/issues/9937) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fixed typo [#&#8203;9923](https://github.com/python-pillow/Pillow/issues/9923) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fixed typo [#&#8203;9922](https://github.com/python-pillow/Pillow/issues/9922) \[[@&#8203;radarhere](https://github.com/radarhere)] - C interface is internal [#&#8203;9879](https://github.com/python-pillow/Pillow/issues/9879) \[[@&#8203;radarhere](https://github.com/radarhere)] - Correct function references [#&#8203;9895](https://github.com/python-pillow/Pillow/issues/9895) \[[@&#8203;radarhere](https://github.com/radarhere)] - Revert move from python-pillow\.org to python-pillow\.github.io [#&#8203;9830](https://github.com/python-pillow/Pillow/issues/9830) \[[@&#8203;aclark4life](https://github.com/aclark4life)] - Add additional CVE numbers to 12.3.0 release notes [#&#8203;9777](https://github.com/python-pillow/Pillow/issues/9777) \[[@&#8203;radarhere](https://github.com/radarhere)] - Remove remaining :rtype:s from docstrings [#&#8203;9742](https://github.com/python-pillow/Pillow/issues/9742) \[[@&#8203;akx](https://github.com/akx)] - Update macOS tested Pillow versions [#&#8203;9759](https://github.com/python-pillow/Pillow/issues/9759) \[[@&#8203;radarhere](https://github.com/radarhere)] #### Dependencies - Update dependency cibuildwheel to v4.3.1 [#&#8203;10175](https://github.com/python-pillow/Pillow/issues/10175) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update dependency cibuildwheel to v4.3.0 [#&#8203;10132](https://github.com/python-pillow/Pillow/issues/10132) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update dependency harfbuzz to v14.5.0 [#&#8203;10108](https://github.com/python-pillow/Pillow/issues/10108) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update github-actions [#&#8203;10111](https://github.com/python-pillow/Pillow/issues/10111) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update dependency check-jsonschema to v0.38.2 [#&#8203;10110](https://github.com/python-pillow/Pillow/issues/10110) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update dependency fribidi to v1.0.17 [#&#8203;10106](https://github.com/python-pillow/Pillow/issues/10106) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update dependency xz to v5.8.4 [#&#8203;10107](https://github.com/python-pillow/Pillow/issues/10107) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Add support for PyPy3.12 [#&#8203;10047](https://github.com/python-pillow/Pillow/issues/10047) \[[@&#8203;hugovk](https://github.com/hugovk)] - Update dependency cibuildwheel to v4.2.1 [#&#8203;10007](https://github.com/python-pillow/Pillow/issues/10007) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Install latest Ghostscript when testing Windows [#&#8203;9978](https://github.com/python-pillow/Pillow/issues/9978) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update Ghostscript to 10.8.0 [#&#8203;9972](https://github.com/python-pillow/Pillow/issues/9972) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update dependency cibuildwheel to v4.2.0 [#&#8203;9947](https://github.com/python-pillow/Pillow/issues/9947) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update github-actions [#&#8203;9952](https://github.com/python-pillow/Pillow/issues/9952) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update dependency harfbuzz to v14.4.0 [#&#8203;9948](https://github.com/python-pillow/Pillow/issues/9948) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update dependency mypy to v2.3.1 [#&#8203;9950](https://github.com/python-pillow/Pillow/issues/9950) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update dependency check-jsonschema to v0.38.0 [#&#8203;9951](https://github.com/python-pillow/Pillow/issues/9951) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update nasm to 3.02 [#&#8203;9857](https://github.com/python-pillow/Pillow/issues/9857) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update raqm to 0.11.0 [#&#8203;9819](https://github.com/python-pillow/Pillow/issues/9819) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update dependency jpegturbo to v3.2.0 [#&#8203;9840](https://github.com/python-pillow/Pillow/issues/9840) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update github-actions [#&#8203;9845](https://github.com/python-pillow/Pillow/issues/9845) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update github-actions [#&#8203;9842](https://github.com/python-pillow/Pillow/issues/9842) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update dependency mypy to v2.3.0 [#&#8203;9841](https://github.com/python-pillow/Pillow/issues/9841) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update dependency tiff to v4.7.2 [#&#8203;9839](https://github.com/python-pillow/Pillow/issues/9839) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update dependency cibuildwheel to v4.1.1 [#&#8203;9838](https://github.com/python-pillow/Pillow/issues/9838) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update dependency check-jsonschema to v0.37.4 [#&#8203;9837](https://github.com/python-pillow/Pillow/issues/9837) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - \[pre-commit.ci] pre-commit autoupdate [#&#8203;9775](https://github.com/python-pillow/Pillow/issues/9775) \[@&#8203;[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci)] - Update github-actions [#&#8203;9763](https://github.com/python-pillow/Pillow/issues/9763) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update dependency check-jsonschema to v0.37.3 [#&#8203;9756](https://github.com/python-pillow/Pillow/issues/9756) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update dependency cibuildwheel to v4.1.0 [#&#8203;9757](https://github.com/python-pillow/Pillow/issues/9757) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] #### Testing - Install test dependencies for benchmarks [#&#8203;10212](https://github.com/python-pillow/Pillow/issues/10212) \[[@&#8203;radarhere](https://github.com/radarhere)] - Upgrade benchmark to Python 3.15 [#&#8203;10197](https://github.com/python-pillow/Pillow/issues/10197) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not install test dependencies in Install step [#&#8203;10205](https://github.com/python-pillow/Pillow/issues/10205) \[[@&#8203;radarhere](https://github.com/radarhere)] - Skip test if OpenJPEG is not available [#&#8203;10204](https://github.com/python-pillow/Pillow/issues/10204) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add further FPX test images [#&#8203;10157](https://github.com/python-pillow/Pillow/issues/10157) \[[@&#8203;radarhere](https://github.com/radarhere)] - Install palette in core image before using directly [#&#8203;10155](https://github.com/python-pillow/Pillow/issues/10155) \[[@&#8203;radarhere](https://github.com/radarhere)] - NumPy now supports Python 3.15 [#&#8203;10134](https://github.com/python-pillow/Pillow/issues/10134) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use `pathlib.Path` to find test images and fonts [#&#8203;10079](https://github.com/python-pillow/Pillow/issues/10079) \[[@&#8203;akx](https://github.com/akx)] - Add some benchmarks for ImageMath [#&#8203;10071](https://github.com/python-pillow/Pillow/issues/10071) \[[@&#8203;akx](https://github.com/akx)] - Mark test_embeddable as xfail on MinGW [#&#8203;10067](https://github.com/python-pillow/Pillow/issues/10067) \[[@&#8203;radarhere](https://github.com/radarhere)] - CI: Fix Docker coverage upload [#&#8203;10054](https://github.com/python-pillow/Pillow/issues/10054) \[[@&#8203;hugovk](https://github.com/hugovk)] - Add support for PyPy3.12 [#&#8203;10047](https://github.com/python-pillow/Pillow/issues/10047) \[[@&#8203;hugovk](https://github.com/hugovk)] - Clean up test_pattern_syntax_error's param ids [#&#8203;10036](https://github.com/python-pillow/Pillow/issues/10036) \[[@&#8203;akx](https://github.com/akx)] - Add benchmark for image equality [#&#8203;10033](https://github.com/python-pillow/Pillow/issues/10033) \[[@&#8203;akx](https://github.com/akx)] - Remove test_empty_image test [#&#8203;9958](https://github.com/python-pillow/Pillow/issues/9958) \[[@&#8203;akx](https://github.com/akx)] - Only run TestFileLibTiff.test_save_many_compressed() on Windows [#&#8203;9944](https://github.com/python-pillow/Pillow/issues/9944) \[[@&#8203;akx](https://github.com/akx)] - Reduce memory used in tests [#&#8203;9993](https://github.com/python-pillow/Pillow/issues/9993) \[[@&#8203;radarhere](https://github.com/radarhere)] - Remove test support for libjpeg-turbo 2.0 under Valgrind [#&#8203;9992](https://github.com/python-pillow/Pillow/issues/9992) \[[@&#8203;radarhere](https://github.com/radarhere)] - Enable pytest-xdist when testing wheels [#&#8203;9979](https://github.com/python-pillow/Pillow/issues/9979) \[[@&#8203;hugovk](https://github.com/hugovk)] - Update Ghostscript to 10.8.0 [#&#8203;9972](https://github.com/python-pillow/Pillow/issues/9972) \[[@&#8203;radarhere](https://github.com/radarhere)] - Run tests in parallel with pytest-xdist [#&#8203;9945](https://github.com/python-pillow/Pillow/issues/9945) \[[@&#8203;akx](https://github.com/akx)] - Use python3 in benchmark workflow [#&#8203;9971](https://github.com/python-pillow/Pillow/issues/9971) \[[@&#8203;radarhere](https://github.com/radarhere)] - Adjust package installation in Linux/macOS CI [#&#8203;9954](https://github.com/python-pillow/Pillow/issues/9954) \[[@&#8203;akx](https://github.com/akx)] - Simplify test code [#&#8203;9967](https://github.com/python-pillow/Pillow/issues/9967) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improve test stability [#&#8203;9933](https://github.com/python-pillow/Pillow/issues/9933) \[[@&#8203;akx](https://github.com/akx)] - Do not install PyQt6 dependencies [#&#8203;9955](https://github.com/python-pillow/Pillow/issues/9955) \[[@&#8203;radarhere](https://github.com/radarhere)] - Test ImageChops.offset() with zero-size images [#&#8203;9953](https://github.com/python-pillow/Pillow/issues/9953) \[[@&#8203;espressolee](https://github.com/espressolee)] - Add test for PdfParser linearize_page_tree() [#&#8203;9835](https://github.com/python-pillow/Pillow/issues/9835) \[[@&#8203;radarhere](https://github.com/radarhere)] - Test remap_palette()'s source_palette argument [#&#8203;9867](https://github.com/python-pillow/Pillow/issues/9867) \[[@&#8203;pranjalm37](https://github.com/pranjalm37)] - Remove unexpected characters [#&#8203;9871](https://github.com/python-pillow/Pillow/issues/9871) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add context manager [#&#8203;9864](https://github.com/python-pillow/Pillow/issues/9864) \[[@&#8203;radarhere](https://github.com/radarhere)] - Replace custom test code [#&#8203;9858](https://github.com/python-pillow/Pillow/issues/9858) \[[@&#8203;hugovk](https://github.com/hugovk)] - Run mypy with parallel workers [#&#8203;9861](https://github.com/python-pillow/Pillow/issues/9861) \[[@&#8203;hugovk](https://github.com/hugovk)] - New benchmarks [#&#8203;9832](https://github.com/python-pillow/Pillow/issues/9832) \[[@&#8203;akx](https://github.com/akx)] - Improve benchmark test image [#&#8203;9831](https://github.com/python-pillow/Pillow/issues/9831) \[[@&#8203;akx](https://github.com/akx)] - Use `ubuntu-slim` for lightweight jobs [#&#8203;9846](https://github.com/python-pillow/Pillow/issues/9846) \[[@&#8203;hugovk](https://github.com/hugovk)] - Use `pytest.approx`, `pytest.raises` and `pytest.skip` [#&#8203;9844](https://github.com/python-pillow/Pillow/issues/9844) \[[@&#8203;hugovk](https://github.com/hugovk)] - Remove test support for NumPy < 1.23 [#&#8203;9796](https://github.com/python-pillow/Pillow/issues/9796) \[[@&#8203;radarhere](https://github.com/radarhere)] - Remove write method from test [#&#8203;9806](https://github.com/python-pillow/Pillow/issues/9806) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add coverage to tox [#&#8203;9774](https://github.com/python-pillow/Pillow/issues/9774) \[[@&#8203;hugovk](https://github.com/hugovk)] #### Type hints - Remove type hint for deprecated im.putdata(im.getdata()) [#&#8203;10059](https://github.com/python-pillow/Pillow/issues/10059) \[[@&#8203;radarhere](https://github.com/radarhere)] - Correct ImageOps.crop border type hint [#&#8203;9989](https://github.com/python-pillow/Pillow/issues/9989) \[[@&#8203;lllleolin-max](https://github.com/lllleolin-max)] - Move typing imports under `TYPE_CHECKING` block [#&#8203;9827](https://github.com/python-pillow/Pillow/issues/9827) \[[@&#8203;hugovk](https://github.com/hugovk)] - Convert parallel setting to int [#&#8203;9869](https://github.com/python-pillow/Pillow/issues/9869) \[[@&#8203;radarhere](https://github.com/radarhere)] #### Other changes - Validate TIFF tag values against libtiff's own field definition before TIFFSetField [#&#8203;10227](https://github.com/python-pillow/Pillow/issues/10227) \[[@&#8203;hugovk](https://github.com/hugovk)] - Take libtiff scanline geometry tags from the image, not tiffinfo/exif [#&#8203;10226](https://github.com/python-pillow/Pillow/issues/10226) \[[@&#8203;hugovk](https://github.com/hugovk)] - Bound retained TIFF tag data by stream size [#&#8203;10225](https://github.com/python-pillow/Pillow/issues/10225) \[[@&#8203;hugovk](https://github.com/hugovk)] - Fix heap buffer overflow in \_tiffWriteProc when saving TIFF to BytesIO [#&#8203;10224](https://github.com/python-pillow/Pillow/issues/10224) \[[@&#8203;hugovk](https://github.com/hugovk)] - Use bit plane row size for P;2L and P;4L rawmodes [#&#8203;10186](https://github.com/python-pillow/Pillow/issues/10186) \[[@&#8203;aclark4life](https://github.com/aclark4life)] - Allow floating point constants in ImageMath operations [#&#8203;10218](https://github.com/python-pillow/Pillow/issues/10218) \[[@&#8203;vera-rubin](https://github.com/vera-rubin)] - Correct reusing a palette entry [#&#8203;10084](https://github.com/python-pillow/Pillow/issues/10084) \[[@&#8203;sergioperezcheco](https://github.com/sergioperezcheco)] - Add support for ImageOps invert, posterize and solarize of P images [#&#8203;10174](https://github.com/python-pillow/Pillow/issues/10174) \[[@&#8203;RavSinghChandan](https://github.com/RavSinghChandan)] - Respect explicit BASIC layout in font_variant() [#&#8203;10214](https://github.com/python-pillow/Pillow/issues/10214) \[[@&#8203;iAlturki](https://github.com/iAlturki)] - Improve support for TGA images in P mode with an RGBA palette [#&#8203;10211](https://github.com/python-pillow/Pillow/issues/10211) \[[@&#8203;sungbin1015](https://github.com/sungbin1015)] - Do not lazily import olefile [#&#8203;10213](https://github.com/python-pillow/Pillow/issues/10213) \[[@&#8203;radarhere](https://github.com/radarhere)] - Keep the first of duplicate TIFF tags [#&#8203;10210](https://github.com/python-pillow/Pillow/issues/10210) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use reducing_gap when resizing RGBA and LA images [#&#8203;10208](https://github.com/python-pillow/Pillow/issues/10208) \[[@&#8203;antonsoo](https://github.com/antonsoo)] - Use pen widths when drawing ImageDraw2 shape outlines [#&#8203;10207](https://github.com/python-pillow/Pillow/issues/10207) \[[@&#8203;xiehuanyi](https://github.com/xiehuanyi)] - Run garbage collection after closing memoryview on PyPy [#&#8203;10203](https://github.com/python-pillow/Pillow/issues/10203) \[[@&#8203;radarhere](https://github.com/radarhere)] - Reject TIFFs whose unpacker row is wider than libtiff's decoded row [#&#8203;10201](https://github.com/python-pillow/Pillow/issues/10201) \[[@&#8203;aclark4life](https://github.com/aclark4life)] - Write all channels when saving a one pixel wide RGB image as PCX [#&#8203;10113](https://github.com/python-pillow/Pillow/issues/10113) \[[@&#8203;SulimanAbdulrazzaq](https://github.com/SulimanAbdulrazzaq)] - Fix drawing on I;16B images [#&#8203;9982](https://github.com/python-pillow/Pillow/issues/9982) \[[@&#8203;akx](https://github.com/akx)] - Free Threading fixes [#&#8203;10196](https://github.com/python-pillow/Pillow/issues/10196) \[[@&#8203;wiredfool](https://github.com/wiredfool)] - Correct directory name in depends/install_openjpeg.sh [#&#8203;10199](https://github.com/python-pillow/Pillow/issues/10199) \[[@&#8203;radarhere](https://github.com/radarhere)] - Allow ImageOps to create zero dimension images [#&#8203;9673](https://github.com/python-pillow/Pillow/issues/9673) \[[@&#8203;radarhere](https://github.com/radarhere)] - Clarify license of vendored FriBiDi shim [#&#8203;10194](https://github.com/python-pillow/Pillow/issues/10194) \[[@&#8203;aclark4life](https://github.com/aclark4life)] - Ignore (0, 0) BMP DPI [#&#8203;10187](https://github.com/python-pillow/Pillow/issues/10187) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not write IFD1 as a tag when converting EXIF to bytes [#&#8203;10188](https://github.com/python-pillow/Pillow/issues/10188) \[[@&#8203;sungbin1015](https://github.com/sungbin1015)] - Reject exporting Arrow arrays from non-contiguous images [#&#8203;10172](https://github.com/python-pillow/Pillow/issues/10172) \[[@&#8203;wiredfool](https://github.com/wiredfool)] - Check WebP canvas size before creating decoder [#&#8203;10190](https://github.com/python-pillow/Pillow/issues/10190) \[[@&#8203;radarhere](https://github.com/radarhere)] - Apply "bits" to saving L mode PNG images [#&#8203;10168](https://github.com/python-pillow/Pillow/issues/10168) \[[@&#8203;radarhere](https://github.com/radarhere)] - Walk PDF page tree iteratively [#&#8203;10185](https://github.com/python-pillow/Pillow/issues/10185) \[[@&#8203;aclark4life](https://github.com/aclark4life)] - Allow C comments in XBM headers [#&#8203;10164](https://github.com/python-pillow/Pillow/issues/10164) \[[@&#8203;aclark4life](https://github.com/aclark4life)] - Clear TIFF strip and tile buffer beyond previously decoded data [#&#8203;10184](https://github.com/python-pillow/Pillow/issues/10184) \[[@&#8203;aclark4life](https://github.com/aclark4life)] - Fix KeyError on missing Interop or MakerNote IFD [#&#8203;10177](https://github.com/python-pillow/Pillow/issues/10177) \[[@&#8203;RavSinghChandan](https://github.com/RavSinghChandan)] - Fix ColorMap length when saving TIFF images with libtiff [#&#8203;10178](https://github.com/python-pillow/Pillow/issues/10178) \[[@&#8203;MohammediYunus](https://github.com/MohammediYunus)] - Raise ValueError for posterize bits outside 1-8 [#&#8203;10173](https://github.com/python-pillow/Pillow/issues/10173) \[[@&#8203;RavSinghChandan](https://github.com/RavSinghChandan)] - Correct "Raw profile type exif" info after exif_transpose() [#&#8203;10145](https://github.com/python-pillow/Pillow/issues/10145) \[[@&#8203;sungbin1015](https://github.com/sungbin1015)] - Raise OSError for truncated or corrupt gzip FITS data [#&#8203;10146](https://github.com/python-pillow/Pillow/issues/10146) \[[@&#8203;RavSinghChandan](https://github.com/RavSinghChandan)] - Improve mmap buffer length check [#&#8203;10147](https://github.com/python-pillow/Pillow/issues/10147) \[[@&#8203;aryangorde6](https://github.com/aryangorde6)] - Speed up ImageChops.difference() [#&#8203;10154](https://github.com/python-pillow/Pillow/issues/10154) \[[@&#8203;SimBuddy](https://github.com/SimBuddy)] - Handle unexpected EOF in JPEG header [#&#8203;10150](https://github.com/python-pillow/Pillow/issues/10150) \[[@&#8203;Kesavamoorthig06](https://github.com/Kesavamoorthig06)] - Correct applying OpenJPEG patch [#&#8203;10171](https://github.com/python-pillow/Pillow/issues/10171) \[[@&#8203;radarhere](https://github.com/radarhere)] - Read from tall PSD tiles safely [#&#8203;10151](https://github.com/python-pillow/Pillow/issues/10151) \[[@&#8203;Kesavamoorthig06](https://github.com/Kesavamoorthig06)] - Raise error when opening if JP2 mode is unrecognized [#&#8203;10135](https://github.com/python-pillow/Pillow/issues/10135) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add Apache-2.0 license header to Arrow\.h [#&#8203;10162](https://github.com/python-pillow/Pillow/issues/10162) \[[@&#8203;aclark4life](https://github.com/aclark4life)] - Raise ValueError for XPM pixel data with undefined color key [#&#8203;10149](https://github.com/python-pillow/Pillow/issues/10149) \[[@&#8203;Kesavamoorthig06](https://github.com/Kesavamoorthig06)] - Fix FLI palette OverflowError [#&#8203;10148](https://github.com/python-pillow/Pillow/issues/10148) \[[@&#8203;Kesavamoorthig06](https://github.com/Kesavamoorthig06)] - Replace rgba2rgb convert function with identical rgb2rgba [#&#8203;10169](https://github.com/python-pillow/Pillow/issues/10169) \[[@&#8203;radarhere](https://github.com/radarhere)] - Avoid copying zero-sized image buffers [#&#8203;10158](https://github.com/python-pillow/Pillow/issues/10158) \[[@&#8203;SimBuddy](https://github.com/SimBuddy)] - Speed up histograms [#&#8203;10161](https://github.com/python-pillow/Pillow/issues/10161) \[[@&#8203;SimBuddy](https://github.com/SimBuddy)] - Apply [uclouvain/openjpeg#1621](https://github.com/uclouvain/openjpeg/issues/1621) to address OSV-2025-219 [#&#8203;10156](https://github.com/python-pillow/Pillow/issues/10156) \[[@&#8203;radarhere](https://github.com/radarhere)] - Mark Python palette as dirty after conversion to WEB palette [#&#8203;10008](https://github.com/python-pillow/Pillow/issues/10008) \[[@&#8203;radarhere](https://github.com/radarhere)] - Only load new palette in putpalette() if it contains raw data [#&#8203;10035](https://github.com/python-pillow/Pillow/issues/10035) \[[@&#8203;radarhere](https://github.com/radarhere)] - Only combine PNG frames if the combined duration is still writable [#&#8203;10070](https://github.com/python-pillow/Pillow/issues/10070) \[[@&#8203;radarhere](https://github.com/radarhere)] - Support greyscale TIFFs with ExtraSamples 0 or 1 [#&#8203;10140](https://github.com/python-pillow/Pillow/issues/10140) \[[@&#8203;officialpm](https://github.com/officialpm)] - Avoid repeated concatenation of GIF comments [#&#8203;10143](https://github.com/python-pillow/Pillow/issues/10143) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not change MicImageFile \_n_frames or is_animated in TiffImageFile [#&#8203;10142](https://github.com/python-pillow/Pillow/issues/10142) \[[@&#8203;radarhere](https://github.com/radarhere)] - Require TIFF ColorMap length according to BitsPerSample [#&#8203;10136](https://github.com/python-pillow/Pillow/issues/10136) \[[@&#8203;radarhere](https://github.com/radarhere)] - Assign next PDF object ID in constant time [#&#8203;10133](https://github.com/python-pillow/Pillow/issues/10133) \[[@&#8203;radarhere](https://github.com/radarhere)] - Reject JPEG streams whose scanlines are wider or have more components [#&#8203;10131](https://github.com/python-pillow/Pillow/issues/10131) \[[@&#8203;radarhere](https://github.com/radarhere)] - XMP info will no longer be a tuple [#&#8203;10077](https://github.com/python-pillow/Pillow/issues/10077) \[[@&#8203;radarhere](https://github.com/radarhere)] - Return zero from ImagePath compact() if there are no points to remove [#&#8203;10126](https://github.com/python-pillow/Pillow/issues/10126) \[[@&#8203;radarhere](https://github.com/radarhere)] - Handle zero dimension images in RankFilter and related filters [#&#8203;10130](https://github.com/python-pillow/Pillow/issues/10130) \[[@&#8203;radarhere](https://github.com/radarhere)] - Raise an error when calling quantize() with an empty palette [#&#8203;10129](https://github.com/python-pillow/Pillow/issues/10129) \[[@&#8203;radarhere](https://github.com/radarhere)] - \[pre-commit.ci] pre-commit autoupdate [#&#8203;10128](https://github.com/python-pillow/Pillow/issues/10128) \[@&#8203;[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci)] - Set PdfParser default max_nesting limit to 900 [#&#8203;10127](https://github.com/python-pillow/Pillow/issues/10127) \[[@&#8203;radarhere](https://github.com/radarhere)] - Basic support for TSAN Docker builds [#&#8203;10115](https://github.com/python-pillow/Pillow/issues/10115) \[[@&#8203;wiredfool](https://github.com/wiredfool)] - Prevent infinite loop when rewriting PDF pages [#&#8203;10125](https://github.com/python-pillow/Pillow/issues/10125) \[[@&#8203;radarhere](https://github.com/radarhere)] - Check COM marker length when encoding JPEG [#&#8203;10124](https://github.com/python-pillow/Pillow/issues/10124) \[[@&#8203;radarhere](https://github.com/radarhere)] - Delay creating APNG disposal frame until necessary [#&#8203;10123](https://github.com/python-pillow/Pillow/issues/10123) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fix combining GIF frames when an earlier duration is missing [#&#8203;10119](https://github.com/python-pillow/Pillow/issues/10119) \[[@&#8203;FanWu-ai](https://github.com/FanWu-ai)] - Limit WMF dimensions when loading to 0-65535 [#&#8203;10120](https://github.com/python-pillow/Pillow/issues/10120) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fix use-after-free when a libtiff encode error occurs [#&#8203;10117](https://github.com/python-pillow/Pillow/issues/10117) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not keep size from failed GIF decompression bomb check [#&#8203;10116](https://github.com/python-pillow/Pillow/issues/10116) \[[@&#8203;radarhere](https://github.com/radarhere)] - Correct writing buffer to file in PyEncoder encode_to_file() [#&#8203;10098](https://github.com/python-pillow/Pillow/issues/10098) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improve freeing objects on errors in PyImaging_GrabScreenWin32() [#&#8203;10094](https://github.com/python-pillow/Pillow/issues/10094) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not allow Ghostscript to render beyond decompression bomb limit [#&#8203;10112](https://github.com/python-pillow/Pillow/issues/10112) \[[@&#8203;radarhere](https://github.com/radarhere)] - Read XBM header line by line, instead of through regex [#&#8203;10109](https://github.com/python-pillow/Pillow/issues/10109) \[[@&#8203;radarhere](https://github.com/radarhere)] - Clear core image if mode or size has changed during seek() [#&#8203;10105](https://github.com/python-pillow/Pillow/issues/10105) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not use deprecated getdata [#&#8203;9986](https://github.com/python-pillow/Pillow/issues/9986) \[[@&#8203;radarhere](https://github.com/radarhere)] - Remove unused cleanup return value [#&#8203;10101](https://github.com/python-pillow/Pillow/issues/10101) \[[@&#8203;radarhere](https://github.com/radarhere)] - Raise OSError when TIFF tile size is unexpected [#&#8203;10100](https://github.com/python-pillow/Pillow/issues/10100) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use set, rather than sorting list [#&#8203;10099](https://github.com/python-pillow/Pillow/issues/10099) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fix PSD layer tiles reading from the wrong file offset [#&#8203;10089](https://github.com/python-pillow/Pillow/issues/10089) \[[@&#8203;Arthur031221](https://github.com/Arthur031221)] - Avoid unused object ids when saving PDF [#&#8203;10091](https://github.com/python-pillow/Pillow/issues/10091) \[[@&#8203;Rodrigo-Palma](https://github.com/Rodrigo-Palma)] - Raise an error if PDF page loop exists [#&#8203;10093](https://github.com/python-pillow/Pillow/issues/10093) \[[@&#8203;radarhere](https://github.com/radarhere)] - Return 0 or -1 from ImagingTransform() [#&#8203;10075](https://github.com/python-pillow/Pillow/issues/10075) \[[@&#8203;radarhere](https://github.com/radarhere)] - Transform EPS file name to an absolute path before invoking Ghostscript [#&#8203;10090](https://github.com/python-pillow/Pillow/issues/10090) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fixed passing zero dimension images into fromarrow() [#&#8203;10086](https://github.com/python-pillow/Pillow/issues/10086) \[[@&#8203;akx](https://github.com/akx)] - Add decompression bomb check to grabclipboard() on Windows [#&#8203;10078](https://github.com/python-pillow/Pillow/issues/10078) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add decompression bomb check after SPIDER seek [#&#8203;10076](https://github.com/python-pillow/Pillow/issues/10076) \[[@&#8203;radarhere](https://github.com/radarhere)] - Speed up and simplify GIF optimization [#&#8203;10074](https://github.com/python-pillow/Pillow/issues/10074) \[[@&#8203;akx](https://github.com/akx)] - Only replace a maximum of two Exif headers [#&#8203;10073](https://github.com/python-pillow/Pillow/issues/10073) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use -O2 when building wheels for macOS and Linux [#&#8203;10060](https://github.com/python-pillow/Pillow/issues/10060) \[[@&#8203;radarhere](https://github.com/radarhere)] - Simplify code by removing instance variables [#&#8203;10058](https://github.com/python-pillow/Pillow/issues/10058) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add pathlib support for font handling [#&#8203;10053](https://github.com/python-pillow/Pillow/issues/10053) \[[@&#8203;hugovk](https://github.com/hugovk)] - Clean up encoders deterministically on success and failure [#&#8203;10043](https://github.com/python-pillow/Pillow/issues/10043) \[[@&#8203;danking](https://github.com/danking)] - When saving an ICO frame without a matching size, use the next smallest provided image [#&#8203;10051](https://github.com/python-pillow/Pillow/issues/10051) \[[@&#8203;Rodrigo-Palma](https://github.com/Rodrigo-Palma)] - Remove conditionally-compiled or unreachable debug C code [#&#8203;9915](https://github.com/python-pillow/Pillow/issues/9915) \[[@&#8203;akx](https://github.com/akx)] - Fix OOB read in C getlist() and \_putdata() when **len** overstates length [#&#8203;9893](https://github.com/python-pillow/Pillow/issues/9893) \[[@&#8203;lazerg](https://github.com/lazerg)] - When shrinking in ImageText wrap(), wrap text even if no scaling is required [#&#8203;10025](https://github.com/python-pillow/Pillow/issues/10025) \[[@&#8203;radarhere](https://github.com/radarhere)] - Restrict ImageWin Dib paste box to bitmap [#&#8203;10040](https://github.com/python-pillow/Pillow/issues/10040) \[[@&#8203;radarhere](https://github.com/radarhere)] - extra does not require a spare byte [#&#8203;10046](https://github.com/python-pillow/Pillow/issues/10046) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use borrowed data when exporting an image created by Image.fromarrow [#&#8203;9897](https://github.com/python-pillow/Pillow/issues/9897) \[[@&#8203;lazerg](https://github.com/lazerg)] - Avoid overflow when multiplying integers in RankFilter [#&#8203;10038](https://github.com/python-pillow/Pillow/issues/10038) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not pad PNG palette when saving if bits is specified [#&#8203;10029](https://github.com/python-pillow/Pillow/issues/10029) \[[@&#8203;aclark4life](https://github.com/aclark4life)] - Simplify code [#&#8203;10031](https://github.com/python-pillow/Pillow/issues/10031) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not treat RGB as a rawmode for an RGB palette [#&#8203;10002](https://github.com/python-pillow/Pillow/issues/10002) \[[@&#8203;radarhere](https://github.com/radarhere)] - Rearrange ImagingPoint code [#&#8203;10026](https://github.com/python-pillow/Pillow/issues/10026) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use while loop in read_prev_trailer() to avoid RecursionError [#&#8203;10023](https://github.com/python-pillow/Pillow/issues/10023) \[[@&#8203;radarhere](https://github.com/radarhere)] - Allow zero-length members in tar files [#&#8203;10014](https://github.com/python-pillow/Pillow/issues/10014) \[[@&#8203;hugovk](https://github.com/hugovk)] - Raise ValueError if merging image32 images [#&#8203;10022](https://github.com/python-pillow/Pillow/issues/10022) \[[@&#8203;radarhere](https://github.com/radarhere)] - Correctly manage glyph when rendering font [#&#8203;10020](https://github.com/python-pillow/Pillow/issues/10020) \[[@&#8203;radarhere](https://github.com/radarhere)] - Return early when applying ImageMorph MorphOp to an empty image [#&#8203;10021](https://github.com/python-pillow/Pillow/issues/10021) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not decode more MSP data than necessary [#&#8203;10019](https://github.com/python-pillow/Pillow/issues/10019) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use int64_t for y offset [#&#8203;10017](https://github.com/python-pillow/Pillow/issues/10017) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not decode more BMP data than necessary [#&#8203;10015](https://github.com/python-pillow/Pillow/issues/10015) \[[@&#8203;radarhere](https://github.com/radarhere)] - Raise error when creating ImagePalette with unsupported mode [#&#8203;10013](https://github.com/python-pillow/Pillow/issues/10013) \[[@&#8203;radarhere](https://github.com/radarhere)] - Apply hoist optimizations to Geometry.c's transforms [#&#8203;9788](https://github.com/python-pillow/Pillow/issues/9788) \[[@&#8203;akx](https://github.com/akx)] - Allow for IFDRational with negative numerator and zero denominator [#&#8203;8970](https://github.com/python-pillow/Pillow/issues/8970) \[[@&#8203;radarhere](https://github.com/radarhere)] - Offset to next TAR block must be positive [#&#8203;10012](https://github.com/python-pillow/Pillow/issues/10012) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add decompression bomb checks after seek opens new format [#&#8203;10011](https://github.com/python-pillow/Pillow/issues/10011) \[[@&#8203;radarhere](https://github.com/radarhere)] - Raise OverflowError if text width goes below INT_MIN [#&#8203;10010](https://github.com/python-pillow/Pillow/issues/10010) \[[@&#8203;radarhere](https://github.com/radarhere)] - Cast before multiplying [#&#8203;10009](https://github.com/python-pillow/Pillow/issues/10009) \[[@&#8203;radarhere](https://github.com/radarhere)] - Simplify palette code [#&#8203;10003](https://github.com/python-pillow/Pillow/issues/10003) \[[@&#8203;radarhere](https://github.com/radarhere)] - Optimize histogram generation + fix masked histograms for 2-band images + add test coverage [#&#8203;10005](https://github.com/python-pillow/Pillow/issues/10005) \[[@&#8203;akx](https://github.com/akx)] - Add escape argument to PSDraw text method [#&#8203;9996](https://github.com/python-pillow/Pillow/issues/9996) \[[@&#8203;lllleolin-max](https://github.com/lllleolin-max)] - Link FreeType against the bundled HarfBuzz in wheels [#&#8203;9913](https://github.com/python-pillow/Pillow/issues/9913) \[[@&#8203;akx](https://github.com/akx)] - Speed up some conversions [#&#8203;9807](https://github.com/python-pillow/Pillow/issues/9807) \[[@&#8203;akx](https://github.com/akx)] - Speed up `Image.getbbox()`; fix it for I;16 modes [#&#8203;9768](https://github.com/python-pillow/Pillow/issues/9768) \[[@&#8203;akx](https://github.com/akx)] - Apply restrict optimizations to ImagingQuantize's output loop [#&#8203;10006](https://github.com/python-pillow/Pillow/issues/10006) \[[@&#8203;akx](https://github.com/akx)] - Speed up `getpixel()` and `get_flattened_data()` [#&#8203;9881](https://github.com/python-pillow/Pillow/issues/9881) \[[@&#8203;akx](https://github.com/akx)] - Mark ImageFile.\_open() as abstract [#&#8203;9876](https://github.com/python-pillow/Pillow/issues/9876) \[[@&#8203;radarhere](https://github.com/radarhere)] - Return 0 or -1 from ImagingSplit(), rather than number of bands [#&#8203;9988](https://github.com/python-pillow/Pillow/issues/9988) \[[@&#8203;radarhere](https://github.com/radarhere)] - If height is scaled down significantly more than width, resize vertically first [#&#8203;9549](https://github.com/python-pillow/Pillow/issues/9549) \[[@&#8203;radarhere](https://github.com/radarhere)] - Compile less libtiff bits for wheels [#&#8203;9970](https://github.com/python-pillow/Pillow/issues/9970) \[[@&#8203;akx](https://github.com/akx)] - Preserve transparency when padding and expanding images [#&#8203;9995](https://github.com/python-pillow/Pillow/issues/9995) \[[@&#8203;lllleolin-max](https://github.com/lllleolin-max)] - Move kernel size check into getlist() [#&#8203;9987](https://github.com/python-pillow/Pillow/issues/9987) \[[@&#8203;radarhere](https://github.com/radarhere)] - `PIL._binary`: Use `int.to_bytes()` for faster conversion [#&#8203;9981](https://github.com/python-pillow/Pillow/issues/9981) \[[@&#8203;akx](https://github.com/akx)] - Prevent negative ImageStat variance [#&#8203;9994](https://github.com/python-pillow/Pillow/issues/9994) \[[@&#8203;lllleolin-max](https://github.com/lllleolin-max)] - Restore image position after an error in ImageSequence.all_frames() [#&#8203;9999](https://github.com/python-pillow/Pillow/issues/9999) \[[@&#8203;niukanen1](https://github.com/niukanen1)] - Return palette contents in suitable format for C putpalette() [#&#8203;9985](https://github.com/python-pillow/Pillow/issues/9985) \[[@&#8203;radarhere](https://github.com/radarhere)] - Parenthesize `MIN`/`MAX` macro arguments [#&#8203;9928](https://github.com/python-pillow/Pillow/issues/9928) \[[@&#8203;akx](https://github.com/akx)] - Add decompression bomb check when loading WmfStubImageFile at a different DPI [#&#8203;9984](https://github.com/python-pillow/Pillow/issues/9984) \[[@&#8203;radarhere](https://github.com/radarhere)] - Reject invalid radius in BoxBlur and GaussianBlur [#&#8203;9983](https://github.com/python-pillow/Pillow/issues/9983) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fix ImageChops.offset for 16-bit modes + speed up [#&#8203;9975](https://github.com/python-pillow/Pillow/issues/9975) \[[@&#8203;akx](https://github.com/akx)] - Speed up `Image.filter()` for `I;16*` [#&#8203;9760](https://github.com/python-pillow/Pillow/issues/9760) \[[@&#8203;akx](https://github.com/akx)] - Fix cross-compiling by searching the right lib and include directories [#&#8203;7634](https://github.com/python-pillow/Pillow/issues/7634) \[[@&#8203;chewi](https://github.com/chewi)] - Speed up `Image.offset` [#&#8203;9753](https://github.com/python-pillow/Pillow/issues/9753) \[[@&#8203;akx](https://github.com/akx)] - Remove duration and timestamp from AVIF info after seek [#&#8203;9973](https://github.com/python-pillow/Pillow/issues/9973) \[[@&#8203;dylanpulver](https://github.com/dylanpulver)] - Use lazy imports on Python 3.15 to improve startup speed [#&#8203;9733](https://github.com/python-pillow/Pillow/issues/9733) \[[@&#8203;hugovk](https://github.com/hugovk)] - \[pre-commit.ci] pre-commit autoupdate [#&#8203;9969](https://github.com/python-pillow/Pillow/issues/9969) \[@&#8203;[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci)] - Remove duration and timestamp from WebP info after seek [#&#8203;9791](https://github.com/python-pillow/Pillow/issues/9791) \[[@&#8203;radarhere](https://github.com/radarhere)] - If ICO image is smaller than (16, 16), save original size by default [#&#8203;9766](https://github.com/python-pillow/Pillow/issues/9766) \[[@&#8203;radarhere](https://github.com/radarhere)] - If reducing by a factor of 1, crop [#&#8203;9959](https://github.com/python-pillow/Pillow/issues/9959) \[[@&#8203;radarhere](https://github.com/radarhere)] - Inspect arg as Python object, instead of using PyErr_Clear() [#&#8203;9726](https://github.com/python-pillow/Pillow/issues/9726) \[[@&#8203;radarhere](https://github.com/radarhere)] - Copy palette when transforming PA images [#&#8203;9965](https://github.com/python-pillow/Pillow/issues/9965) \[[@&#8203;radarhere](https://github.com/radarhere)] - Treat FITS data as big-endian [#&#8203;9575](https://github.com/python-pillow/Pillow/issues/9575) \[[@&#8203;radarhere](https://github.com/radarhere)] - Correct error message for matrix length [#&#8203;9956](https://github.com/python-pillow/Pillow/issues/9956) \[[@&#8203;radarhere](https://github.com/radarhere)] - Copy qtables list when saving JPEG image [#&#8203;9919](https://github.com/python-pillow/Pillow/issues/9919) \[[@&#8203;lazerg](https://github.com/lazerg)] - Avoid integer overflow when calculating reduced image size [#&#8203;9904](https://github.com/python-pillow/Pillow/issues/9904) \[[@&#8203;lazerg](https://github.com/lazerg)] - Copy list-valued info entries independently in Image.copy() [#&#8203;9964](https://github.com/python-pillow/Pillow/issues/9964) \[[@&#8203;lazerg](https://github.com/lazerg)] - Avoid blocking all threads when decoding AVIF image [#&#8203;9930](https://github.com/python-pillow/Pillow/issues/9930) \[[@&#8203;WillyJL](https://github.com/WillyJL)] - Use a critical section to protect getlist() [#&#8203;9853](https://github.com/python-pillow/Pillow/issues/9853) \[[@&#8203;lazerg](https://github.com/lazerg)] - Add GPSHPositioningError to GPS IFD tag data [#&#8203;9941](https://github.com/python-pillow/Pillow/issues/9941) \[[@&#8203;dylanpulver](https://github.com/dylanpulver)] - Use bytearray instead of BytesIO in MspDecoder [#&#8203;9877](https://github.com/python-pillow/Pillow/issues/9877) \[[@&#8203;radarhere](https://github.com/radarhere)] - Reject non-finite radius in BoxBlur [#&#8203;9906](https://github.com/python-pillow/Pillow/issues/9906) \[[@&#8203;JonnasFigueiredo](https://github.com/JonnasFigueiredo)] - Raise ValueError for truncated tRNS PNG chunks [#&#8203;9934](https://github.com/python-pillow/Pillow/issues/9934) \[[@&#8203;VenishPaneliya](https://github.com/VenishPaneliya)] - Adjust tuple construction in ImageGrab to fix mypy on macOS [#&#8203;9935](https://github.com/python-pillow/Pillow/issues/9935) \[[@&#8203;akx](https://github.com/akx)] - Add support for Magic Kernel Sharp resizing modes [#&#8203;8811](https://github.com/python-pillow/Pillow/issues/8811) \[[@&#8203;drhead](https://github.com/drhead)] - Remove depends/install_raqm_cmake.sh; update FreeBSD instructions [#&#8203;9927](https://github.com/python-pillow/Pillow/issues/9927) \[[@&#8203;akx](https://github.com/akx)] - Fix comparison off-by-one in `getModeData`/`getRawModeData` [#&#8203;9932](https://github.com/python-pillow/Pillow/issues/9932) \[[@&#8203;akx](https://github.com/akx)] - Fix convert() from I;16N to I or F clipping 16-bit values [#&#8203;9931](https://github.com/python-pillow/Pillow/issues/9931) \[[@&#8203;Kayvan-Zahiri](https://github.com/Kayvan-Zahiri)] - Mark StubHandler.open() as abstract [#&#8203;9872](https://github.com/python-pillow/Pillow/issues/9872) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add strip_namespaces argument to Image.getxmp() [#&#8203;9882](https://github.com/python-pillow/Pillow/issues/9882) \[[@&#8203;geeno16](https://github.com/geeno16)] - Add \_normalize_coords() to reduce duplicate code [#&#8203;9899](https://github.com/python-pillow/Pillow/issues/9899) \[[@&#8203;radarhere](https://github.com/radarhere)] - Rename IMAGING_TYPE_SPECIAL to IMAGING_TYPE_I16 [#&#8203;9794](https://github.com/python-pillow/Pillow/issues/9794) \[[@&#8203;radarhere](https://github.com/radarhere)] - Remove unnecessary check [#&#8203;9874](https://github.com/python-pillow/Pillow/issues/9874) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improve reference handling in encode.c [#&#8203;9920](https://github.com/python-pillow/Pillow/issues/9920) \[[@&#8203;radarhere](https://github.com/radarhere)] - PySequence_Fast raises its own TypeError [#&#8203;9921](https://github.com/python-pillow/Pillow/issues/9921) \[[@&#8203;radarhere](https://github.com/radarhere)] - Import external headers with angle brackets [#&#8203;9912](https://github.com/python-pillow/Pillow/issues/9912) \[[@&#8203;radarhere](https://github.com/radarhere)] - Remove unused ImagingConvertInPlace [#&#8203;9878](https://github.com/python-pillow/Pillow/issues/9878) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use GitHub's automerge instead of Mergify [#&#8203;9126](https://github.com/python-pillow/Pillow/issues/9126) \[[@&#8203;hugovk](https://github.com/hugovk)] - Rename C convert2 to convert_into [#&#8203;9911](https://github.com/python-pillow/Pillow/issues/9911) \[[@&#8203;radarhere](https://github.com/radarhere)] - PDF dictionary key must be a name [#&#8203;9884](https://github.com/python-pillow/Pillow/issues/9884) \[[@&#8203;radarhere](https://github.com/radarhere)] - Remove unused C convert method [#&#8203;9910](https://github.com/python-pillow/Pillow/issues/9910) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not open YCbCr colorspace images as RGB without libtiff [#&#8203;9779](https://github.com/python-pillow/Pillow/issues/9779) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fix loading XPM images with transparency [#&#8203;9848](https://github.com/python-pillow/Pillow/issues/9848) \[[@&#8203;nyxst4ck](https://github.com/nyxst4ck)] - Open BMP image with black palette in mode 1 [#&#8203;9778](https://github.com/python-pillow/Pillow/issues/9778) \[[@&#8203;radarhere](https://github.com/radarhere)] - Remove palette if no longer relevant after TIFF seek [#&#8203;9855](https://github.com/python-pillow/Pillow/issues/9855) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add `mixed-line-ending` to prek and convert to LF [#&#8203;9886](https://github.com/python-pillow/Pillow/issues/9886) \[[@&#8203;hugovk](https://github.com/hugovk)] - Correct CmsProfile creation_date month [#&#8203;9804](https://github.com/python-pillow/Pillow/issues/9804) \[[@&#8203;radarhere](https://github.com/radarhere)] - Raise ValueError for truncated gAMA and cHRM PNG chunks [#&#8203;9880](https://github.com/python-pillow/Pillow/issues/9880) \[[@&#8203;VenishPaneliya](https://github.com/VenishPaneliya)] - Use PyErr_Format instead of sprintf [#&#8203;9863](https://github.com/python-pillow/Pillow/issues/9863) \[[@&#8203;akx](https://github.com/akx)] - Remove unneeded code for handling zero-width characters [#&#8203;9875](https://github.com/python-pillow/Pillow/issues/9875) \[[@&#8203;radarhere](https://github.com/radarhere)] - Simplify code to improve performance [#&#8203;9860](https://github.com/python-pillow/Pillow/issues/9860) \[[@&#8203;hugovk](https://github.com/hugovk)] - Move ImageCmsTransform mode check into C [#&#8203;9793](https://github.com/python-pillow/Pillow/issues/9793) \[[@&#8203;radarhere](https://github.com/radarhere)] - Save as RGB(A) when APNG frames have different palettes [#&#8203;9870](https://github.com/python-pillow/Pillow/issues/9870) \[[@&#8203;DSeaStar](https://github.com/DSeaStar)] - Simplified SPIDER code [#&#8203;9823](https://github.com/python-pillow/Pillow/issues/9823) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use `fmt: skip` instead of `fmt: off`/`fmt: on` [#&#8203;9828](https://github.com/python-pillow/Pillow/issues/9828) \[[@&#8203;akx](https://github.com/akx)] - Reorder ImageMode tuples [#&#8203;9808](https://github.com/python-pillow/Pillow/issues/9808) \[[@&#8203;radarhere](https://github.com/radarhere)] - Handle zero dimensions in ImagingOffset [#&#8203;9847](https://github.com/python-pillow/Pillow/issues/9847) \[[@&#8203;Mengxi-Xu](https://github.com/Mengxi-Xu)] - \[pre-commit.ci] pre-commit autoupdate [#&#8203;9843](https://github.com/python-pillow/Pillow/issues/9843) \[@&#8203;[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci)] - Derive PCX band count from the image, not the line width [#&#8203;9798](https://github.com/python-pillow/Pillow/issues/9798) \[[@&#8203;chuenchen309](https://github.com/chuenchen309)] - Fix BMP save of a P image with an empty palette [#&#8203;9746](https://github.com/python-pillow/Pillow/issues/9746) \[[@&#8203;binggao1230](https://github.com/binggao1230)] - Do not read any further than necessary when decoding BMP images with RLE8 compression [#&#8203;9824](https://github.com/python-pillow/Pillow/issues/9824) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fix unexpected errors when decoding truncated QOI images [#&#8203;9813](https://github.com/python-pillow/Pillow/issues/9813) \[[@&#8203;abhi-0203](https://github.com/abhi-0203)] - Raise ValueError instead of asserting ImageOps colorize() arguments [#&#8203;9825](https://github.com/python-pillow/Pillow/issues/9825) \[[@&#8203;LuShadowX](https://github.com/LuShadowX)] - Fix retrieving ImagePalette colors from raw palettes [#&#8203;9821](https://github.com/python-pillow/Pillow/issues/9821) \[[@&#8203;nightcityblade](https://github.com/nightcityblade)] - Treat an MPO with too few MP entries as a JPEG [#&#8203;9826](https://github.com/python-pillow/Pillow/issues/9826) \[[@&#8203;LuShadowX](https://github.com/LuShadowX)] - Use mode as default for C getpalette raw mode [#&#8203;9822](https://github.com/python-pillow/Pillow/issues/9822) \[[@&#8203;radarhere](https://github.com/radarhere)] - Raise SyntaxError instead of OverflowError for oversized JPEG 2000 box [#&#8203;9818](https://github.com/python-pillow/Pillow/issues/9818) \[[@&#8203;nevercodecorrect](https://github.com/nevercodecorrect)] - Raise UserWarning if TIFF tag offset too large [#&#8203;9816](https://github.com/python-pillow/Pillow/issues/9816) \[[@&#8203;radarhere](https://github.com/radarhere)] - Raise ValueError if Dib paste() box does not match image size [#&#8203;9815](https://github.com/python-pillow/Pillow/issues/9815) \[[@&#8203;radarhere](https://github.com/radarhere)] - Raise ValueError instead of asserting number of FTEX texture formats [#&#8203;9805](https://github.com/python-pillow/Pillow/issues/9805) \[[@&#8203;ritsth](https://github.com/ritsth)] - Handle premultiplied alpha modes in ImageColor.getcolor() [#&#8203;9797](https://github.com/python-pillow/Pillow/issues/9797) \[[@&#8203;chuenchen309](https://github.com/chuenchen309)] - Remove PIL_NO_INLINE and MSVC alias for inline [#&#8203;9802](https://github.com/python-pillow/Pillow/issues/9802) \[[@&#8203;akx](https://github.com/akx)] - Fix adding a new color when image palette has missing background or transparency index [#&#8203;9799](https://github.com/python-pillow/Pillow/issues/9799) \[[@&#8203;chuenchen309](https://github.com/chuenchen309)] - Correct background color when using P mode images with ImageOps.pad() [#&#8203;9795](https://github.com/python-pillow/Pillow/issues/9795) \[[@&#8203;chuenchen309](https://github.com/chuenchen309)] - Fix 16-bit ImageFilter accuracy [#&#8203;9786](https://github.com/python-pillow/Pillow/issues/9786) \[[@&#8203;akx](https://github.com/akx)] - Removed unused variable [#&#8203;9789](https://github.com/python-pillow/Pillow/issues/9789) \[[@&#8203;radarhere](https://github.com/radarhere)] - Remove unused PNG \_OUTMODES [#&#8203;9780](https://github.com/python-pillow/Pillow/issues/9780) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add support for Python 3.15 [#&#8203;9776](https://github.com/python-pillow/Pillow/issues/9776) \[[@&#8203;hugovk](https://github.com/hugovk)] - Fix RLE4 absolute mode decoding for odd pixel counts [#&#8203;9710](https://github.com/python-pillow/Pillow/issues/9710) \[[@&#8203;nyxst4ck](https://github.com/nyxst4ck)] - Avoid divide-by-zero crash in RankFilter [#&#8203;9755](https://github.com/python-pillow/Pillow/issues/9755) \[[@&#8203;lukegb](https://github.com/lukegb)] - Port coveragerc to pyproject.toml; omit benchmarks from coverage [#&#8203;9771](https://github.com/python-pillow/Pillow/issues/9771) \[[@&#8203;akx](https://github.com/akx)] - Remove minimumReleaseAge for google/oss-fuzz [#&#8203;9764](https://github.com/python-pillow/Pillow/issues/9764) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use ImagingNewDirty() in RankFilter and remove ImagingFill() in font.getmask() [#&#8203;9744](https://github.com/python-pillow/Pillow/issues/9744) \[[@&#8203;akx](https://github.com/akx)] - Remove Setuptools obsolete `zip_safe` flag [#&#8203;9758](https://github.com/python-pillow/Pillow/issues/9758) \[[@&#8203;hugovk](https://github.com/hugovk)] - Fix attach SBOM to GitHub release [#&#8203;9748](https://github.com/python-pillow/Pillow/issues/9748) \[[@&#8203;hugovk](https://github.com/hugovk)] </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjcuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2Ny4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
fix(deps): update dependency pillow to v13
Some checks failed
Continuous Integration / Build Package (push) Has been cancelled
Continuous Integration / Lint, Check & Test (push) Has been cancelled
f063db9516
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kfickel/hokusai!76
No description provided.