jimp-dev/jimp

Mask method doesn't give the same result as Gimp

Open

#971 ouverte le 12 déc. 2020

Voir sur GitHub
 (0 commentaires) (0 réactions) (0 assignés)JavaScript (785 forks)batch import
bughelp wanted

Métriques du dépôt

Stars
 (13 218 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

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.

Guide contributeur