AVIF是什么
AVIF 即 AV1 Image File Format 是一种开放的、无版税的图像文件格式规范,用于存储使用 AV1 压缩的图像或图像序列,并将其封装在 HEIF(High Efficiency Image File Format)容器格式中。AVIF 与 HEIC 是竞争关系,后者使用相同的基于 ISOBMFF 的容器格式,但使用 HEVC 进行压缩。
AVIF优势
AVIF 格式的主要优势在于它提供了出色的压缩效率,这意味着它能够在较小的文件大小下提供高质量的图像。这使得 AVIF 成为网络和存储高分辨率图像的理想选择,尤其是在希望减少数据使用量或提高加载速度的场景中。AVIF 还支持高动态范围(HDR)和广色域(WCG),这使得它能够存储更丰富的颜色信息和更广泛的亮度级别。
由于 AVIF 是一个相对较新的格式,它的支持正在逐步增加,但并不是所有的图像处理软件和浏览器都原生支持 AVIF。随着技术的发展和更多的支持,AVIF 有望成为一种流行的图像格式。
实操
在写博客的过程中,为了减少图片的大小,通常是需要将图片转换成 webp 格式。
python 中,通常使用 pillow 这个开源库来处理图片的转换。为了能够处理 avif 文件,还需要安装一个 pillow 的插件 pillow-avif-plugin,命令如下
pip install pillow pillow-avif-plugin -U
接着,就可以进行图片格式转换了
import sys
from pathlib import Path
from PIL import Image
import pillow_avif
def convert_to_webp(source):
destination = source.with_suffix(".webp")
image = Image.open(source)
image.save(destination, format="webp")
return destination
if __name__ == '__main__':
paths = Path(sys.argv[1]).glob("**/*.*")
for path in paths:
webp_path = convert_to_webp(path)
print(webp_path)
在使用之前,需要先导入库 import pillow_avif,然后使用 Image.open 方法就可以读取 avif 文件了,直接调用 Image.save 方法通过指定保存的格式(这里是 webp)来完成格式的转换。