summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-11 05:58:30 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-11 05:58:30 +0000
commit427a34a9bfd6f028caf9a29552ff5aab48bd503d (patch)
tree11e272384f31931ea884209c46703fd88bc04961
parent58bdda6a8f8ae11f31e499766b56c138aa5c775c (diff)
automatic import of python-pyheif
-rw-r--r--.gitignore1
-rw-r--r--python-pyheif.spec505
-rw-r--r--sources1
3 files changed, 507 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..526b46e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/pyheif-0.7.1.tar.gz
diff --git a/python-pyheif.spec b/python-pyheif.spec
new file mode 100644
index 0000000..5512cbc
--- /dev/null
+++ b/python-pyheif.spec
@@ -0,0 +1,505 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pyheif
+Version: 0.7.1
+Release: 1
+Summary: Python 3.6+ interface to libheif library
+License: Apache Software License
+URL: https://github.com/carsales/pyheif
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/f3/2f/0492ad16c6936944bf9575a789e2dd6af4a27eb2475a04fb02cf84b2a5db/pyheif-0.7.1.tar.gz
+BuildArch: noarch
+
+Requires: python3-cffi
+
+%description
+# pyheif
+Python 3.6+ interface to [libheif](https://github.com/strukturag/libheif) library using CFFI
+
+*Note*: currently only reading is supported.
+
+## Installation
+
+### Simple installation - Linux (installs manylinux2014 wheel, doesn't work with Alpine)
+```
+pip install --upgrade pip
+pip install pyheif
+```
+
+### Installing from source - MacOS
+```
+brew install libffi libheif
+pip install git+https://github.com/carsales/pyheif.git
+```
+
+### Installing from source - Linux
+```
+apt install libffi libheif-dev libde265-dev
+```
+or
+```
+yum install libffi libheif-devel libde265-devel
+```
+then
+```
+pip install git+https://github.com/carsales/pyheif.git
+```
+
+### Installing from source - Windows
+```
+Sorry, not going to happen!
+```
+
+## Usage
+
+### Read the primary image of a HEIF encoded file
+
+The `pyheif.read(path_or_bytes)` function can be used to read the primary image of a HEIF encoded file. It can be passed any of the following:
+
+* A string path to a file on disk
+* A `pathlib.Path` path object
+* A Python `bytes` or `bytearray` object containing HEIF content
+* A file-like object with a `.read()` method that returns bytes
+
+It returns a `HeifFile` object.
+
+```python
+import pyheif
+
+# Using a file path:
+heif_file = pyheif.read("IMG_7424.HEIC")
+# Or using bytes directly:
+heif_file = pyheif.read(open("IMG_7424.HEIC", "rb").read())
+```
+
+### Converting to a Pillow Image object
+
+If your HEIF file contains an image that you would like to manipulate, you can do so using the [Pillow](https://pillow.readthedocs.io/) Python library. You can convert a `HeifFile` to a Pillow image like so:
+
+```python
+from PIL import Image
+import pyheif
+
+heif_file = pyheif.read("IMG_7424.HEIC")
+image = Image.frombytes(
+ heif_file.mode,
+ heif_file.size,
+ heif_file.data,
+ "raw",
+ heif_file.mode,
+ heif_file.stride,
+ )
+```
+
+*Note*: the `mode` property is passed twice - once to the `mode` argument of the `frombytes` method, and again to the `mode` argument of the `raw` decoder.
+
+You can now use any Pillow method to manipulate the file. Here's how to convert it to JPEG:
+
+```python
+image.save("IMG_7424.jpg", "JPEG")
+```
+
+### Read the entire container within the HEIF file
+
+The `pyheif.open_container(path_or_bytes)` function can be used to read the HEIF container from a HEIF encoded file. It takes the same parameter as `pyheif.read()`
+
+It returns a `HeifContainer` object.
+
+## Objects
+
+### The HeifFile object
+
+The `HeifFile` has the following properties:
+
+* `mode` - the image mode, e.g. "RGB" or "RGBA"
+* `size` - the size of the image as a `(width, height)` tuple of integers
+* `data` - the raw decoded file data, as bytes
+* `metadata` - a list of metadata dictionaries
+* `color_profile` - a color profile dictionary
+* `stride` - the number of bytes in a row of decoded file data
+* `bit_depth` - the number of bits in each component of a pixel
+
+### The UndecodedHeifFile object
+
+This is a HEIF image that has not been decoded. Calling the `UndecodedHeifFile.load()` method will load the data and the object will become a `HeifFile`
+
+### The HeifContainer object
+
+The `HeifContainer` has the following properties:
+
+* `primary_image` - the `HeifTopLevelImage` object of the primary image in the file.
+* `top_level_images` - a list of all `HeifTopLevelImage` objects in the file.
+
+### The HeifTopLevelImage object
+
+The `HeifTopLevelImage` has the following properties:
+
+* `id` - the id of the image
+* `image` - the `UndecodedHeifFile` or `HeifFile` object of the image
+* `is_primary` - is this the primary image in the container
+* `depth_image` - the `HeifDepthImage` if there is one
+* `auxiliary_images` - a list of `HeifAuxiliaryImage` objects
+
+### The HeifDepthImage object
+
+The `HeifDepthImage` has the following properties:
+
+* `id` - the id of the image
+* `image` - the `UndecodedHeifFile` or `HeifFile` object of the image
+
+### The HeifAuxiliaryImage object
+
+The `HeifAuxiliaryImage` has the following properties:
+
+* `id` - the id of the image
+* `image` - the `UndecodedHeifFile` or `HeifFile` object of the image
+* `type` - a string indicating the type of auxiliary image
+
+
+
+
+
+%package -n python3-pyheif
+Summary: Python 3.6+ interface to libheif library
+Provides: python-pyheif
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pyheif
+# pyheif
+Python 3.6+ interface to [libheif](https://github.com/strukturag/libheif) library using CFFI
+
+*Note*: currently only reading is supported.
+
+## Installation
+
+### Simple installation - Linux (installs manylinux2014 wheel, doesn't work with Alpine)
+```
+pip install --upgrade pip
+pip install pyheif
+```
+
+### Installing from source - MacOS
+```
+brew install libffi libheif
+pip install git+https://github.com/carsales/pyheif.git
+```
+
+### Installing from source - Linux
+```
+apt install libffi libheif-dev libde265-dev
+```
+or
+```
+yum install libffi libheif-devel libde265-devel
+```
+then
+```
+pip install git+https://github.com/carsales/pyheif.git
+```
+
+### Installing from source - Windows
+```
+Sorry, not going to happen!
+```
+
+## Usage
+
+### Read the primary image of a HEIF encoded file
+
+The `pyheif.read(path_or_bytes)` function can be used to read the primary image of a HEIF encoded file. It can be passed any of the following:
+
+* A string path to a file on disk
+* A `pathlib.Path` path object
+* A Python `bytes` or `bytearray` object containing HEIF content
+* A file-like object with a `.read()` method that returns bytes
+
+It returns a `HeifFile` object.
+
+```python
+import pyheif
+
+# Using a file path:
+heif_file = pyheif.read("IMG_7424.HEIC")
+# Or using bytes directly:
+heif_file = pyheif.read(open("IMG_7424.HEIC", "rb").read())
+```
+
+### Converting to a Pillow Image object
+
+If your HEIF file contains an image that you would like to manipulate, you can do so using the [Pillow](https://pillow.readthedocs.io/) Python library. You can convert a `HeifFile` to a Pillow image like so:
+
+```python
+from PIL import Image
+import pyheif
+
+heif_file = pyheif.read("IMG_7424.HEIC")
+image = Image.frombytes(
+ heif_file.mode,
+ heif_file.size,
+ heif_file.data,
+ "raw",
+ heif_file.mode,
+ heif_file.stride,
+ )
+```
+
+*Note*: the `mode` property is passed twice - once to the `mode` argument of the `frombytes` method, and again to the `mode` argument of the `raw` decoder.
+
+You can now use any Pillow method to manipulate the file. Here's how to convert it to JPEG:
+
+```python
+image.save("IMG_7424.jpg", "JPEG")
+```
+
+### Read the entire container within the HEIF file
+
+The `pyheif.open_container(path_or_bytes)` function can be used to read the HEIF container from a HEIF encoded file. It takes the same parameter as `pyheif.read()`
+
+It returns a `HeifContainer` object.
+
+## Objects
+
+### The HeifFile object
+
+The `HeifFile` has the following properties:
+
+* `mode` - the image mode, e.g. "RGB" or "RGBA"
+* `size` - the size of the image as a `(width, height)` tuple of integers
+* `data` - the raw decoded file data, as bytes
+* `metadata` - a list of metadata dictionaries
+* `color_profile` - a color profile dictionary
+* `stride` - the number of bytes in a row of decoded file data
+* `bit_depth` - the number of bits in each component of a pixel
+
+### The UndecodedHeifFile object
+
+This is a HEIF image that has not been decoded. Calling the `UndecodedHeifFile.load()` method will load the data and the object will become a `HeifFile`
+
+### The HeifContainer object
+
+The `HeifContainer` has the following properties:
+
+* `primary_image` - the `HeifTopLevelImage` object of the primary image in the file.
+* `top_level_images` - a list of all `HeifTopLevelImage` objects in the file.
+
+### The HeifTopLevelImage object
+
+The `HeifTopLevelImage` has the following properties:
+
+* `id` - the id of the image
+* `image` - the `UndecodedHeifFile` or `HeifFile` object of the image
+* `is_primary` - is this the primary image in the container
+* `depth_image` - the `HeifDepthImage` if there is one
+* `auxiliary_images` - a list of `HeifAuxiliaryImage` objects
+
+### The HeifDepthImage object
+
+The `HeifDepthImage` has the following properties:
+
+* `id` - the id of the image
+* `image` - the `UndecodedHeifFile` or `HeifFile` object of the image
+
+### The HeifAuxiliaryImage object
+
+The `HeifAuxiliaryImage` has the following properties:
+
+* `id` - the id of the image
+* `image` - the `UndecodedHeifFile` or `HeifFile` object of the image
+* `type` - a string indicating the type of auxiliary image
+
+
+
+
+
+%package help
+Summary: Development documents and examples for pyheif
+Provides: python3-pyheif-doc
+%description help
+# pyheif
+Python 3.6+ interface to [libheif](https://github.com/strukturag/libheif) library using CFFI
+
+*Note*: currently only reading is supported.
+
+## Installation
+
+### Simple installation - Linux (installs manylinux2014 wheel, doesn't work with Alpine)
+```
+pip install --upgrade pip
+pip install pyheif
+```
+
+### Installing from source - MacOS
+```
+brew install libffi libheif
+pip install git+https://github.com/carsales/pyheif.git
+```
+
+### Installing from source - Linux
+```
+apt install libffi libheif-dev libde265-dev
+```
+or
+```
+yum install libffi libheif-devel libde265-devel
+```
+then
+```
+pip install git+https://github.com/carsales/pyheif.git
+```
+
+### Installing from source - Windows
+```
+Sorry, not going to happen!
+```
+
+## Usage
+
+### Read the primary image of a HEIF encoded file
+
+The `pyheif.read(path_or_bytes)` function can be used to read the primary image of a HEIF encoded file. It can be passed any of the following:
+
+* A string path to a file on disk
+* A `pathlib.Path` path object
+* A Python `bytes` or `bytearray` object containing HEIF content
+* A file-like object with a `.read()` method that returns bytes
+
+It returns a `HeifFile` object.
+
+```python
+import pyheif
+
+# Using a file path:
+heif_file = pyheif.read("IMG_7424.HEIC")
+# Or using bytes directly:
+heif_file = pyheif.read(open("IMG_7424.HEIC", "rb").read())
+```
+
+### Converting to a Pillow Image object
+
+If your HEIF file contains an image that you would like to manipulate, you can do so using the [Pillow](https://pillow.readthedocs.io/) Python library. You can convert a `HeifFile` to a Pillow image like so:
+
+```python
+from PIL import Image
+import pyheif
+
+heif_file = pyheif.read("IMG_7424.HEIC")
+image = Image.frombytes(
+ heif_file.mode,
+ heif_file.size,
+ heif_file.data,
+ "raw",
+ heif_file.mode,
+ heif_file.stride,
+ )
+```
+
+*Note*: the `mode` property is passed twice - once to the `mode` argument of the `frombytes` method, and again to the `mode` argument of the `raw` decoder.
+
+You can now use any Pillow method to manipulate the file. Here's how to convert it to JPEG:
+
+```python
+image.save("IMG_7424.jpg", "JPEG")
+```
+
+### Read the entire container within the HEIF file
+
+The `pyheif.open_container(path_or_bytes)` function can be used to read the HEIF container from a HEIF encoded file. It takes the same parameter as `pyheif.read()`
+
+It returns a `HeifContainer` object.
+
+## Objects
+
+### The HeifFile object
+
+The `HeifFile` has the following properties:
+
+* `mode` - the image mode, e.g. "RGB" or "RGBA"
+* `size` - the size of the image as a `(width, height)` tuple of integers
+* `data` - the raw decoded file data, as bytes
+* `metadata` - a list of metadata dictionaries
+* `color_profile` - a color profile dictionary
+* `stride` - the number of bytes in a row of decoded file data
+* `bit_depth` - the number of bits in each component of a pixel
+
+### The UndecodedHeifFile object
+
+This is a HEIF image that has not been decoded. Calling the `UndecodedHeifFile.load()` method will load the data and the object will become a `HeifFile`
+
+### The HeifContainer object
+
+The `HeifContainer` has the following properties:
+
+* `primary_image` - the `HeifTopLevelImage` object of the primary image in the file.
+* `top_level_images` - a list of all `HeifTopLevelImage` objects in the file.
+
+### The HeifTopLevelImage object
+
+The `HeifTopLevelImage` has the following properties:
+
+* `id` - the id of the image
+* `image` - the `UndecodedHeifFile` or `HeifFile` object of the image
+* `is_primary` - is this the primary image in the container
+* `depth_image` - the `HeifDepthImage` if there is one
+* `auxiliary_images` - a list of `HeifAuxiliaryImage` objects
+
+### The HeifDepthImage object
+
+The `HeifDepthImage` has the following properties:
+
+* `id` - the id of the image
+* `image` - the `UndecodedHeifFile` or `HeifFile` object of the image
+
+### The HeifAuxiliaryImage object
+
+The `HeifAuxiliaryImage` has the following properties:
+
+* `id` - the id of the image
+* `image` - the `UndecodedHeifFile` or `HeifFile` object of the image
+* `type` - a string indicating the type of auxiliary image
+
+
+
+
+
+%prep
+%autosetup -n pyheif-0.7.1
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-pyheif -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.7.1-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..53fd25d
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+9162c75e756b2f0a2e879f0b0b070c0d pyheif-0.7.1.tar.gz