diff options
| author | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
|---|---|---|
| committer | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
| commit | 4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch) | |
| tree | ee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/METADATA | |
| parent | cc961e04ba734dd72309fb548a2f97d67d578813 (diff) | |
| download | gn-ai-master.tar.gz | |
Diffstat (limited to '.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/METADATA')
| -rw-r--r-- | .venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/METADATA | 217 |
1 files changed, 217 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/METADATA b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/METADATA new file mode 100644 index 00000000..5aeb0382 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/METADATA @@ -0,0 +1,217 @@ +Metadata-Version: 2.1 +Name: pillow_heif +Version: 0.21.0 +Summary: Python interface for libheif library +Home-page: https://github.com/bigcat88/pillow_heif +Author: Alexander Piskun +Author-email: bigcat88@users.noreply.github.com +License: BSD-3-Clause +Project-URL: Documentation, https://pillow-heif.readthedocs.io +Project-URL: Source, https://github.com/bigcat88/pillow_heif +Project-URL: Changelog, https://github.com/bigcat88/pillow_heif/blob/master/CHANGELOG.md +Keywords: heif,heic,avif,pillow +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Topic :: Software Development +Classifier: Topic :: Software Development :: Libraries +Classifier: Topic :: Multimedia :: Graphics +Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2) +Classifier: Operating System :: MacOS :: MacOS X +Classifier: Operating System :: POSIX :: Linux +Classifier: Operating System :: Microsoft :: Windows +Requires-Python: >=3.9 +Description-Content-Type: text/markdown +License-File: LICENSE.txt +License-File: LICENSES_bundled.txt +Requires-Dist: pillow>=10.1.0 +Provides-Extra: docs +Requires-Dist: sphinx>=4.4; extra == "docs" +Requires-Dist: sphinx-issues>=3.0.1; extra == "docs" +Requires-Dist: sphinx-rtd-theme>=1.0; extra == "docs" +Provides-Extra: tests-min +Requires-Dist: pytest; extra == "tests-min" +Requires-Dist: defusedxml; extra == "tests-min" +Requires-Dist: packaging; extra == "tests-min" +Provides-Extra: tests +Requires-Dist: pytest; extra == "tests" +Requires-Dist: defusedxml; extra == "tests" +Requires-Dist: packaging; extra == "tests" +Requires-Dist: numpy; extra == "tests" +Requires-Dist: pympler; extra == "tests" +Provides-Extra: dev +Requires-Dist: pytest; extra == "dev" +Requires-Dist: defusedxml; extra == "dev" +Requires-Dist: packaging; extra == "dev" +Requires-Dist: numpy; extra == "dev" +Requires-Dist: pympler; extra == "dev" +Requires-Dist: opencv-python==4.10.0.84; extra == "dev" +Requires-Dist: pre-commit; extra == "dev" +Requires-Dist: pylint; extra == "dev" +Requires-Dist: coverage; extra == "dev" + +# pillow-heif + +[](https://github.com/bigcat88/pillow_heif/actions/workflows/analysis-coverage.yml) +[](https://github.com/bigcat88/pillow_heif/actions/workflows/nightly-src-build.yml) +[](https://github.com/bigcat88/pillow_heif/actions/workflows/test-wheels.yml) +[](https://pillow-heif.readthedocs.io/en/latest/?badge=latest) +[](https://codecov.io/gh/bigcat88/pillow_heif) + + + + +[](https://pepy.tech/project/pillow-heif) +[](https://pepy.tech/project/pillow-heif) + + + + + + + +Python bindings to [libheif](https://github.com/strukturag/libheif) for working with HEIF images and plugin for Pillow. + +Features: + * Decoding of `8`, `10`, `12` bit HEIC and AVIF files. + * Encoding of `8`, `10`, `12` bit HEIC and AVIF files. + * `EXIF`, `XMP`, `IPTC` read & write support. + * Support of multiple images in one file and a `PrimaryImage` attribute. + * Adding & removing `thumbnails`. + * Reading of `Depth Images`. + * (beta) Reading of `Auxiliary Images` by [johncf](https://github.com/johncf) + * Adding HEIF support to Pillow in one line of code as a plugin. + +Note: Here is a light version [pi-heif](https://pypi.org/project/pi-heif/) of this project without encoding capabilities. + +### Install +```console +python3 -m pip install -U pip +python3 -m pip install pillow-heif +``` + +### Example of use as a Pillow plugin +```python3 +from PIL import Image +from pillow_heif import register_heif_opener + +register_heif_opener() + +im = Image.open("image.heic") # do whatever need with a Pillow image +im = im.rotate(13) +im.save(f"rotated_image.heic", quality=90) +``` + +### 16 bit PNG to 10 bit HEIF using OpenCV +```python3 +import cv2 +import pillow_heif + +cv_img = cv2.imread("16bit_with_alpha.png", cv2.IMREAD_UNCHANGED) +heif_file = pillow_heif.from_bytes( + mode="BGRA;16", + size=(cv_img.shape[1], cv_img.shape[0]), + data=bytes(cv_img) +) +heif_file.save("RGBA_10bit.heic", quality=-1) +``` + +### 8/10/12 bit HEIF to 8/16 bit PNG using OpenCV +```python3 +import numpy as np +import cv2 +import pillow_heif + +heif_file = pillow_heif.open_heif("image.heic", convert_hdr_to_8bit=False, bgr_mode=True) +np_array = np.asarray(heif_file) +cv2.imwrite("image.png", np_array) +``` + +### Accessing decoded image data +```python3 +import pillow_heif + +if pillow_heif.is_supported("image.heic"): + heif_file = pillow_heif.open_heif("image.heic", convert_hdr_to_8bit=False) + print("image size:", heif_file.size) + print("image mode:", heif_file.mode) + print("image data length:", len(heif_file.data)) + print("image data stride:", heif_file.stride) +``` + +### Get decoded image data as a Numpy array +```python3 +import numpy as np +import pillow_heif + +if pillow_heif.is_supported("input.heic"): + heif_file = pillow_heif.open_heif("input.heic") + np_array = np.asarray(heif_file) +``` + +### AVIF support + +Working with the `AVIF` files as the same as with the `HEIC` files. Just use a separate function to register plugin: +```python3 +import pillow_heif + +pillow_heif.register_avif_opener() +``` + +### Accessing Depth Images + +```python3 +from PIL import Image +from pillow_heif import register_heif_opener +import numpy as np + +register_heif_opener() + +im = Image.open("../tests/images/heif_other/pug.heic") +if im.info["depth_images"]: + depth_im = im.info["depth_images"][0] # Access the first depth image (usually there will be only one). + # Depth images are instances of `class HeifDepthImage(BaseImage)`, + # so work with them as you would with any usual image in pillow_heif. + # Depending on what you need the depth image for, you can convert it to a NumPy array or convert it to a Pillow image. + pil_im = depth_im.to_pillow() + np_im = np.asarray(depth_im) + print(pil_im) + print(pil_im.info["metadata"]) +``` + + +### More Information + +- [Documentation](https://pillow-heif.readthedocs.io/) + - [Installation](https://pillow-heif.readthedocs.io/en/latest/installation.html) + - [Pillow plugin](https://pillow-heif.readthedocs.io/en/latest/pillow-plugin.html) + - [Using HeifFile](https://pillow-heif.readthedocs.io/en/latest/heif-file.html) + - [Image modes](https://pillow-heif.readthedocs.io/en/latest/image-modes.html) + - [Options](https://pillow-heif.readthedocs.io/en/latest/options.html) +- [Examples](https://github.com/bigcat88/pillow_heif/tree/master/examples) +- [Contribute](https://github.com/bigcat88/pillow_heif/blob/master/.github/CONTRIBUTING.md) + - [Discussions](https://github.com/bigcat88/pillow_heif/discussions) + - [Issues](https://github.com/bigcat88/pillow_heif/issues) +- [Changelog](https://github.com/bigcat88/pillow_heif/blob/master/CHANGELOG.md) + +### Wheels + +| **_Wheels table_** | macOS<br/>Intel | macOS<br/>Silicon | Windows<br/> | musllinux* | manylinux* | +|--------------------|:---------------:|:-----------------:|:------------:|:----------:|:----------:| +| CPython 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | +| CPython 3.10 | ✅ | ✅ | ✅ | ✅ | ✅ | +| CPython 3.11 | ✅ | ✅ | ✅ | ✅ | ✅ | +| CPython 3.12 | ✅ | ✅ | ✅ | ✅ | ✅ | +| CPython 3.13 | ✅ | ✅ | ✅ | ✅ | ✅ | +| PyPy 3.9 v7.3 | ✅ | ✅ | ✅ | N/A | ✅ | +| PyPy 3.10 v7.3 | ✅ | ✅ | ✅ | N/A | ✅ | + +* **x86_64**, **aarch64** wheels. |
