A decoder of HEIF format of images
Project description
cykooz.heif is simple python wrapper for the library libheif-rs.
RawHeifImage is a simple wrapper around low level HEIF-decoder.
Usage Examples
Read HEIF-image from file:
from cykooz.heif.image import RawHeifImage
img = RawHeifImage.from_path('data/test.heif')
assert img.width == 3024
assert img.height == 4032
assert img.mode == 'RGB'
assert len(img.data) == 36578304
assert img.stride == 9072
assert len(img.exif) == 2026
Read HEIF-image from file-like object:
from cykooz.heif.image import RawHeifImage
with open('data/test.heif') as fp
img = RawHeifImage.from_stream(fp)
assert img.width == 3024
assert img.height == 4032
Also package provides an opener plugin for PIL (Pillow):
from PIL import Image
from cykooz.heif.pil import register_heif_opener
register_heif_opener()
img = Image.open('data/test.heif')
assert isinstance(img, Image.Image)
assert img.size == (3024, 4032)
assert img.mode == 'RGB'
assert img.getpixel((100, 100)) == (73, 73, 69)
img.save('test.jpg', 'JPEG')
Installation from source
System requirements:
Nightly Rust (https://www.rust-lang.org/)
libheif-dev >= 1.5 (https://github.com/strukturag/libheif)
python3-dev (tested with Python 3.6 and 3.7)
Ubuntu 18.04
$ sudo add-apt-repository ppa:strukturag/libheif
$ sudo apt-get install build-essential python3.7-dev libheif-dev curl
$ curl https://sh.rustup.rs -sSf | sh
$ source $HOME/.cargo/env
$ rustup toolchain install nightly
$ pip3 install -U setuptools setuptools-rust
$ PYTHON_SYS_EXECUTABLE=python3 pip3 install cykooz.heif
CHANGELOG
0.7 (2020-03-01)
Changes
Updated version of libheif-rs to 0.9.
0.6 (2019-10-03)
Changes
Updated version of pyo3 to 0.8.
Updated version of libheif-rs to 0.8.
0.5 (2019-08-28)
Changes
Updated version of libheif-rs to 0.6.
0.4.2 (2019-07-17)
Bug Fixes
Added checking of image type inside of HeifImageFile._open().
0.4 (2019-07-17)
Features
Added RawHeifImage.check_file_type to check by first bytes of file what it file is supported by libheif.
Added opener plugin for Pillow.
0.3 (2019-06-28)
Features
Added method for creating HeifImage from any file-like object.
0.2 (2019-06-25)
Changes
Added exception HeifError.
0.1 (2019-06-25)
Initial version.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for cykooz.heif-0.7-cp38-cp38-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28e047752968d5f62856e76ff7d46f545159fd316028c950198b2af11ae79a3c |
|
MD5 | e29d1011ba22b3f4cc24dff3ae554872 |
|
BLAKE2b-256 | 57a966e28afc6d495aa538b11bdccf67f8f913e27347fedd17ce287b51f90075 |
Hashes for cykooz.heif-0.7-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13a18efd33dc9c5fcfb8a69cf20b3337fe446285c8d0834e23e20f91c37506e9 |
|
MD5 | b131fa2b2a6a78a43669df6f050d1002 |
|
BLAKE2b-256 | 708827d180274e2b18241f70ca40f89c88a12ac2e7e711f2212dba5f4756e455 |
Hashes for cykooz.heif-0.7-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de857ef531462793b078e2ed201da826a4685e8859ef7b3fc64cac3739649b72 |
|
MD5 | a8c8e036921c03407a56dc4021d75bef |
|
BLAKE2b-256 | af607b78e38f1aa7ac1ae074e9bceda7a84c36f6e23755bfc7bdb3a728acff7a |
Hashes for cykooz.heif-0.7-cp35-cp35m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83406114ac6b656ac1fb77053c57a6685cb748ec5f7aa94449adf1be9aadc9dd |
|
MD5 | 6b9dd71cc5b9ba1152e4bde9ffcf80cd |
|
BLAKE2b-256 | 7cc5d786447dc7a99584078305e471bb9a6d717458da5b7939b32e11a550b268 |