🎨 Node.js library to compare 2 images without native libs.
| Actual | Expected | Difference |
|---|---|---|
![]() |
![]() |
![]() |
npm install img-diff-jsconst { imgDiff } = require("img-diff-js");
imgDiff({
actualFilename: "example/actual.png",
expectedFilename: "example/expected.png",
diffFilename: "example/diff.png",
}).then(result => console.log(result));Create image differential between two images.
{
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,imgDiffdoes not output image file.generateOnlyDiffFile- Optional - Generate only files with differenceoptions- Optional - An object to pass through pixelmatch.
{
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.
The following codecs are available for input image files.
- png
- jpeg
- tiff (limited. See https://github.com/Quramy/decode-tiff#compatibility )
- bmp
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.
PR or issue is welcome :)
yarnyarn testyarn run perfMIT License. See LICENSE under this repository.


