diff options
Diffstat (limited to '.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info')
8 files changed, 319 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/INSTALLER b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/LICENSE.txt b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/LICENSE.txt new file mode 100644 index 00000000..d48cb0e8 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/LICENSE.txt @@ -0,0 +1,30 @@ +Copyright (c) 2021-2023, Pillow-Heif contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of the Pillow-Heif nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/LICENSES_bundled.txt b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/LICENSES_bundled.txt new file mode 100644 index 00000000..5c670b74 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/LICENSES_bundled.txt @@ -0,0 +1,27 @@ +License for "pillow-heif" binary wheels: GPLv2, due to base library licenses. + +Binary wheels combine several license-compatible libraries. Here they are listed. + +Name: libheif +License: LGPLv3 +Files: libheif.[dylib|so|dll] + For details, see https://github.com/strukturag/libheif/tree/v1.18.1/COPYING + Source code: https://github.com/strukturag/libheif/tree/v1.18.1 + +Name: libde265 +License: LGPLv3 +Files: libde265.[dylib|so|dll] + For details, see https://github.com/strukturag/libde265/tree/v1.0.15/COPYING + Source code: https://github.com/strukturag/libde265/tree/v1.0.15 + +Name: x265 +License: GPLv2 +Files: libx265.[dylib|so|dll] + For details, see https://bitbucket.org/multicoreware/x265_git/src/Release_3.4/COPYING + Source code: https://bitbucket.org/multicoreware/x265_git/src/Release_3.4 + +Name: libaom +License: BSD 3-Clause +Files: libaom.[dylib|so|dll] + For details, see https://aomedia.googlesource.com/aom/+/refs/tags/v3.6.1/LICENSE + Source code: https://aomedia.googlesource.com/aom/+/refs/tags/v3.6.1 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. diff --git a/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/RECORD b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/RECORD new file mode 100644 index 00000000..eb0c146d --- /dev/null +++ b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/RECORD @@ -0,0 +1,35 @@ +_pillow_heif.cpython-312-x86_64-linux-gnu.so,sha256=YFlFAVnHNZGMQvVpSX6dEwRamT1YJWudpLUoiND4xms,221577 +pillow_heif-0.21.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +pillow_heif-0.21.0.dist-info/LICENSE.txt,sha256=niY18VWwCvWkbLLyybBSBy7FRtWYN-5078nLosu4Pz0,1546 +pillow_heif-0.21.0.dist-info/LICENSES_bundled.txt,sha256=IAzhZEIafsbwdC3KzxAFUYR617FqxY5vMN0PNv2Pz34,1015 +pillow_heif-0.21.0.dist-info/METADATA,sha256=oiUv9sCEHLXMQL1WLOvPp9BdYuk3kq7Oo6gG_If1nKw,9761 +pillow_heif-0.21.0.dist-info/RECORD,, +pillow_heif-0.21.0.dist-info/WHEEL,sha256=tRzqFuK6eFjpbf2xTNvU7E3xL2y00S_NWJvyqxej3BA,151 +pillow_heif-0.21.0.dist-info/top_level.txt,sha256=iX-kTFDQPRwRFsqj5c6PgZgetruemjt6Xkw9Dgb978o,25 +pillow_heif-0.21.0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 +pillow_heif.libs/libaom-a0b51804.so.3.6.1,sha256=R2uTdjllRcMn8gk5tU87qrHdmYUZpkFDud42eNfnUfo,7805961 +pillow_heif.libs/libde265-ab527a81.so,sha256=maJhHb-GLPCsOc0tdlOrF6yiZVyfMc1whFuvy1wUAeY,1218393 +pillow_heif.libs/libheif-66648680.so.1.19.5,sha256=B7E5W-s7Y441lBaVL7lh4yHcNh49KB0s5dM0Go62BsA,1973297 +pillow_heif.libs/libx265-3b50b725.so.204,sha256=EMx9IxWKIFqSvw2PfQtaD8sqLh6XrDvKUuswxD7GCrg,21626161 +pillow_heif/AvifImagePlugin.py,sha256=MVq-VlOVLygXsmO69L-OWWSzhS4nUJgbS6fNy0etIpc,136 +pillow_heif/HeifImagePlugin.py,sha256=kaauUwY0yq1CcomzIZogx2UMVTUm_Fm6QMIp0bQIS8w,135 +pillow_heif/__init__.py,sha256=FESd-e0N4ySGu3EUsDadPEEA4nDzRrpzTYyawzHTdJA,679 +pillow_heif/__pycache__/AvifImagePlugin.cpython-312.pyc,, +pillow_heif/__pycache__/HeifImagePlugin.cpython-312.pyc,, +pillow_heif/__pycache__/__init__.cpython-312.pyc,, +pillow_heif/__pycache__/_deffered_error.cpython-312.pyc,, +pillow_heif/__pycache__/_lib_info.cpython-312.pyc,, +pillow_heif/__pycache__/_version.cpython-312.pyc,, +pillow_heif/__pycache__/as_plugin.cpython-312.pyc,, +pillow_heif/__pycache__/constants.cpython-312.pyc,, +pillow_heif/__pycache__/heif.cpython-312.pyc,, +pillow_heif/__pycache__/misc.cpython-312.pyc,, +pillow_heif/__pycache__/options.cpython-312.pyc,, +pillow_heif/_deffered_error.py,sha256=e02pV5yE-TGboDG5YTYLEgrfD3o0FnEGpK5WBJUpv_g,325 +pillow_heif/_lib_info.py,sha256=-xrH5BOCZy-nMwM6xJO1f0SlL2r6CIJtubwoQ5quZOI,1001 +pillow_heif/_version.py,sha256=W4dmh-eW47KZCsJE33pUzfXvQqQKFnuTswTTgTZ004k,62 +pillow_heif/as_plugin.py,sha256=tGs4AbfqBTdTrRouQQaT1T5FsVtzhPGb1xAW3-bAk0w,10267 +pillow_heif/constants.py,sha256=ARH-qzr8dcMutoeUN1y7N8BjdHDxTWt7MI8GZqgDulc,5065 +pillow_heif/heif.py,sha256=SOUeNzrJTqhv0emyAERcszynk3WhR67_DwWS06CD3Iw,23969 +pillow_heif/misc.py,sha256=3RxPyk-5sKnhaNBbQtw7UtTw9zYrZqUuUrLMjh_Mzjs,20544 +pillow_heif/options.py,sha256=C6cvaSNfqJsHbhJlCWhpmja0a5UdGA6UKenc0MCBdN0,2984 diff --git a/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/WHEEL b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/WHEEL new file mode 100644 index 00000000..1c04f8bc --- /dev/null +++ b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: setuptools (75.6.0) +Root-Is-Purelib: false +Tag: cp312-cp312-manylinux_2_17_x86_64 +Tag: cp312-cp312-manylinux2014_x86_64 + diff --git a/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/top_level.txt b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/top_level.txt new file mode 100644 index 00000000..cf17f115 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/top_level.txt @@ -0,0 +1,2 @@ +_pillow_heif +pillow_heif diff --git a/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/zip-safe b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/zip-safe new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/pillow_heif-0.21.0.dist-info/zip-safe @@ -0,0 +1 @@ + |
