我们如何创建与FabricJs中的RemoveWhite相同的RemoveBlack图像过滤?

时间:2017-03-30 13:08:41

标签: canvas html5-canvas fabricjs

我们如何从图像中删除黑色像素?我们可以像RemoveWhite一样创建RemoveBlack Image过滤吗?

1 个答案:

答案 0 :(得分:0)

这应该让你前进:

fabricjs image filters custom

以下是自定义过滤器的相关代码:

fabric.Image.filters.RemoveBlack = fabric.util.createClass({
  type: 'RemoveBlack',
  applyTo: function(canvasEl) {
    var context = canvasEl.getContext('2d');
    var imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height),
      data32 = new Uint32Array(imageData.data.buffer), // create a uint32 buffer
      i = 0,
      len = data32.length;
    while (i < len) {
      if (data32[i] < 0xff300000) data32[i] = 0; // if close to black, set transparent
      i++
    }
    context.putImageData(imageData, 0, 0);
  }
});
fabric.Image.filters.RemoveBlack.fromObject = function(object) {
  return new fabric.Image.filters.RemoveBlack(object);
};

这里是所有重要的JSFiddle,https://jsfiddle.net/rekrah/pf072kxs/

如果您有任何疑问,请与我们联系。很高兴进一步提供帮助。