Pillow-heif

Latest version: v0.22.0

Safety actively analyzes 723217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 8

0.6.0

Not secure
This release is fully compatible with previous versions if was not using `AVIF` decoding before.

Added

- (Heif) `save` method accepts optional parameter `format`. If `format="AVIF"` output file will be encoded in `h264` format using `AOM`.
- `AvifImagePlugin` introduced. Usage: `register_avif_opener()` or `import pillow_heif.AvifImagePlugin`
- After registering `AvifImagePlugin` you can work with `.avif` files the same way you do with `.heic`

Changed

- (HeifImagePlugin) By default not accepts `.avif` files, register `AvifImagePlugin` if you need that. If you use `pillow_avif` then do not =)
- `options().hevc_enc` property was removed.
- `options().avif` property was removed.

Fixed

- Better compatibility with `pillow_avif` package.
- (Linux) Wheels size decreased significantly(almost in `2x`).
- (Linux) Building from source is a bit simpler, you can build it with your custom libraries from now.
- (Linux) Great speed boost for encoding with new build type(it is as fast now as in Windows builds).

0.5.1

Not secure
This release is fully compatible with `0.5.0` version.

Added

- `chroma=4xx` optional subsampling parameter for `save`. Equivalent to `enc_params=[("chroma", "4xx")]` in old versions.

Changed

- `enc_params` for `save` changed type from `List[Tuple[str, str]]` to `Dict`. Old code will still work, but marked as deprecated.
- `libheif_info` now returns also bundled versions of `x265` and `aom`.
- `options().avif` marked as deprecated. Starting from `0.6.0` version to register an `AVIF` plugin there will be a separate function, and it will be disabled by default.
- `options().hevc_enc` marked as deprecated and will be removed in `0.6.0`.

Fixed

- Rare situation when exif orientation is `1` and xmp orientation different from `1` present at same time.
- XMP tags orientation that is generated by `exiftool` in some cases.
- Updated `libaom` on Linux and Windows from `3.3.0` to `3.4.0` version. MacOS builds had already that version in `0.5.0`.
- Pillow plugin now does not register `save` methods for `HEIF` format if build does not contain `HEIF` encoder(for custom build from source).
- Slight speed optimizations for working in a `Pillow` plugin mode.

0.5.0

Not secure
Thumbnails were reworked, if was not use them before, then this release is fully compatible with `0.4.0` version.
It is a final API release, no more further changes to existing API are planned, only bugfixes, etc.

Added

- (Heif, HeifImagePlugin) `thumbnail` function, `docs` for it.
- `__numpy_array__` property to `HeifFile`
- `convert_to` method to `HeifFile`

Changed

- Wheels now are in ABI3 format for CPython(`cp3x-abi3-xxx.whl`), `3x` less size on PyPi.
- (Heif) `to_pillow` method, now fills `metadata` from an original image if was called for thumbnails.
- (HeifImagePlugin) During `open` `current frame` in multi frame images are set to index of `Primary Image`.
- (Heif) `add_thumbnails` method moved from `HeifFile`/`HeifImage` to separate file and now can accept a `PIL Image`.

Fixed

- (HeifImagePlugin) Nice `speed up` for reading images having thumbnails in a `Pillow plugin` mode.
- (HeifImagePlugin) `XMP` metadata save from `TIFF` and `JPEG`.
- (HeifImagePlugin) `EXIF` metadata save from `TIFF`(only for Pillow >= 9.2).
- (HeifImagePlugin) Not to change the index of a current frame during saving multi-frame images.

0.4.0

Not secure
Added

- (Heif) - Numpy array interface support.
- (Heif) - `add_from_bytes` method and `from_bytes` function added. Allows to read 16-bit color images with `OpenCV`(or any other library) and save it as 10(12) bit HEIF.
- (Heif) - `convert_to` method to `HeifImage` to provide an easy way to open 10 or 12 bit images as 16 bit for `OpenCV`(or any other library)
- (Heif, HeifImagePlugin) - support for saving images from `I`, `I;16`, `BGRA;16`, `BGR;16`, `BGRA`, `BGR` modes.
- (Heif) - added `save_to_12bit` to `options`, default `False`. Determines what bitness will have converted 16-bit images during saving.

Changed

- **IMPORTANT!!!** `10/12` bit images changed their byte order from `Big Endian` to `Little Endian`. Probably no one still uses that API, but who knows...
- (Heif) - `HeifFile.chroma` and `HeifFile.color` properties was removed(they were not documented so probably no one will notice this), that info now stored in `mode`.
- (Heif, HeifImagePlugin) - `mode` for `10`/`12` bits was changed and accepts wider range of values, look [here](https://pillow-heif.readthedocs.io/en/latest/image-modes.html)
- Docs were `updated` & `rewritten` to reflect all those changes.

Fixed

- `Examples` were `fixed` & `rewritten`(were broken from `0.3.1`+ versions).
- `exif` loading in HEIF sequence for `Pillow 9.2+` (https://github.com/python-pillow/Pillow/pull/6335)

0.3.2

Not secure
Fixed

- Support of saving images with mode=`"1"` in `"L"` mode.
- Images with mode=`"L"` are now saved natively in `Monochrome` mode(increase speed & decreased required memory and a bit less size)
- Speed optimization for `save` `append_images` parameter
- Possible `SEGFAULT` during encoding with some `stride` values.

0.3.1

Not secure
Added

- (Heif) - `HeifFile` gets `images: List[HeifImage]` and alternative method of changing order of images by editing it.
- (HeifImagePlugin) - `info` image dictionary can be now edited in place, and it will be saved for image sequences.

Changed

- Updated docs.

Fixed

- (HeifImagePlugin) Again fixing image order, for Pillow plugin it was not fixed fully in 0.3.0.
- Optimizing code.

Page 5 of 8

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.