imagemagick-compare
TypeScript icon, indicating that this package has built-in type declarations

1.1.4 • Public • Published

imagemagick-compare CircleCI codecov

ImageMagick's Compare binding for Node.

Features

  • Native bindings to the C/C++ Magick++ library.
  • Supports promises, async and sync.
  • Supports all metrics.
  • Full typescript support.

Prerequisites

You will need the following dependencies installed on your machine. Currently only linux is supported.

  • node-gyp dependencies (python3, pkgconfig, make, g++)
  • imagemagick
  • imagemagick-dev

Installation

npm i imagemagick-compare

Usage

Version

Returns the version of the installed Magick++ library.

import { version } from 'imagemagick-compare';

console.log(version());

Compare

Compares two images using Magick++ and returns the result as a number.

  • originalImage: Image buffer of the original image.
  • compareWith: Image buffer of the image to compare with.
  • options: Object with metric options. More details below.

Promise usage

import * as fs from 'fs';
import { compare } from 'imagemagick-compare';

const original = fs.readFileSync(__dirname + '/assets/Lenna_orig.png');
const compareWith = fs.readFileSync(__dirname + '/assets/Lenna_diff.png');
const options = { metric: 'SSIM', radius: 2 };

compare(originalImage, compareWith, options).then(res => console.log(res));

Async usage

import { compare } from 'imagemagick-compare';

// ...

compare(originalImage, compareWith, options, (err, res) => {
    if (typeof err !== 'undefined') {
        throw err;
    }

    console.log(res);
});

Sync usage

import { compareSync } from 'imagemagick-compare';

// ...

console.log(compareSync(originalImage, compareWith, options));

Compare options

  • metric: Defaults to SSIM. List of supported metrics below.
  • radius: Will only be used for SSIM and DSSIM metric.
  • sigma: Will only be used for SSIM and DSSIM metric.
  • k1: Will only be used for SSIM and DSSIM metric.
  • k2: Will only be used for SSIM and DSSIM metric.

Supported metrics

  • AE: absolute error count, number of different pixels (-fuzz affected)
  • DSSIM: structural dissimilarity index
  • FUZZ: mean color distance
  • MAE: mean absolute error (normalized), average channel error distance
  • MEPP: mean error per pixel (normalized mean error, normalized peak error)
  • MSE: mean error squared, average of the channel error squared
  • NCC: normalized cross correlation
  • PAE: peak absolute (normalized peak absolute)
  • PHASH: perceptual hash for the sRGB and HCLp colorspaces
  • PSNR: peak signal to noise ratio
  • RMSE: root mean squared (normalized root mean squared)
  • SSIM: structural similarity index

Package Sidebar

Install

npm i imagemagick-compare

Weekly Downloads

2

Version

1.1.4

License

MIT

Unpacked Size

987 kB

Total Files

24

Last publish

Collaborators

  • joberthel