unstale

pypi / pillow-heif

pillow-heif

What changed in pillow-heif 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-27.

3 breaking2 security4 new APIs and options1 performance1 tooling5 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

pillow-heif 116 changes

Breaking changes 3

  • Version 1.8.1 is the last version supporting Python 3.10 and Pillow 11/12; version 1.9.0 will require Pillow 13 and Python 3.11 or newer.

    1.8.1release notes

  • Saving ;10 or ;12 data with sample values above its bit depth now raises ValueError.

    1.8.1release notes

  • The minimum required libheif version is now 1.23.4.

    1.8.0release notes

Security 2

  • Fixes an out-of-bounds read when stride is smaller than the image row width.

    1.7.0release notes

  • pillow-heif: Integer Overflow in Encode Path Buffer Validation Leads to Heap Out-of-Bounds Read

    1.3.0security advisory

New APIs and options 4

  • Adds draft support in the Pillow plugin for decoding embedded thumbnails.

    1.8.0release notes

  • The info dictionary can include entity_groups to identify which images form a stereo pair in spatial photos.

    1.8.0release notes

  • Adds a method for decoding embedded thumbnails.

    1.8.0release notes

  • The info dictionary supports reading and writing nominal diffuse white luminance HDR metadata with this key.

    1.7.0release notes

Performance 1

  • Uses embedded thumbnails instead of decoding the full image.

    1.8.0release notes

Tooling 1

  • The marker makes the package's type annotations visible to type checkers.

    1.7.0release notes

Fixes and other changes 5

  • Opening a file with a metadata item type that is not valid UTF-8 no longer causes a segmentation fault.

    1.8.0release notes

  • Loading a multi-frame image no longer reloads frame data on every call, discards in-place changes, or fails after thumbnail().

    1.8.0release notes

  • Names imported from pillow_heif are recognized as exported by type checkers, restoring strict mypy checks and Pyright/Pylance autocompletion.

    1.8.0release notes

  • Depth images with an item type libheif cannot decode are skipped instead of making the whole file unreadable.

    1.8.0release notes

  • Saving an image no longer raises a TypeError when its info dictionary contains non-string keys.

    1.7.0release notes