Wondering what’s next for npm?Check out our public roadmap! »

    img-diff-js
    TypeScript icon, indicating that this package has built-in type declarations

    0.5.2 • Public • Published

    img-diff-js

    github actions Build Status npm version License: MIT

    🎨 Node.js library to compare 2 images without native libs.

    Actual Expected Difference
    actual expected diff

    Install

    npm install img-diff-js
    const { imgDiff } = require("img-diff-js");
    
    imgDiff({
      actualFilename: "example/actual.png",
      expectedFilename: "example/expected.png",
      diffFilename: "example/diff.png",
    }).then(result => console.log(result));

    API Usage

    imgDiff(opt: ImgDiffOptions): Promise<ImgDiffResult>

    Create image differential between two images.

    ImgDiffOptions

    {
      actualFilename: string;
      expectedFilename: string;
      diffFilename?: string;
      generateOnlyDiffFile?: boolean; // default false
      options?: {
        threshold?: number;   // default 0.1
        includeAA?: boolean;  // default false
      }
    }
    • actualFilename - Required - Path to actual image file.
    • expectedFilename - Required - Path to expected image file.
    • diffFilename - Optional - Path to differential image file. If omitted, imgDiff does not output image file.
    • generateOnlyDiffFile - Optional - Generate only files with difference
    • options - Optional - An object to pass through pixelmatch.

    ImgDiffResult

    {
      width: number;
      height: number;
      imagesAreSame: boolean;
      diffCount: number;
    }
    • width - Differential image's width.
    • height - Differential image's height.
    • imagesAreSame - It'll be true only if 2 images are same perfectly.
    • diffCount - The number of differential pixels.

    Available format

    The following codecs are available for input image files.

    imgDiff detects the input image format from it's extension name. For example, if the input file name ends with ".jpeg", imgDiff attempts to decode in JPEG way regardless of the actual file format.

    The output image format is PNG only.

    Performance

    case name img-diff-js image-difference image-diff
    50 same dimension PNGs 376 msec 1967 msec 3143 msec
    50 different dimension PNGs 274 msec 2979 msec 3520 msec
    50 same dimension JPEGs 449 msec 2422 msec 4376 msec

    The above table was captured under Travis-CI. If you want the latest result, check the raw log.

    Contribute

    PR or issue is welcome :)

    Setup

    yarn

    Test

    yarn test

    Run benchmark script

    yarn run perf

    License

    MIT License. See LICENSE under this repository.

    Install

    npm i img-diff-js

    DownloadsWeekly Downloads

    34,556

    Version

    0.5.2

    License

    MIT

    Unpacked Size

    268 kB

    Total Files

    63

    Last publish

    Collaborators

    • avatar