html5画布:按颜色剪辑
下面的方式来选择一种颜色..和做任何你想用它。我传递一个颜色,我想查找遍历每像素,并删除匹配的颜色,因为我不知道你的意思是剪裁我假设你的意思是删除。但是请注意,在大图像上这种方法会很慢。
// Takes an array with 3 color components, rgb
function removeColor(color){
var canvasData = ctx.getImageData(0, 0, 256, 256),
pix = canvasData.data;
for (var i = 0, n = pix.length; i <n; i += 4) {
if(pix[i] === color[0] && pix[i+1] === color[1] && pix[i+2] === color[2]){
pix[i+3] = 0;
}
}
ctx.putImageData(canvasData, 0, 0);
}
removeColor([0,0,255]); // Removes blue.
而像西蒙指出,上面的代码将得到确切颜色。以下将抓取近似的颜色,如果您的颜色重叠或彼此非常接近,则这很好。
除非所讨论的图像是像素完美的,否则它可能值得逼近你的条件,即使是大量的:http://jsfiddle.net/CqTEV/9/ –
@SimonSarris是的我认为这一点,我注意到了由于颜色流失并丢弃了确切的值,因此在我的矿区选择了边缘。我把你的js小提琴添加到答案并给你信用。 – Loktar
@SimonSarris伟大的脚本。它工作完美。 :-) 谢谢 –
你说的'clip'意思? – Loktar