Skip to main content

Python 3.6+ interface to libheif library

Project description

pillow-heif

analysis build wheels test codecov style

PythonVersion impl pypi Downloads Downloads

Mac OS Windows Linux Alpine Linux

Python bindings to libheif for working with HEIF images and an add-on for Pillow.

Features:

  • Decoding of 8, 10, 12 bit HEIF images.
  • Encoding of 8, 10, 12 bit HEIF images.
  • EXIF, XMP, IPTC metadata support.
  • Support of multiple images in one file, e.g HEIC files and PrimaryImage attribute.
  • HEIF native thumbnails support.
  • Adding all this features to Pillow in one line of code as a plugin.
  • Includes AVIF(x264) decoder.

Example of use as pillow plugin.

from PIL import Image, ImageSequence
from pillow_heif import register_heif_opener

register_heif_opener()

image = Image.open('images/input.heic')
for i, frame in enumerate(ImageSequence.Iterator(image)):
    rotated = frame.rotate(13)
    rotated.save(f'rotated_frame{i}.heic', quality=90)

Standalone example use

import pillow_heif

if pillow_heif.is_supported('input.heic'):
    heif_file = pillow_heif.open_heif('input.heic')
    for img in heif_file:  # you still can use it without iteration, like before.
        img.scale(1024, 768) # scaling each image in file.
    heif_file.add_thumbnails([768, 512, 256]) # add three new thumbnail boxes.
    # default quality is probably ~77 in x265, set it a bit lower.
    heif_file.save('output.heic', quality=70, save_all=False) # save_all is True by default.

More Information

Wheels

Wheels table macOS
Intel
macOS
Silicon
Windows
64bit
musllinux* manylinux*
CPython 3.6 N/A N/A N/A
CPython 3.7 N/A
CPython 3.8 N/A
CPython 3.9
CPython 3.10
PyPy 3.7 v7.3 N/A N/A N/A
PyPy 3.8 v7.3 N/A N/A N/A
PyPy 3.9 v7.3 N/A N/A N/A

* i686, x86_64, aarch64 wheels.

Versions 0.3.X will be last to support Python 3.6

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pillow_heif-0.3.0.tar.gz (8.8 MB view hashes)

Uploaded Source

Built Distributions

pillow_heif-0.3.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pillow_heif-0.3.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (8.5 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

pillow_heif-0.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.9 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

pillow_heif-0.3.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (6.6 MB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

pillow_heif-0.3.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pillow_heif-0.3.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (8.5 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

pillow_heif-0.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.9 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

pillow_heif-0.3.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (6.6 MB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

pillow_heif-0.3.0-cp310-cp310-win_amd64.whl (7.6 MB view hashes)

Uploaded CPython 3.10 Windows x86-64

pillow_heif-0.3.0-cp310-cp310-musllinux_1_1_x86_64.whl (13.9 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

pillow_heif-0.3.0-cp310-cp310-musllinux_1_1_i686.whl (9.2 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

pillow_heif-0.3.0-cp310-cp310-musllinux_1_1_aarch64.whl (12.5 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARM64

pillow_heif-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.1 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pillow_heif-0.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (8.6 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

pillow_heif-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.0 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

pillow_heif-0.3.0-cp310-cp310-macosx_12_0_arm64.whl (4.2 MB view hashes)

Uploaded CPython 3.10 macOS 12.0+ ARM64

pillow_heif-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl (6.6 MB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pillow_heif-0.3.0-cp39-cp39-win_amd64.whl (7.6 MB view hashes)

Uploaded CPython 3.9 Windows x86-64

pillow_heif-0.3.0-cp39-cp39-musllinux_1_1_x86_64.whl (13.9 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

pillow_heif-0.3.0-cp39-cp39-musllinux_1_1_i686.whl (9.2 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

pillow_heif-0.3.0-cp39-cp39-musllinux_1_1_aarch64.whl (12.5 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ ARM64

pillow_heif-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.1 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pillow_heif-0.3.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (8.6 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

pillow_heif-0.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.0 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

pillow_heif-0.3.0-cp39-cp39-macosx_12_0_arm64.whl (4.2 MB view hashes)

Uploaded CPython 3.9 macOS 12.0+ ARM64

pillow_heif-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl (6.6 MB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pillow_heif-0.3.0-cp38-cp38-win_amd64.whl (7.6 MB view hashes)

Uploaded CPython 3.8 Windows x86-64

pillow_heif-0.3.0-cp38-cp38-musllinux_1_1_x86_64.whl (13.9 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

pillow_heif-0.3.0-cp38-cp38-musllinux_1_1_i686.whl (9.2 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

pillow_heif-0.3.0-cp38-cp38-musllinux_1_1_aarch64.whl (12.5 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ ARM64

pillow_heif-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.1 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pillow_heif-0.3.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (8.6 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

pillow_heif-0.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.0 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

pillow_heif-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl (6.6 MB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

pillow_heif-0.3.0-cp37-cp37m-win_amd64.whl (7.6 MB view hashes)

Uploaded CPython 3.7m Windows x86-64

pillow_heif-0.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl (13.9 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

pillow_heif-0.3.0-cp37-cp37m-musllinux_1_1_i686.whl (9.2 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

pillow_heif-0.3.0-cp37-cp37m-musllinux_1_1_aarch64.whl (12.5 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ ARM64

pillow_heif-0.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.1 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

pillow_heif-0.3.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (8.6 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

pillow_heif-0.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.0 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

pillow_heif-0.3.0-cp37-cp37m-macosx_10_9_x86_64.whl (6.6 MB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

pillow_heif-0.3.0-cp36-cp36m-musllinux_1_1_x86_64.whl (13.9 MB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ x86-64

pillow_heif-0.3.0-cp36-cp36m-musllinux_1_1_i686.whl (9.2 MB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ i686

pillow_heif-0.3.0-cp36-cp36m-musllinux_1_1_aarch64.whl (12.5 MB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ ARM64

pillow_heif-0.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.1 MB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

pillow_heif-0.3.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl (8.6 MB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ i686

pillow_heif-0.3.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.0 MB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ ARM64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page