Giter Club home page Giter Club logo

image-difference's Introduction

image-difference

⚠️ This project is deprecated and no longer maintained.

Create image differential between two images

npm package Build Status

PeerDependencies Dependencies DevDependencies

The problem solved

difference

This is a fork of image-diff that is no longer maintained. This was created as part of a visual regression project and now supported as part of Argos-CI.

Installation

image-difference depends on ImageMagick Please install this before continuing.

npm install --save image-difference

API

imageDifference(options) => Promise

Create image differential between two images

Arguments

  1. options (Object)
    • options.metric (String, default to AE): Optional metric used for the computation of the output.
    • options.actualFilename (String): Path to actual image file. must exist.
    • options.expectedFilename (String): Path to expected image file. must exist.
    • options.diffFilename (String): Optional path to output differential image.

Returns

Promise: Return the output of the process. It's an object that contains the width, height properties.

Also, depending on the metric used, we either returns value or value 1, value2, valueX. Those values are in the order of the ImageMagick output. For instance, with the default AE metric, value is the number of different pixels after the fuzz being applied.

import imageDifference from '../src/imageDifference'

imageDifference(
  {
    actualFilename: `${__dirname}/images/hello-world.png`,
    expectedFilename: `${__dirname}/images/hello.png`,
    diffFilename: `${__dirname}/images/hello-diff.png`,
  },
  console.log
)

CLI Usage

Usage:  [options] <actual-filename> <expected-filename> [diff-filename]

Create image differential between two images

Options:

  -h, --help     output usage information
  -V, --version  output the version number

Benchmark

We use imagemagick1 as the default implmentation

image-diff diff x 1.11 ops/sec ±1.21% (25 runs sampled)
image-diff same x 1.07 ops/sec ±0.80% (25 runs sampled)

image-difference imagemagick1 diff x 4.43 ops/sec ±0.40% (41 runs sampled)
image-difference imagemagick1 same x 4.45 ops/sec ±0.49% (41 runs sampled)

image-difference imagemagick2 diff x 2.96 ops/sec ±0.49% (34 runs sampled)
image-difference imagemagick2 same x 2.94 ops/sec ±0.87% (34 runs sampled)

image-difference graphicsmagick diff x 2.32 ops/sec ±0.60% (31 runs sampled)
image-difference graphicsmagick same x 2.30 ops/sec ±0.72% (31 runs sampled)

pixelmatch diff x 0.79 ops/sec ±0.94% (23 runs sampled)
pixelmatch same x 3.58 ops/sec ±2.07% (37 runs sampled)

resemble diff x 0.59 ops/sec ±4.76% (22 runs sampled)
resemble same x 0.94 ops/sec ±0.85% (24 runs sampled)

looksSame diff x 2.09 ops/sec ±3.08% (30 runs sampled)
looksSame same x 1.08 ops/sec ±3.76% (25 runs sampled)

Contributing

brew install imagemagick@6 graphicsmagick
yarn
yarn test:watch

License

MIT

image-difference's People

Contributors

amilajack avatar andlrc avatar gregberge avatar jacobp100 avatar jsfez avatar mlmorg avatar oliviertassinari avatar richardmcsong avatar swbiggart avatar twolfson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  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.