All Projects → jihchi → dify

jihchi / dify

Licence: MIT license
A fast pixel-by-pixel image comparison tool in Rust

Programming Languages

rust
11053 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to dify

Odiff
The fastest pixel-by-pixel image visual difference tool in the world.
Stars: ✭ 1,173 (+2760.98%)
Mutual labels:  diff, visual, snapshot
Sirix
SirixDB is a temporal, evolutionary database system, which uses an accumulate only approach. It keeps the full history of each resource. Every commit stores a space-efficient snapshot through structural sharing. It is log-structured and never overwrites data. SirixDB uses a novel page-level versioning approach called sliding snapshot.
Stars: ✭ 638 (+1456.1%)
Mutual labels:  diff, snapshot
reducer-tester
Utilities for testing redux reducers
Stars: ✭ 19 (-53.66%)
Mutual labels:  diff, snapshot
Pixelmatch
The smallest, simplest and fastest JavaScript pixel-level image comparison library
Stars: ✭ 4,447 (+10746.34%)
Mutual labels:  diff, image-comparison
Winmerge
WinMerge is an Open Source differencing and merging tool for Windows. WinMerge can compare both folders and files, presenting differences in a visual text format that is easy to understand and handle.
Stars: ✭ 2,358 (+5651.22%)
Mutual labels:  diff, image-comparison
diffy
Tools for finding and manipulating differences between files
Stars: ✭ 47 (+14.63%)
Mutual labels:  diff
go-delta
go-delta - A Go package and utility to generate and apply binary delta updates.
Stars: ✭ 25 (-39.02%)
Mutual labels:  diff
graphql-schema-diff
📄🔄📄 Returns the diff of two GraphQL schemas. Detects dangerous and breaking changes.
Stars: ✭ 54 (+31.71%)
Mutual labels:  diff
ttdo
Extend tinytest with diffobj
Stars: ✭ 21 (-48.78%)
Mutual labels:  diff
lostX
(RSS 2018) LoST - Visual Place Recognition using Visual Semantics for Opposite Viewpoints across Day and Night
Stars: ✭ 60 (+46.34%)
Mutual labels:  visual
Log
Daily logging tool and data visualizer.
Stars: ✭ 30 (-26.83%)
Mutual labels:  visual
nano-staged
Tiny tool to run commands for modified, staged, and committed files in a GIT repository.
Stars: ✭ 347 (+746.34%)
Mutual labels:  diff
ExtDiff
Compare documents using MS Word from the command line.
Stars: ✭ 100 (+143.9%)
Mutual labels:  diff
GuneyOzsanOutThereMusicVideo
Procedurally generated, real-time, demoscene style, open source music video made with Unity 3D for Out There by Guney Ozsan.
Stars: ✭ 26 (-36.59%)
Mutual labels:  visual
virt-backup
Fully backup your KVM Virtual Machines
Stars: ✭ 27 (-34.15%)
Mutual labels:  snapshot
langx-java
Java tools, helper, common utilities. A replacement of guava, apache-commons, hutool
Stars: ✭ 50 (+21.95%)
Mutual labels:  diff
vscode-diff
Compare two folders in Visual Studio Code
Stars: ✭ 66 (+60.98%)
Mutual labels:  diff
gonp
diff algorithm in Go
Stars: ✭ 42 (+2.44%)
Mutual labels:  diff
AppDynamics.DEXTER
Turn your APM data store into a Data Warehouse with advanced reporting, including entities, configuration, metrics, flowmaps, events, snapshots and call graph flame graphs
Stars: ✭ 79 (+92.68%)
Mutual labels:  snapshot
S2DHM
Sparse-to-Dense Hypercolumn Matching for Long-Term Visual Localization (3DV 2019)
Stars: ✭ 64 (+56.1%)
Mutual labels:  visual
Dify Logo

Dify

A fast pixel-by-pixel image comparison tool in Rust

Workflows - CI crates.io version crates.io license crates.io downloads docs.rs

Features

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

Demo

expected actual diff
expected actual diff

The expected and actual image are coming from mapbox/pixelmatch

Getting Started

Installation

From binaries

Download the binaries for your platform from release page.

Node.js ecosystem

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

Usage

dify left.jpg right.jpg

Checkout diff.png if a.jpg and b.jpg are different.

For more details, see dify --help.

Docker

docker run -v $(pwd):/mnt/dify ghcr.io/jihchi/dify left.jpg right.jpg

Benchmarks

Test data is coming 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.

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Acknowledgements

Contributors

Many thanks for your help!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].