我循环遍历图像中的所有像素,检查像素是否为某种颜色然后将所述像素设置为黄色(r = 250,g = 250,b = 250),否则我将其设置为黑色(r = 0,g = 0,b = 0)。
你会看到下面进行颜色比较的代码是一种非常原始的方法,但它很适合我的用例。
我目前只使用单个for循环,请参阅下面的代码。
var cavas = $("#canvas"),
context = canvas.getContext("2d"),
imageData = context.getImageData(),
data = imageData.data;
var r, g, b, total;
var MAX = SOME_CONST,
MIN = SOME_OTHER_CONST;
for (var i = 0, max = data.length; i < max; i +=4) {
r = data[i];
g = data[i+1];
b = data[i+2];
total = r + g + b;
if (total < MIN || total > MAX) {
//This is the colour i'm after
data[i] = 255;
data[i+1] = 255;
data[i+2] = 0;
}
else {
data[i] = 0;
data[i+1] = 0;
data[i+2] = 0;
}
}
是否有更有效的方法来执行此操作?