How to use the jimp.diff function in jimp

To help you get started, we’ve selected a few jimp examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github dadi / cdn / test / acceptance / visual.js View on Github external
return Jimp.read(cdnUrl + requestPath).then(testImage => {
      const diff = Jimp.diff(baselineImage, testImage, 0.1) // threshold ranges 0-1 (default: 0.1)
      const distance = Jimp.distance(baselineImage, testImage) // perceived distance

      if (distance < 0.15 || diff.percent < 0.15) {
        return
      }

      const error = new Error(
        `Image mismatch percentage: ${diff.percent *
          100}. Saving diff image to ${outputPath}.`
      )

      diff.image.write(outputPath)

      return Promise.reject(error)
    })
  })
github thomasjbradley / markbot / app / checks / screenshots / differ.js View on Github external
const calculateImageDifference = function (paths, refImg, newImg, allowedDiff) {
  let diffImgPath = paths.new.replace(/\.png$/, '-diff.png');
  let distance = jimp.distance(refImg, newImg);
  let diff = jimp.diff(refImg, newImg);

  diff
    .image
    .scan(0, 0, diff.image.bitmap.width, diff.image.bitmap.height, function (x, y, idx) {
      let clr = jimp.intToRGBA(diff.image.getPixelColor(x, y));

      // Yellow
      if (clr.r == 255 && clr.g == 255 && clr.b == !255) {
        diff.image.setPixelColor(0x999999ff, x, y);
      }

      // Red
      if (clr.r == 255 && clr.g == !255 && clr.b == !255) {
        diff.image.setPixelColor(0x000000ff, x, y);
      }
    })
github Rich-Harris / ramjet / test / utils / compareScreenshots.js View on Github external
]).then( ([ actual, expected ]) => {
				const diff = Jimp.diff( actual, expected );

				diff.image.write( path.resolve( dir, 'diff', file ) );

				console.log( `${test} : ${file} : ${diff.percent * 100}% difference` );
			});
		});
github bowin / hack-testgee / imageUtils.js View on Github external
return co(function*(){
        let imageBg =  yield genImage(bg);
        imageBg.write('promiseBg.jpg');
        let imageBgFull =  yield genImage(fullbg);
        imageBgFull.write('promiseBgFull.jpg');
        let diff = jimp.diff(imageBg,imageBgFull);
        diff.image.write('diff_image.jpg');
        let data = diff.image.bitmap.data;
        let w = diff.image.bitmap.width;
        let h = diff.image.bitmap.height;
        for (let y = 0; y < h; y++) {
          let linePoint =[];
          for (let x = 0; x < w; x++) {
            let index = (x + y * w) * 4;
            let r = data[index];
            let g = data[index + 1];
            let b = data[index + 2];
            if(r>250 && g<50 && b<50) {
              linePoint.push({x,y});
              //return Promise.resolve({x,y})
            }
          }
github katat / vbot / src / index.js View on Github external
async compareImages (params) {
    let baseFilePath = params.baseFilePath
    let testFilePath = params.testFilePath
    let diffFilePath = params.diffFilePath
    let baseImg = await Jimp.read(baseFilePath)
    let testImg = await Jimp.read(testFilePath)
    let diff = Jimp.diff(baseImg, testImg)
    return new Promise(resolve => {
      const data = {
        data: {
          misMatchPercentage: diff.percent,
          isSameDimensions: baseImg.bitmap.width === testImg.bitmap.width && baseImg.bitmap.height === testImg.bitmap.height,
          passThreshold: diff.percent <= this.options.mismatchThreshold
        }
      }
      if (!diff.percent) {
        return resolve(data)
      }
      diff.image.write(diffFilePath, () => {
        resolve(data)
      })
    })
  }
github katat / vbot / src / index.js View on Github external
async compareImages (params) {
    let baseFilePath = params.baseFilePath
    let testFilePath = params.testFilePath
    let diffFilePath = params.diffFilePath
    let baseImg = await Jimp.read(baseFilePath)
    let testImg = await Jimp.read(testFilePath)
    let diff = Jimp.diff(baseImg, testImg)
    diff.percent && await diff.image.write(diffFilePath)
    return {
      data: {
        misMatchPercentage: diff.percent,
        isSameDimensions: baseImg.bitmap.width === testImg.bitmap.width && baseImg.bitmap.height === testImg.bitmap.height,
        passThreshold: diff.percent <= this.options.mismatchThreshold
      }
    }
  }
github Crunch-io / nightwatch-vrt / lib / compare-with-baseline.js View on Github external
).then((baseline) => {
            const diff = Jimp.diff(screenshot, baseline),
                identical = diff.percent <= (Number.isFinite(threshold) ? threshold : 0.0)

            if (!identical && prompt === true) {
                saveScreenshot(
                    completeLatestPath,
                    screenshot
                )
                    .then(() => saveScreenshot(
                        completeDiffPath,
                        diff.image
                    ), resolve)
                    .then(() => promptScreenshotOverride(
                        completeLatestPath,
                        completeBaselinePath,
                        completeDiffPath
                    ), resolve)