如何在Node.JS中替换图像中除黑色以外的所有颜色

4

我正在尝试创建一张图片的轮廓。我已经将背景变为黑色,但是我遇到了将其他所有颜色转换为灰色的问题。

到目前为止,我的代码:

import sharp from "sharp";
import jimp from "jimp";

sharp("input.png")
  .flatten()
  .toFile("output.jpg")
  .then(async (data) => {
    const image = await jimp.read("output.jpg");

    image.scan(0, 0, image.bitmap.width, image.bitmap.height, (x, y, idx) => {
      if (image.bitmap.data[idx] >= 2) {
        image.bitmap.data[idx] = 86;
        image.bitmap.data[idx + 1] = 101;
        image.bitmap.data[idx + 2] = 115;
        image.bitmap.data[idx + 3] = image.bitmap.data[idx + 3];
      }
    });

    image.write("output.jpg");
  });


这段代码输出:result
输入的图片是:enter image description here
我已经查看了类似replace-color的软件包,但这些软件包似乎旨在替换单个颜色,而不是除一个之外的所有颜色。任何帮助都将不胜感激。

你有任何具体的错误吗? - paroxyzm
你为什么同时使用 sharpjimp - Klaycon
我无法在您的帖子中查看链接,请直接将其嵌入问题中。 - Klaycon
1
@paroxyzm,这里没有任何错误,我只是想不出如何实现我的目标。 - user12493413
@Klaycon 完成。同時加入了開始圖像。 - user12493413
1个回答

2
问题在于我正在将格式从png更改为jpg。保持为png可以解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接