Python 3.6+ 接口到 libheif 库
项目描述
pyheif
使用CFFI将Python 3.6+接口到libheif库
注意:目前仅支持读取。
安装
简单安装 - Linux(安装manylinux2014 wheel,不适用于Alpine)
pip install --upgrade pip
pip install pyheif
从源代码安装 - MacOS
brew install libffi libheif
pip install git+https://github.com/carsales/pyheif.git
从源代码安装 - Linux
apt install libffi libheif-dev libde265-dev
或
yum install libffi libheif-devel libde265-devel
然后
pip install git+https://github.com/carsales/pyheif.git
从源代码安装 - Windows
Sorry, not going to happen!
用法
读取HEIF编码文件的原始图像
可以使用pyheif.read(path_or_bytes)
函数读取HEIF编码文件的原始图像。它可以传递以下任何一种
- 磁盘上文件的字符串路径
pathlib.Path
路径对象- 包含HEIF内容的Python
bytes
或bytearray
对象 - 具有
.read()
方法返回字节的文件对象
它返回一个HeifImage
对象。
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())
转换为Pillow图像对象
如果您的HEIF文件中包含您想要操作的图像,您可以使用Pillow Python库来操作。您可以将HeifImage
转换为Pillow图像,如下所示
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,
)
注意:mode
属性被传递了两次 - 一次传递给frombytes
方法的mode
参数,再次传递给raw
解码器的mode
参数。
现在您可以使用任何Pillow方法来操作文件。以下是将它转换为JPEG的方法
image.save("IMG_7424.jpg", "JPEG")
读取HEIF文件内的整个容器
pyheif.open_container(path_or_bytes)
函数可用于从HEIF编码文件中读取HEIF容器。它接受与pyheif.read()
相同的参数
它返回一个HeifContainer
对象。
对象
HeifImage对象
HeifImage
具有以下属性
mode
- 图像模式,例如“RGB”或“RGBA”size
- 图像的大小,作为整数元组(width, height)
data
- 原始解码的文件数据,作为字节metadata
- 元数据字典列表color_profile
- 颜色配置文件字典stride
- 解码文件数据中的一行中的字节数bit_depth
- 像素中每个分量的位数
UndecodedHeifImage对象
这是一个尚未解码的HEIF图像。调用UndecodedHeifImage.load()
方法将加载数据,对象将变为HeifImage
HeifContainer对象
HeifContainer
具有以下属性
primary_image
- 文件中主图像的HeifTopLevelImage
对象。top_level_images
- 文件中所有HeifTopLevelImage
对象的列表。
HeifTopLevelImage对象
HeifTopLevelImage
具有以下属性
id
- 图像的idimage
- 图像的UndecodedHeifImage
或HeifImage
对象is_primary
- 这是容器中的主图像吗depth_image
- 如果有,则为HeifDepthImage
auxiliary_images
-HeifAuxiliaryImage
对象的列表
HeifDepthImage对象
HeifDepthImage
具有以下属性
id
- 图像的idimage
- 图像的UndecodedHeifImage
或HeifImage
对象
HeifAuxiliaryImage对象
HeifAuxiliaryImage
具有以下属性
id
- 图像的idimage
- 图像的UndecodedHeifImage
或HeifImage
对象type
- 表示辅助图像类型的字符串
项目详情
关闭
pyheif-0.8.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e9b4c11ebad482fc25a0804ce295b44b660cbf7829a228f56b071f325f9e0de4 |
|
MD5 | 5e84d911b7733d426170742b03d994c2 |
|
BLAKE2b-256 | ec11d63f215d8c9c416409e2d665bf7594a8886780629296b4f0d35857561c9b |
关闭
pyheif-0.8.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ef3255c5dd9062f38fea0f4cb41f3192616307252db448a2064f8bce31640112 |
|
MD5 | 0e20a7f4b22e6bb93580bb1d6a4f7eba |
|
BLAKE2b-256 | 15b56cbe1e0bcd0db171e57a838fbf611d937ce120b87a045b6d4a868d85f394 |
关闭
pyheif-0.8.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c9f1c8e3158b98fc82b3833e7358f6ca0ef9d50fa93d20993925917e9189bbc6 |
|
MD5 | 34e7088e2a39f13cfe98b4d8bea19f2b |
|
BLAKE2b-256 | 35175a5a70da5b6dd52937e38259e65180414e4c5625717b139a6f7aa30a79a5 |
关闭
pyheif-0.8.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b896eebf440ea826893a253c8f8a5bbd245f96a1613858d7c4ec310420ab9cec |
|
MD5 | b2c037d815b40f5a788d9ab6e741c341 |
|
BLAKE2b-256 | 4c0dcee50b45e7360226e6c66f9b65fbb3a354ab7a35dc54e335d1cae9f03dcc |
关闭
哈希值 用于 pyheif-0.8.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 39214792559eab90814f9551540156550619fc6f8f0d794091488563577da5ca |
|
MD5 | 247ed0ccba9d0e459b70cddcab41b775 |
|
BLAKE2b-256 | 8d97a180a87119f81f06d032a0530f4636e1c1e75d9589c8c6b915d80cb0743f |
关闭
哈希值 用于 pyheif-0.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f98f4b1d37705418d77ef42a8ebf95b510bb3e0a9a2d9f0824f6eeb751c9e7f6 |
|
MD5 | b77316811a749bf8eae784e76f27c94f |
|
BLAKE2b-256 | 87c41d0e82766657b3839993ffe411807a08623ff9affd7275533afea3cb377e |
关闭
哈希值 用于 pyheif-0.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ac5ec62a90c4f9f96125aaebd6ac994b95895ace4427ecf34752951e1d34be96 |
|
MD5 | 3e529a7fedda111678f5043cfe11795e |
|
BLAKE2b-256 | fc4907d1c047e52fd4de1474759e202b2fd7ac99e945db0ce149af2f85be7625 |
关闭
哈希值 用于 pyheif-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4c8723ab28ca9f42e0f25a29008673654e062edb95b26dbfa3e397e6cc3d56b8 |
|
MD5 | 7069a8146ed5b56b2a1013a561b614c4 |
|
BLAKE2b-256 | 6fa92514a4d53ed5712bdda42281d0b3b0f652ccd35ba08b66039510592cf67e |
关闭
哈希值 用于 pyheif-0.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 01c94cc524446d6e23a2726d4cec94c764b277466cbeca4d95e083390b09ad34 |
|
MD5 | 9397567376aa90ecb82a8b5a244c6218 |
|
BLAKE2b-256 | 62e752450ce4cf5e682ea8950f86725dffad461ca8b24c9215ac76d61e2d8392 |
关闭
哈希值 用于 pyheif-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e93ff599eba671718e9dcab2dcd4efdbcbdbe4bcd31bd9477026e2ffc39125b2 |
|
MD5 | 0735612d512f4fc15530e5d4a4c43b50 |
|
BLAKE2b-256 | d29aec37ceaf6b93a23c33c6080a7ac2570148d0a51fc4db733dc2ea735526de |
关闭
哈希值 用于 pyheif-0.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6a9df316c695c7a4588633486c5f93508474653488dbcb8c968dc0c611875106 |
|
MD5 | d8f1fc8d85b5f95faf27fb158b896df1 |
|
BLAKE2b-256 | 529840d97d38454f6708db7b819b8c206e206e4730183860b3a3be56fa44cdab |
关闭
哈希值 用于 pyheif-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f6e08cdd85f638e134cbd94006631d8e5263002a3f8c4f44b1f94626fb0cf4f3 |
|
MD5 | 06f47bc22bb39de04eec44029440c638 |
|
BLAKE2b-256 | 1142b0fac6f16c96e54039bc66578aa559a06d0c24c413e9f061dc2d1ac1637e |
关闭
哈希值 用于 pyheif-0.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | adba452e061b4b1edf57ad561daf69f3e67de4be42088885685ef4e6a8dd9baf |
|
MD5 | cfcc385a95654cb3833a7b84ff347ddd |
|
BLAKE2b-256 | 25ed108eabdcbd8a12ac31b4979dd9a9bfd8342590db27037ecba3ce5a773276 |
关闭
哈希值 用于 pyheif-0.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 272d08f3308dcac1ad12b100f0d433f28e4f6e2aef0c28feee1d4b2bbf7e8f81 |
|
MD5 | 7260c4dec1f0f16e11aca5f4028785c0 |
|
BLAKE2b-256 | 391b1519742ac0ac5e1c43b1444bbdae6de15054443d501eadb83e1749a03bf4 |
关闭
哈希值 用于 pyheif-0.8.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 037fcfb4facb5160c6c874824b4fe4dab7855653a3114ed08c8273209d7e5cf5 |
|
MD5 | f599bb0dfb747ebf673252ee0d29ac6e |
|
BLAKE2b-256 | 2bb4947f2bc3800fcbead2e264b9ceaa41b6bb9eb85e7458847fa9aec6877f50 |
关闭
哈希值 用于 pyheif-0.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ac63592bca147d74277664e5f46ae80fd721da1ab6650177d763201a43638f75 |
|
MD5 | 6d19986eeb62bc4cc7213cdabbfc5dce |
|
BLAKE2b-256 | 0e20d4221a5e85f9ae4913ca265d4549e43279b1bd38e2ba4c5d847898b611f4 |
关闭
哈希值 用于 pyheif-0.8.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4e4aa21e9bd92dbca7f3d281a4176611ccbcbb13990adcc74ccf4503498d2947 |
|
MD5 | ac9789678117130125ed026a84232580 |
|
BLAKE2b-256 | 68361d15e207f0f2903c86c93ac03d1c33bcc62d8e546ade3836d0704a5ca47e |