【发布时间】:2021-10-14 06:33:57
【问题描述】:
Python's Pillow doesn't seems to support AVIF files yet,和pyheif等其他包,只支持阅读。是否有任何 Python 工具可以将 jpg 图像转换为新的avif 格式?
【问题讨论】:
标签: python python-3.x python-imaging-library avif
Python's Pillow doesn't seems to support AVIF files yet,和pyheif等其他包,只支持阅读。是否有任何 Python 工具可以将 jpg 图像转换为新的avif 格式?
【问题讨论】:
标签: python python-3.x python-imaging-library avif
你可以用枕头和pillow-avif-plugin来做到这一点:
from PIL import Image
import pillow_avif
JPGimg = Image.open(<filename> + 'jpg')
JPGimg.save(<filename> + '.AVIF','AVIF')
您需要安装枕头 AVIF 才能做到这一点。
【讨论】:
import pillow_avif这行吗?好像没用过。
到目前为止我能想到的最好的就是installing libavif:
brew install libavif
并通过执行avif编码器直接对jpg文件进行编码:
import subprocess
input_file = '/some-path/file1.jpg'
output_file = '/some-path/file1.avif'
subprocess.run(f"avifenc --min 0 --max 63 -a end-usage=q -a cq-level=18 -a tune=ssim {input_file} {output_file}", shell=True)
--min 0 --max 63 -a end-usage=q -a cq-level=18 -a tune=ssim 选项是 AVIF 图像的一些推荐设置。
【讨论】:
据我所知,目前不支持“avif”。但是有 API 支持。例如,this API 表现良好。也许可能会出现安全问题。该网站看起来不太好,但功能上做得很好。
我检查了 API source code 一点,我发现你可以在不需要这个 API 的情况下进行这种转换。 API 是 using magick 命令来进行这种转换。这个命令我不知道怎么用,但是我想你稍微搜索一下就知道了,或者查看源代码。
【讨论】: