如何使用Python将JPG图像转换为AVIF



Python的Pillow似乎还不支持AVIF文件,而其他包(如pyheif)只支持读取。是否有任何Python工具可以将jpg图像转换为新的avif格式?

你可以使用pillow和pillow-avif-plugin:

from PIL import Image
import pillow_avif
JPGimg = Image.open(<filename> + 'jpg')
JPGimg.save(<filename> + '.AVIF','AVIF')

你需要安装枕头AVIF来做到这一点。

pip install pillow-avif-plugin

到目前为止,我能找到的最好的方法是安装libavif:

brew install libavif

和编码jpg文件直接通过执行avif编码器:

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支持。例如,这个API运行良好。可能会出现安全问题。这个网站不好看,但是功能很好。

我检查了一下API源代码,我发现你可以在不需要这个API的情况下进行这种转换。API使用magick命令进行此转换。我不知道如何使用这个命令,但我认为如果你稍微搜索一下,或者检查一下源代码,你就能弄清楚。

最新更新