我们如何从图像中删除黑色像素?我们可以像RemoveWhite一样创建RemoveBlack Image过滤吗?
答案 0 :(得分:0)
这应该让你前进:
以下是自定义过滤器的相关代码:
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/。
如果您有任何疑问,请与我们联系。很高兴进一步提供帮助。