问题描述
|
画布是否可以从加载到该画布的外部图像中去除背景色?
我认为画布可以操纵像素,因此应该去除图像背景色。
经过一番搜索,我仍然找不到答案或任何想法。
解决方法
在我编写的演示中(个人垃圾邮件;),您可能需要一些东西:
完整的源代码在这里
首先,它读取图像
brush.load({
imageUrl: \"brush-2.png\",onload: function (brush) {
setBG(brush);
}
});
然后它操纵像素
for(p = 0; p < l; p = p + 4){
r = pixels.data[p + 0];
g = pixels.data[p + 1];
b = pixels.data[p + 2];
a = pixels.data[p + 3];
pixels.data[p + 0] = k;
pixels.data[p + 1] = m;
pixels.data[p + 2] = o;
pixels.data[p + 3] = a;
}
然后从imageData设置图像
document.body.style.backgroundImage= \"url(\" + ctx.canvas.toDataURL() + \")\";
这里更多