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
)来完成格式的转换。