0

我正在尝试更改简单 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 中,渲染画布需要一些时间。那么还有其他解决方案吗?

问候, 拉斐尔

4

1 回答 1

0

如果你把它放在循环之前会快很多:

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

然后在循环中使用它:

data[i] = col.r;
data[i+1] = col.g;
data[i+2] = col.b;
于 2013-08-04T08:21:10.523 回答