jimp-dev/jimp

Mask method doesn't give the same result as Gimp

Open

#971 aperta il 12 dic 2020

Vedi su GitHub
 (0 commenti) (0 reazioni) (0 assegnatari)JavaScript (785 fork)batch import
bughelp wanted

Metriche repository

Star
 (13.218 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

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.

Guida contributor