Я пытаюсь обесцветить изображение. В настоящее время я загружаю его, анализируя данные изображения, но не могу заставить его записать обратно на холст.
Я следовал всем указаниям, чтобы сделать
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);
}