Avifenc 是什么
avifenc
是一个用于将图片编码为 AVIF(AV1 Image File Format)格式的命令行工具,属于 libavif
库的一部分。AVIF 是一种现代图像格式,基于 AV1 视频编解码技术,具有更高的压缩效率和良好的图像质量。以下是 avifenc
的一些主要特点和用法介绍:
主要功能
- 高压缩率和图像质量:相比 JPEG 和 PNG,AVIF 文件通常在保持图像质量的情况下具有更小的文件大小,非常适合需要高效压缩的场景。
- 支持有损和无损压缩:可以选择有损或无损压缩,适应不同的需求。
- 支持多种颜色空间:包括 8 位、10 位、12 位颜色深度,HDR 等,用于呈现更丰富的颜色信息。
- 透明度支持:AVIF 支持 alpha 通道,因此可以用于存储带有透明度的图片。
- 快速处理:支持单线程和多线程处理,可根据需求调整速度和质量。
基本语法
avifenc [options] input_image output_image.avif
常用选项
-
压缩质量控制:
--min <quality>
:设置最低压缩质量,范围 0 到 63,值越高质量越好。--max <quality>
:设置最高压缩质量,范围 0 到 63。--cq-level <quality>
:设置恒定质量模式下的质量,通常在 0 到 63 之间,推荐值在 20 到 40 之间。
-
无损压缩:
--lossless
:启用无损压缩模式,适合对图像质量要求非常高的场景。
-
多线程处理:
--jobs <number>
:设置多线程处理的线程数,加速转换。
-
颜色深度:
--depth <bit_depth>
:设置输出图像的颜色深度(8、10、12),通常 8 位用于一般需求,10 或 12 位用于更高质量的需求。
-
速度和质量平衡:
--speed <number>
:指定编码速度,范围从 0 到 10,数字越高,速度越快但质量略低,默认值一般是 6。
-
图像尺寸调整:
--resize <width> <height>
:将图片调整为指定宽度和高度。
示例用法
-
有损压缩,默认设置:
avifenc input.png output.avif
-
指定质量范围的有损压缩:
avifenc --min 30 --max 50 input.jpg output.avif
-
无损压缩:
avifenc --lossless input.png output.avif
-
指定多线程和较高速度编码:
avifenc --jobs 4 --speed 8 input.png output.avif
性能和适用场景
avifenc
非常适合需要高质量和高压缩率的场景,例如网站优化、图像传输、图像存储等。尽管 AVIF 编码会比 JPEG 或 PNG 稍慢,但它能显著减少文件大小,从而加快网页加载速度和减轻存储压力。
总的来说,avifenc
是一个强大的工具,适合有图像压缩需求的开发者和设计师。