簡體   English   中英

如何使用JS將圖像制作成具有透明背景的輪廓

[英]How to make image into an outline with transparent background using JS

原始圖像 結果

1 -> 原始圖像

2 -> 圖片上傳后的結果:

我正在嘗試將原始圖片轉換為透明的黑色輪廓,如下圖所示。

我正在為我的項目使用 Konva JS 庫,但我無法使用 Konva.js 實現此功能。

請提出一些建議來實現以下功能。

您可以使用Konva 自定義濾鏡根據需要處理圖像。

這是用透明像素替換白色的示例:


// lets define a custom filter:
var MyFilter = function (imageData) {
  const tol = 10;
  // make all pixels opaque 100%
  var nPixels = imageData.data.length;
  const { data } = imageData;
  for (var i = 0; i < nPixels - 4; i += 4) {
    const isWhite =
      data[i] > 255 - tol &&
      data[i + 1] > 255 - tol &&
      data[i + 2] > 255 - tol;
    if (isWhite) {
      imageData.data[i + 3] = 0;
    } else {
      // you can replace black with another color
    }
  }
};

Konva.Image.fromURL("./lion.jpeg", function (image) {
  layer.add(image);
  image.setAttrs({
    x: 80,
    y: 30,
    draggable: true
  });

  image.filters([MyFilter]);
  image.cache();

  layer.draw();
});

演示: https://codesandbox.io/s/konva-remove-white-example-fw6fz?file=/index.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM