png-diff
v0.3.3
Published
Small PNG diff utility, written in pure JS for Node.
Downloads
479
Readme
PNG Diff
Small PNG diff utility, written in pure JS for Node.
npm install png-diff
Usage
(Check out the example folder.)
Both methods take two image paths/streams/buffers as input.
var fs = require('fs');
var PNGDiff = require('png-diff');
var image2Stream = fs.createReadStream('2.png');
PNGDiff.outputDiff('1.png', image2Stream, 'diffOutput.png', function(err, diffMetric) {
if (err) throw err;
// returns 0 if every pixel's the same; return 1 otherwise. Currently, these
// are the only two possible metric values; possibility to tweak them in the
// future
console.log(diffMetric === 1 ? 'Difference detected.' : 'No difference');
// highlights the difference in red
console.log('Diff saved!');
});
var image1Buffer = fs.createReadStream('1.png');
PNGDiff.outputDiffStream(image1Buffer, '2.png', function(err, outputStream, diffMetric) {
if (err) throw err;
if (diffMetric === 0) {
console.log('No difference, no need to output diff result.');
return;
}
outputStream.pipe(fs.createWriteStream('diffOutput2.png'));
});
Second format:
var image2Stream = fs.createReadStream('2.png');
// output identical pixels as transparent instead of highlighting the diff
// (default: false)
PNGDiff.outputDiff('1.png', image2Stream, 'diffOutput.png', true , function(err, diffMetric) {
if (err) throw err;
console.log(diffMetric === 1 ? 'Difference detected.' : 'No difference');
// does not highlight the difference, but replaces common pixels with
// transparent ones
console.log('Diff saved!');
});
License
MIT.