2013-08-04 50 views
0

我想改變一個簡單的PNG的顏色。 PNG擁有透明度的簡單形狀。目前我正在通過canvas背景更改顏色:如何更改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

,如果你把這個循環之前這將是一個很大的地獄更快:

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

然後在循環中使用這樣的:

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