Git Product home page Git Product logo

node-resemble.js's Introduction

node-resemble.js

Analyse and compare images with Javascript. This project does not need canvas or any other binary denpendencies. It is a modification of Resemble.js

Get it

npm install node-resemble-js

Example

Retrieve basic analysis on image.

var api = resemble(fileData).onComplete(function(data){
	console.log(data);
	/*
	{
	  red: 255,
	  green: 255,
	  blue: 255,
	  brightness: 255
	}
	*/
});

Use resemble to compare two images.

var diff = resemble(file).compareTo(file2).ignoreColors().onComplete(function(data){
	console.log(data);
	/*
	{
	  misMatchPercentage : 100, // %
	  isSameDimensions: true, // or false
	  dimensionDifference: { width: 0, height: -1 }, // defined if dimensions are not the same
	  getImageDataUrl: function(){}
	}
	*/
});

You can also change the comparison method after the first analysis.

// diff.ignoreNothing();
// diff.ignoreColors();
diff.ignoreAntialiasing();

And change the output display style.

resemble.outputSettings({
  errorColor: {
    red: 255,
    green: 0,
    blue: 255
  },
  errorType: 'movement',
  transparency: 0.3
});
// resembleControl.repaint();

Example usuage (in cucumber step definition)

 this.Then(/^Screenshot should match image "(.*)"$/, function (image, callback) {
    browser.takeScreenshot().then(function(pngString) {
      var screenshot = new Buffer(pngString, 'base64');
 
      resemble(image)
        .compareTo(screenshot)
        .onComplete(function(data){
 
          if (Number(data.misMatchPercentage) <= 0.01) {
            callback();
          } else {
            data.getDiffImage().pack().pipe(fs.createWriteStream(image + 'diff.png'));
            callback.fail(new Error("Screenshot '" + image+  "' differ " + data.misMatchPercentage + "%"));
          }
        });
    });
  })

Credits:

node-resemble.js's People

Contributors

lksv avatar drkibitz avatar kumilingus avatar bobylito avatar jbalsas avatar joseeight avatar lukeapage avatar richardowen avatar

Watchers

alejandro avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.