Feature | |
---|---|
.png , .jpg , .jpeg , or .bmp format supported |
✅ |
Compares different format (.png vs .jpg for example) |
✅ |
Compares different dimensions | ✅ |
Anti-aliasing support | ✅ |
Blockout areas support | ✅ |
Supports macOS, Linux and Windows | ✅ |
expected1 | actual1 | diff |
---|---|---|
Download the binaries for your platform from release page.
via cargo
cargo install dify
Please refer to dify-bin
npm package, it is a node.js wrapper for dify executable file:
npm install -g dify-bin # or `yarn global add dify-bin`
dify --help
dify left.jpg right.jpg
Checkout diff.png
if a.jpg
and b.jpg
are different.
For more details, see dify --help
.
docker run -v $(pwd):/mnt/dify ghcr.io/jihchi/dify left.jpg right.jpg
Test data comes from mtrKovalenko/odiff.
hyperfine \
--warmup 1 \
--ignore-failure \
--export-markdown bench-dify.md \
'dify tiger.jpg tiger-2.jpg -o tiger-diff.png' \
'dify water-4k.png water-4k-2.png -o water-diff.png' \
'dify www.cypress.io.png www.cypress.io-2.png -o www.cypress.io-diff.png'
Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
---|---|---|---|---|
dify tiger.jpg tiger-2.jpg -o tiger-diff.png |
40.2 ± 0.4 | 39.6 | 42.3 | 1.00 |
dify water-4k.png water-4k-2.png -o water-diff.png |
1754.9 ± 23.3 | 1716.2 | 1799.6 | 43.68 ± 0.74 |
dify www.cypress.io.png www.cypress.io-2.png -o www.cypress.io-diff.png |
1228.0 ± 17.6 | 1203.6 | 1251.7 | 30.56 ± 0.54 |
Ran on MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports), macOS Catalina 10.15.7.
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
- This project is inspired by dmtrKovalenko/odiff and mapbox/pixelmatch.
- This project implements ideas from the following papers:
- Measuring perceived color difference using YIQ NTSC transmission color space in mobile applications (2010, Yuriy Kotsarenko, Fernando Ramos)
- Anti-aliased pixel and intensity slope detector (2009, Vytautas Vyšniauskas)
Many thanks for your help!
The image of contributors is made with contrib.rocks.
Footnotes
-
Images comes from mapbox/pixelmatch ↩ ↩2