如何改变png的颜色?

时间:2013-08-04 08:18:20

标签: colors png kineticjs tint

我想改变一个简单的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中渲染画布需要一些时间。还有其他解决方案吗?

此致 圣拉斐尔

1 个答案:

答案 0 :(得分:0)

如果你把它放在循环之前,这将是一个更快的地狱:

var col = Kinetic.Util.getRGB(color);

然后在循环中使用它:

data[i] = col.r;
data[i+1] = col.g;
data[i+2] = col.b;