node-resemble-js

0.2.0last stable release 8 years ago
Complexity Score
Low
Open Issues
N/A
Dependent Projects
93
Weekly Downloadsglobal
19,853

License

  • MIT
    • Yesattribution
    • Permissivelinking
    • Permissivedistribution
    • Permissivemodification
    • Nopatent grant
    • Yesprivate use
    • Permissivesublicensing
    • Notrademark grant

Downloads

Readme

node-resemble.js

Analyse and compare images with Javascript. This project does not need canvas or any other binary dependencies. 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:

  • Created by James Cryer and the Huddle development team.
  • Lukas Svoboda - modification for node.js
  • Mirza Zeyrek - jpeg support
  • LarryG - dependency updates

Dependencies

No runtime dependency information found for this package.

CVE IssuesActive
0
Scorecards Score
2.40
Test Coverage
No Data
Follows Semver
Yes
Github Stars
98
Dependenciestotal
0
DependenciesOutdated
0
DependenciesDeprecated
0
Threat Modelling
No Data
Repo Audits
No Data

Learn how to distribute node-resemble-js in your own private NPM registry

npm config set registry  https://npm.cloudsmith.com/owner/repo
Processing...
Done
npm install node-resemble-js
Processing...
Done

4 Releases

NPM on Cloudsmith

Getting started with NPM on Cloudsmith is fast and easy.