Download Latest Version 12.2.0 source code.tar.gz (47.1 MB)
Email in envelope

Get an email when there's a new version of Pillow

Home / 12.1.0
Name Modified Size InfoDownloads / Week
Parent folder
12.1.0 source code.tar.gz 2026-01-02 47.1 MB
12.1.0 source code.zip 2026-01-02 47.9 MB
README.md 2026-01-02 4.3 kB
Totals: 3 Items   95.0 MB 0

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

Deprecations

  • Deprecate getdata(), in favour of new get_flattened_data() [#9292] [@radarhere]

Documentation

  • Specify APNG duration type when opening [#9368] [@radarhere]
  • Added release notes for [#9350] [#9366] [@radarhere]
  • Update ImageMorph documentation [#9349] [@radarhere]
  • Docs: update major bump cadence [#9334] [@hugovk]
  • Add release notes for [#9070] [#9320] [@radarhere]
  • Updated Ubuntu version [#9306] [@radarhere]
  • Update macOS tested Pillow versions [#9265] [@radarhere]

Dependencies

  • Update harfbuzz to 12.3.0 [#9355] [@radarhere]
  • Update xz to 5.8.2 [#9343] [@radarhere]
  • Updated libjpeg-turbo to 3.1.3 [#9333] [@radarhere]
  • Updated zlib-ng to 2.3.2 [#9324] [@radarhere]
  • Updated libpng to 1.6.53 [#9325] [@radarhere]
  • Update actions/checkout action to v6 [#9323] [@renovate[bot]]
  • Update dependency mypy to v1.19.0 [#9322] [@renovate[bot]]
  • Updated libpng to 1.6.51 [#9305] [@radarhere]
  • Updated brotli to 1.2.0 [#9284] [@radarhere]
  • Update libimagequant to 4.4.1 [#9301] [@radarhere]
  • Update zlib-ng to 2.3.1, except on manylinux2014 aarch64 [#9312] [@radarhere]
  • Updated harfbuzz to 12.2.0 [#9289] [@radarhere]
  • Update github-actions [#9277] [@renovate[bot]]

Testing

  • Replace pre-commit with prek [#9360] [@hugovk]
  • Test PyQt6 on Python 3.14 on Windows [#9353] [@radarhere]
  • Test 32-bit Windows on Windows Server 2022 [#9345] [@radarhere]
  • Correct variable type [#9335] [@radarhere]
  • Fix ResourceWarnings in selftest.py [#9332] [@hugovk]
  • Fix testing good P mode BMP images [#9319] [@radarhere]
  • Test Python 3.15 pre-release [#9331] [@hugovk]
  • Test ImageFont.ImageFont, in case freetype2 is not supported [#9287] [@radarhere]
  • Add Fedora 43 [#9290] [@radarhere]
  • Remove Fedora 41 [#9260] [@radarhere]

Type hints

  • Add ImageFile context manager [#9367] [@radarhere]
  • Assert fp is not None [#8617] [@radarhere]
  • Added return type to ImageFile _close_fp() [#9356] [@radarhere]
  • Use different variables for Image and ImageFile instances [#9316] [@radarhere]
  • Correct variable type [#9335] [@radarhere]
  • Improve type hints [#9317] [@radarhere]
  • Use different variables for Image and ImageFile instances [#9268] [@radarhere]
  • Added type hints [#9269] [@radarhere]
  • Correct getitem return type [#9264] [@radarhere]

Other changes

  • Simplify band splitting [#9291] [@radarhere]
  • Support saving APNG float durations [#9365] [@radarhere]
  • Allow 1 mode images in MorphOp [#9348] [@radarhere]
  • Use minimum supported Python version for Lint [#9364] [@radarhere]
  • Allow for duplicate font variation styles [#9362] [@radarhere]
  • Call parent verify method [#9357] [@radarhere]
  • Return LUT from LutBuilder build_default_lut() [#9350] [@radarhere]
  • Simplify WebP code [#9329] [@radarhere]
  • Use unsigned long for DWORD [#9352] [@radarhere]
  • Cast to UINT32 before shifting bits [#9347] [@radarhere]
  • [pre-commit.ci] pre-commit autoupdate [#9318] [@pre-commit-ci[bot]]
  • Allow window ID to be passed to ImageGrab.grab() on macOS [#9070] [@yankeguo]
  • Apply encoder options when saving multiple PNG frames [#9300] [@radarhere]
  • Read all non-zero transparency from mode 1 PNG images as 255 [#9282] [@radarhere]
  • Support writing IFD, SIGNED_RATIONAL and InkNames TIFF tags [#9276] [@radarhere]
  • Remove unused modes [#9275] [@radarhere]
  • Correct allocating new color to RGBA palette [#9313] [@radarhere]
  • Close image on ImageFont exception [#9304] [@radarhere]
  • Reapply "Use macos-latest for iOS arm64 simulator" [#9259] [@radarhere]
  • Escape period in pre-commit-config [#9036] [@radarhere]
  • Add Apache-2.0 notice to IcoImagePlugin [#8947] [@stefan6419846]
  • [pre-commit.ci] pre-commit autoupdate [#9288] [@pre-commit-ci[bot]]
  • Simplify code now that I;16* modes are the only IMAGING_TYPE_SPECIAL [#9263] [@radarhere]
  • Remove BytesIO from DdsImagePlugin [#9273] [@radarhere]
  • Fix ZeroDivisionError in DdsImagePlugin [#9272] [@radarhere]
  • Fix warnings [#9257] [@radarhere]
Source: README.md, updated 2026-01-02