15个稳定版本
1.5.4 | 2023年9月21日 |
---|---|
1.5.3 | 2023年5月9日 |
1.5.0 | 2022年12月11日 |
1.4.0 | 2022年11月3日 |
0.6.2 |
|
#28 in 图像
每月下载 165次
56KB
945 行
cavif
— PNG/JPEG到AVIF转换器
AVIF图像的编码器/转换器。基于rav1e和avif-serialize,使其几乎成为纯Rust工具(它使用C LCMS2进行颜色配置文件)。
安装
➡️ 下载最新版本 ⬅️
预构建的zip文件包含一个无需依赖项即可在任何Linux发行版上运行的便携式静态可执行文件。它还包括适用于macOS和Windows的可执行文件。
用法
在终端中运行(提示:无需输入路径,终端接受文件拖放)
cavif image.png
它创建image.avif
。您可以调整质量(它在1-100的比例上)
cavif --quality 60 image.png
高级用法
您还可以指定多个图像。编码是多线程的,所以越多越好!
cavif [OPTIONS] IMAGES...
--quality=n
— 质量从1(最差)到100(最佳),默认值为80。这些数字只是JPEG质量尺度的粗略估计。 比较编解码器时要小心。不支持无损压缩,100将产生不合理膨胀的文件。--speed=n
— 编码速度在1(最佳,但最慢)和10(最快,但模糊一片)之间,默认值为4。速度1和2慢得令人难以置信,但可以使文件缩小约3-5%。7以上的速度会显著降低压缩效果,不推荐使用。--overwrite
— 如果存在.avif
,则替换文件。默认情况下,现有文件保持不变。-o path
— 将图像写入此路径(而不是same-name.avif
)。如果指定了多个输入文件,则将其解释为目录。--quiet
— 转换期间不打印任何内容。
还有其他选项可以调整AVIF颜色空间。在cavif
中选择的默认值是为了最佳效果,因此仅在必要时使用这些选项
--dirty-alpha
— 保留完全透明像素的RGB值(不推荐)。默认情况下,清除透明像素的无关颜色以避免浪费空间。--color=rgb
— 使用RGB颜色空间而不是YCbCr进行编码。使颜色更接近无损,但会使文件更大。仅在需要避免最小的颜色偏移时使用。--depth=8
— 使用8位颜色深度而不是10位进行编码。这会导致略微较差的质量/压缩比,但兼容性更好。
兼容性
图像在所有现代浏览器中工作。
- Chrome 85+桌面版,
- Android 12上的Chrome,
- Firefox 91,
- Safari iOS 16/macOS Ventura。
已知的不兼容性
- 据报道,Windows的预览和一些非常旧的Android版本在右边缘显示粉红色线条。这可能是他们使用的旧AVIF解码器中的错误。
- Windows的预览似乎不支持10位深度的图像。如果这是一个问题,请在编码时使用
--depth=8
。
构建
要从源代码构建它,您需要Rust 1.67或更高版本,最好通过rustup。
然后在终端中运行
rustup update
cargo install cavif
依赖关系
~18–28MB
~518K SLoC