我想改变一个简单的png的颜色。 png只包含一个透明的简单形状。目前我正在通过画布上下文改变颜色:
var imageData = context.getImageData(0, 0, context.canvas.width, context.canvas.height);
var data = imageData.data;
for (var i = 0; i < data.length; i += 4) {
data[i] = Kinetic.Util.getRGB(color).r;
data[i + 1] = Kinetic.Util.getRGB(color).g;
data[i + 2] = Kinetic.Util.getRGB(color).b;
}
// overwrite original image
context.putImageData(imageData, 0, 0);
在firefox中渲染画布需要一些时间。还有其他解决方案吗?
此致 圣拉斐尔
答案 0 :(得分:0)
如果你把它放在循环之前,这将是一个更快的地狱:
var col = Kinetic.Util.getRGB(color);
然后在循环中使用它:
data[i] = col.r;
data[i+1] = col.g;
data[i+2] = col.b;