A lightweight image comparison tool

Downloads in past


2601.0.17 years ago7 years agoMinified + gzip package size for pixel-diff in KB


A lightweight image comparison tool
dependencies Status Build Status npm version

What can it do?

Pixel-Diff was initially created to compare screenshots and continue the work of BlinkDiff.
There are three types of image comparisons:
  • Pixel-by-pixel - Used to compare low-frequency images like screenshots from web-sites, making sure that small styling differences trigger.
  • Perceptual - Used to compare image creation applications, for example rendering engines and photo manipulation applications that are taking the human perception into account, ignoring differences a human probably would not see.
  • Context - Used to see if parts of images are missing or are severely distorted, but accepts smaller and/or perceptual differences.


Install this module locally with the following command:
npm install pixel-diff

Save to dependencies or dev-dependencies:
npm install --save pixel-diff
npm install --save-dev pixel-diff


let diff = new PixelDiff({
    imageAPath: 'path/to/first/image',
    imageBPath: 'path/to/second/image',

    thresholdType: BlinkDiff.THRESHOLD_PERCENT,
    threshold: 0.01, // 1% threshold

    imageOutputPath: 'path/to/output/image'

diff.run((error, result) => {
   if (error) {
      throw error;
   } else {
      console.log(diff.hasPassed(result.code) ? 'Passed' : 'Failed');
      console.log('Found ' + result.differences + ' differences.');

Refer to docs for more examples.


Run the tests with the following commands:
npm test or npm test -- unit
The code-coverage will be written to the coverage folder in the module root.


See the contributing guide for more information. In lieu of a formal style guide, take care to maintain the existing coding style. Add tests for any new or changed functionality. Lint and test your code using npm test


Licensed under the MIT license.
Copyright (c) 2016 Koola.