我有一个大画布(几乎覆盖了整个屏幕),其中包含五颜六色的形状。还有一个颜色选择器。每次用户使用颜色选择器选择颜色时,我都会检查所选颜色是否属于预先确定的一组颜色(一组十种颜色)。如果选择的颜色是十种颜色之一,我只在画布中显示该颜色的形状并隐藏其他颜色的形状。代码的简化版本如下:
//R,G,B : selected color
pixel = context.getImageData(0,0,W,H);
for(i=0; i<pixel.data.length; i+=4)
if ((pixel.data[i]==R)&&(pixel.data[i+1]==G)&&(pixel.data[i+2]==B))
pixel.data[i+3]=255;
else
pixel.data[i+3]=0;
context.putImageData(pixel,0,0);
所以任何时候我要么显示所有颜色,要么只显示十种颜色中的一种。代码工作正常。问题是它非常慢。有谁知道我怎样才能让它更快?提前致谢。