jimp-dev/jimp

Mask method doesn't give the same result as Gimp

Open

#971 opened on 2020年12月12日

GitHub で見る
 (0 comments) (0 reactions) (0 assignees)JavaScript (785 forks)batch import
bughelp wanted

Repository metrics

Stars
 (13,218 stars)
PR merge metrics
 (30d に merged PR はありません)

説明

Expected Behavior

Jimp's .mask() method doesn't give the same output as Gimp. Whether this is a fault of Gimp or Jimp, I'm not certain.

Current Behavior

The input image has image information on the left, and mask information on the right.

The final result of masking (after inverting the mask) in Gimp (left) vs Jimp (right) (with a black background, to better show transparency discrepancies)

Steps to Reproduce

const Jimp = require('jimp');

Jimp.read('input.png')
.then((image) => {
    let mask = image
      .clone()
      .crop(image.bitmap.width / 2, 0, image.bitmap.width / 2, image.bitmap.height)
      .invert();
    image
      .crop(0, 0, image.bitmap.width / 2, image.bitmap.height)
      .mask(mask, 0, 0)
      .write('output.png');
})
.catch((err) => {
    console.log(err);
});

Screenshots Comparison images Image as seen in-game:

Context

  • Jimp Version: 0.16.2-canary.969.1115.0
  • Operating System: Windows 10 LTSC 1809 Build 17763.1577
  • Node version: v12.18.0

Extra note: Found and read issue #949, and I believed my issue to be different. Please close this issue if you think otherwise.

コントリビューターガイド