Browse Source

add options to compareImages

pull/117/head
Thomas Grainger 7 years ago
parent
commit
3ee058afb0
No known key found for this signature in database
GPG Key ID: B120038F793F513C
  1. 26
      README.md
  2. 36
      compareImages.js

26
README.md

@ -121,17 +121,35 @@ The API under Node is the same as on the browser with one addition, a promise ba
``` js
const compareImages = require('resemblejs/compareImages');
const fs = require("fs");
const fs = require("mz/fs");
async function getDiff(){
const options = {
output: {
errorColor: {
red: 255,
green: 0,
blue: 255
},
errorType: 'movement',
transparency: 0.3,
largeImageThreshold: 1200,
useCrossOrigin: false,
outputDiff: true
},
scaleToSameSize: true,
ignore: ['nothing', 'less', 'antialiasing', 'colors', 'alpha'],
};
// The parameters can be Node Buffers
// data is the same as usual with an additional getBuffer() function
const data = await compareImages(
fs.readFileSync('./demoassets/People.jpg'),
fs.readFileSync('./demoassets/People2.jpg')
await fs.readFile('./demoassets/People.jpg'),
await fs.readFile('./demoassets/People2.jpg'),
options,
);
fs.writeFileSync('./output.png', data.getBuffer());
await fs.writeFile('./output.png', data.getBuffer());
}

36
compareImages.js

@ -1,8 +1,38 @@
const resemble = require('./resemble');
var resemble = require('./resemble');
module.exports = async function(image1, image2) {
function applyIgnore(api, ignore) {
switch (ignore) {
case 'nothing': api.ignoreNothing();
case 'less': api.ignoreLess();
case 'antialiasing': api.ignoreAntialiasing();
case 'colors': api.ignoreColors();
case 'alpha': api.ignoreAlpha();
default: throw new Error('Invalid ignore: ' + ignore);
}
}
module.exports = function(image1, image2, options) {
return new Promise(function(resolve, reject) {
resemble(image1).compareTo(image2).onComplete(function(data) {
var res = resemble(image1), opt = options || {}, compare;
if (opt.output) {
res.outputSettings(opt.output);
}
compare = res.compareTo(image2);
if (opt.scaleToSameSize) {
compare.scaleToSameSize();
}
if (typeof opt.ignore === 'string') {
applyIgnore(compare, opt.ignore);
} else if (opt.ignore && opt.ignore.forEach) {
opt.ignore.forEach(function (v) {
applyIgnore(compare, v);
});
}
compare.onComplete(function(data) {
if (data.error) {
reject(data.error);
} else {

Loading…
Cancel
Save