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