9个稳定版本 (4个主要版本)
5.0.0 | 2019年12月27日 |
---|---|
4.0.0 | 2019年7月12日 |
3.0.2 | 2018年12月17日 |
2.0.0 | 2018年1月22日 |
1.1.0 | 2018年1月16日 |
#384 in 图像
每月21次下载
31KB
649 行
img_diff
Rust编写的命令行工具,用于比较两个结构相似的文件夹中的图像并输出差异图像。
输出的值表示像素数据与给定图像中每个像素最高可能值的差异百分比。
未来功能
- 支持多种图像格式(JPEG)。
- 允许输出阈值以输出差异文件。
来自CLI WG
- 改进stdout和stderr效率(使用流避免刷新)。
- 添加日志(log crate)
- 添加进度条(indicatif crate)
- 添加输出类型(convey crate)
- 生成man页面(clap crate)
用法
img_diff -s path\to\images -d path\to\images\to\compare -f path\to\output\diff\images
将遍历-s目录及其子目录中的所有文件,并将它们与-f目录中的文件进行比较,如果发现差异,则输出到-f目录。
-v
启用详细模式,并在发现差异时输出到stderr。
在CI中的用法
img_diff -s path\to\images -d path\to\images\to\compare -f path\to\output\diff\images -v 2> results/output.txt
这将启用详细输出,并将失败的比较结果放入output.txt中。我们可以使用此功能启用CI,例如:if [[ -s results/output.txt ]]; then exit 1; else exit 0; fi
从源码编译
git clone https://github.com/Mike-Neto/img_diff.git
cd img_diff
cargo build --release
构建所有文件
cargo build && cargo test && cargo test --benches
cargo +beta build && cargo +beta test && cargo +beta test --benches
cargo +nightly build && cargo +nightly test && cargo +nightly test --benches
测试
cargo test
文档
cargo doc --open
crate
下载
您需要 Rust
cargo install img_diff
您还可以在github releases上下载您平台上的二进制发布版
发布过程
cargo bump (major|minor|patch)
git commit -m "v4.0.0"
git tag -a v4.0.0 -m "v4.0.0"
git push --tags
cargo publish
基准测试和性能分析
依赖项
sudo apt install valgrind kcachegrind
本地基准测试
将运行所有基准测试针对本地数据。
cargo clean
git checkout master
cargo bench
git checkout $CURRENT_WORKING_BRANCH
cargo bench
性能分析更改
cargo bench img_diff/subtract
# Check for the binary name which will then be used as input bellow
valgrind --tool=callgrind --dump-instr=yes --collect-jumps=yes --simulate-cache=yes target/release/deps/bench-f72b65412859cf2f --bench img_diff/subtract
# Check for the above output file name
kcachegrind callgrind.out.20282
许可证
版权所有 2018 Miguel Mendes
在此条件下,任何人获得此软件及其相关文档的副本(“软件”),均可不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许向提供软件的人员授予此类权限,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
软件按“现状”提供,不提供任何形式的保证,无论是明示的、暗示的,包括但不限于适销性、特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任源于合同、侵权或其他原因,以及与软件的使用或其他方式有关。
依赖项
~9–18MB
~237K SLoC