| 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 difyPlease 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 --helpdify left.jpg right.jpgCheckout 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.jpgTest 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



