我試圖去飽和一個圖像。我目前正在加載它,解析圖像數據,但我無法將它寫回畫布。javascript canvas putImageData不寫修改後的數據
我已經照着所有的方向做
context.putImageData(imagedata,0,0);
我這樣做,但圖像數據並沒有改變。 「ctx」是以前加載的圖像的上下文,該圖像正在變爲灰度。
greyscale: function grayscale(ctx){
var id = ctx.getImageData(0,0, ctx.canvas.width, ctx.canvas.height);
for(var i=0; i<id.height; i++){
for(var e=0; i<id.width; i++){
var index = (e*4)*id.width+(i*4);
var avg = (id.data[index] + id.data[index+1] + id.data[index+2])/3
id.data[index] = avg;
id.data[index+1] = avg;
id.data[index+2] = avg;
}
}
ctx.putImageData(id,0,0);
}