pillow-heif
Python interface for libheif library
Decision gist · record as of 2026-08-14
Yes, if you need HEIF/HEIC support in Python. The package is actively maintained, has no known vulnerabilities, and offers precompiled wheels for all major platforms and Python versions. The copyleft license classification warrants verification for proprietary use, but the library itself is straightforward to integrate via Pillow's plugin system or direct API calls.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires pillow as a runtime dependency; libheif C library bindings are compiled into the wheel.
- Medium install friction due to compiled wheels; prebuilt binaries are available for CPython 3.10–3.14 and PyPy 3.11 across macOS (Intel and ARM), Windows, manylinux, and musllinux.
- Active maintenance with a release 23 days ago.
License · maintenance · safety
BSD-3-Clause (copyleft) — Licensed under BSD-3-Clause (raw) but marked as copyleft in treatment; verify the implications for your use case, particularly if distributing proprietary software.
last release 2026-07-22 (23 days) · last repo commit 2026-08-11 · 302 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 13,249,037 downloads/mo, #1,291 on PyPI
Alternatives
Verify before relying
from pillow_heif import register_heif_opener
register_heif_opener()
# Then use pillow's Image.open() and save() on .heic files- Whether BSD-3-Clause license classification as 'copyleft' in the fact sheet aligns with standard copyleft definitions.
- Performance characteristics for large-scale batch HEIC encoding/decoding operations.
- Compatibility with non-standard HEIC variants or proprietary extensions.
What it is and what it does
pillow-heif is a Python binding to libheif that brings HEIF/HEIC image format support to the Pillow image library. It handles decoding and encoding of 8, 10, and 12-bit HEIC files, preserves EXIF, XMP, and IPTC metadata, and supports advanced features like depth images, thumbnail manipulation, and grid-tiled encoding. The package works as a Pillow plugin—register it once and Pillow's standard Image.open() and save() calls transparently handle HEIC files—or use its standalone API to work directly with HEIF data.
The package is actively maintained and distributed as precompiled wheels for modern Python versions (3.10–3.14) across macOS, Windows, and Linux. Its single runtime dependency is pillow, making it straightforward to integrate into image processing pipelines. The medium install friction reflects the compiled nature of the bindings, but prebuilt wheels eliminate the need to compile libheif locally on most platforms.
Use it for
- Add HEIC file support to a Pillow-based image processing pipeline with one-line plugin registration.
- Convert HEIC images to other formats while preserving or manipulating embedded metadata.
- Process high bit-depth (10 or 12-bit) HEIC files from modern cameras or Apple devices.
- Extract and work with depth maps embedded in HEIC files from iPhone depth-capture photos.
- Encode images as HEIC with grid tiling to match Apple device output formats.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need HEIF/HEIC support in Python.
The package is actively maintained, has no known vulnerabilities, and offers precompiled wheels for all major platforms and Python versions. The copyleft license classification warrants verification for proprietary use, but the library itself is straightforward to integrate via Pillow's plugin system or direct API calls.
Install
pillow-heif on PyPI
Before you install
Medium install friction due to compiled wheels; prebuilt binaries are available for CPython 3.10–3.14 and PyPy 3.11 across macOS (Intel and ARM), Windows, manylinux, and musllinux. Active maintenance with a release 23 days ago.
Requires pillow as a runtime dependency; libheif C library bindings are compiled into the wheel.
License in practice
Licensed under BSD-3-Clause (raw) but marked as copyleft in treatment; verify the implications for your use case, particularly if distributing proprietary software.
Quickstart
from pillow_heif import register_heif_opener
register_heif_opener()
# Then use pillow's Image.open() and save() on .heic files
Verify before relying
- Whether BSD-3-Clause license classification as 'copyleft' in the fact sheet aligns with standard copyleft definitions.
- Performance characteristics for large-scale batch HEIC encoding/decoding operations.
- Compatibility with non-standard HEIC variants or proprietary extensions.
Package facts
| License | BSD-3-Clause copyleft |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 1 packagepillow |
| Maintenance | Actively maintained 23 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 13,249,037 / month, #1,291 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: GNU General Public License v2 (GPLv2)Operating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Multimedia :: GraphicsTopic :: Multimedia :: Graphics :: Graphics ConversionTopic :: Software DevelopmentTopic :: Software Development :: Libraries |
Evidence: pillow_heif-1.5.0-cp310-cp310-macosx_10_15_x86_64.whl; pillow_heif-1.5.0-cp310-cp310-macosx_11_0_arm64.whl; pillow_heif-1.5.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; pillow_heif-1.5.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; pillow_heif-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl; pillow_heif-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl; pillow_heif-1.5.0-cp310-cp310-win_amd64.whl; pillow_heif-1.5.0-cp310-cp310-win_arm64.whl; pillow_heif-1.5.0-cp311-cp311-macosx_10_15_x86_64.whl; pillow_heif-1.5.0-cp311-cp311-macosx_11_0_arm64.whl; pillow_heif-1.5.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; pillow_heif-1.5.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; pillow_heif-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl; pillow_heif-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl; pillow_heif-1.5.0-cp311-cp311-win_amd64.whl; pillow_heif-1.5.0-cp311-cp311-win_arm64.whl; pillow_heif-1.5.0-cp312-cp312-macosx_10_15_x86_64.whl; pillow_heif-1.5.0-cp312-cp312-macosx_11_0_arm64.whl; pillow_heif-1.5.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; pillow_heif-1.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “heic decoder encoder”
- pillow-heifpillow-heif adds HEIF/HEIC image format support to Python, enabling…
- pyheifReads HEIF/HEIC image files and exposes their decoded pixel data,…
- pi-heifDecodes HEIF/HEIC image files and integrates with pillow for reading…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also pi-heif · pyheif · imagesize · Willow · pillow · pillow-avif-plugin · pilgram · ExifRead · qoi · python-xmp-toolkit