10个版本 (破坏性更新)
0.8.1 | 2024年5月29日 |
---|---|
0.7.0 | 2023年12月16日 |
0.6.1 | 2023年7月28日 |
#95 在 图像 中
每月4,602次下载
在 2 crate 中使用
210KB
173 行
twenty-twenty
twenty-twenty
库允许对H.264帧和图像进行视觉回归测试。当内容需要更新以匹配新结果时,它使更新内容变得容易。
每个函数都接受一个分数阈值,这是您愿意为图像比较返回的最低可能的“分数”。如果结果分数低于阈值,则测试将失败。分数必须是0到1之间的数字。如果图像完全相同,则分数将为1。
底层算法是SSIM,它是一种感知度量,用于量化由数据处理(如数据压缩)或数据传输中的损失引起的图像质量退化。更多信息可以在这里找到。
要使用此库,您的系统上需要安装ffmpeg
。此库使用rust中的ffmpeg绑定将H.264帧转换为图像。
如下所示用于H.264帧
let actual = get_h264_frame();
twenty_twenty::assert_h264_frame("tests/initial-grid.png", &actual, 0.9);
如下所示用于图像
let actual = get_image();
twenty_twenty::assert_image("tests/dog1.png", &actual, 0.9);
如果输出不匹配,程序将panic!
并发出分数的差异。
要接受来自get_h264_frame()
或get_image()
的更改,请使用TWENTY_TWENTY=overwrite
运行。
发布新版本
我们有一个GitHub操作,将我们的发布版本推送到这里。它通过推送新标签触发。因此,请执行以下操作
- 在
Cargo.toml
中增加版本号。提交并推送到仓库。 - 使用新版本创建标签:
git tag -sa v$(VERSION) -m "v$(VERSION)"
- 将标签推送到仓库:
git push origin v$(VERSION)
依赖项
~6.5–9.5MB
~178K SLoC