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.

贡献者指南