ffmpeg-image-diff
v1.16.0
Published
An image diffing library using FFmpeg. Creates an image showing perceptual differences and returns SSIM data.
Downloads
1,534
Readme
FFmpeg Image Diff
A NodeJS image diffing library using
FFmpeg.
Creates an image showing perceptual differences and returns
SSIM data.
Contents
Requirements
This is a thin wrapper around FFmpeg and has no other dependencies.
Install
npm install ffmpeg-image-diff
Usage
Displaying SSIM data only:
const imgDiff = require('ffmpeg-image-diff')
imgDiff(
referenceImage, // e.g. 'test/lenna.png'
comparisonImage // e.g. 'test/lenna-edit.png'
)
.then(ssim => {
// Sample output: { R: 0.990149, G: 0.991289, B: 0.990579, All: 0.990672 }
console.log(ssim)
})
.catch(error => {
console.error(error)
})
Creating a differential image with default options:
const imgDiff = require('ffmpeg-image-diff')
imgDiff(
referenceImage, // e.g. 'test/lenna.png'
comparisonImage, // e.g. 'test/lenna-edit.png'
outputImage, // e.g. 'test/out.png', overwrites an existing file
{
ssim: true, // true or false
similarity: 0.01, // 1.0 - 0.01
blend: 1.0, // 1.0 - 0.0
opacity: 0.1, // 1.0 - 0.0
color: 'magenta' // magenta, yellow, cyan, red green, blue or ''
}
)
.then(ssim => {
// Sample output: { R: 0.990149, G: 0.991289, B: 0.990579, All: 0.990672 }
console.log(ssim)
})
.catch(error => {
console.error(error)
})
Options
ssim
If set to false
, disables
SSIM calculation.
Default: true
similarity
Defines the threshold to identify image differences.0.01
matches slight differences, while 1.0
only matches stark contrast.
Range: 1.0 - 0.01
Default: 0.01
blend
Blend percentage for the differential pixels.
Higher values result in semi-transparent pixels, with a higher transparency the
more similar the pixels color is to the original color.
Range: 1.0 - 0.0
Default: 1.0
opacity
Opacity of the reference image as backdrop for the differential image.
Higher values result in a more opaque background image.
Range: 1.0 - 0.0
Default: 0.1
color
The color balance of the differential pixels.
An empty string displays the default differential pixels.
Set: ['magenta', 'yellow', 'cyan', 'red', 'green', 'blue', '']
Default: 'magenta'
Samples
Reference image
Comparison image
Output image
Testing
- Start Docker.
- Install development dependencies:
npm install
- Run the tests:
npm test
License
Released under the MIT license.