jimp-dev/jimp

Mask method doesn't give the same result as Gimp

Open

#971 建立於 2020年12月12日

在 GitHub 查看
 (0 留言) (0 反應) (0 負責人)JavaScript (785 fork)batch import
bughelp wanted

倉庫指標

Star
 (13,218 star)
PR 合併指標
 (30 天內沒有已合併 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.

貢獻者指南