#avif #image-encoding #convert #av1 #encoding #jpeg2avif #png2avif

应用 cavif

使用纯Rust编码器将图像编码为AVIF格式(image2avif转换器)

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 2020年9月14日

#28 in 图像

Download history 41/week @ 2024-05-02 28/week @ 2024-05-09 17/week @ 2024-05-16 19/week @ 2024-05-23 30/week @ 2024-05-30 39/week @ 2024-06-06 42/week @ 2024-06-13 46/week @ 2024-06-20 58/week @ 2024-06-27 28/week @ 2024-07-04 94/week @ 2024-07-11 43/week @ 2024-07-18 42/week @ 2024-07-25 49/week @ 2024-08-01 48/week @ 2024-08-08 16/week @ 2024-08-15

每月下载 165次

BSD-3-ClauseGPL-3.0+

56KB
945

cavif — PNG/JPEG到AVIF转换器

AVIF图像的编码器/转换器。基于rav1eavif-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