javascript画布未写入修改的数据
我正在尝试去饱和图像。我目前正在加载它,解析图像数据,但我无法让它写回画布 我已经按照所有的指示去做了javascript画布未写入修改的数据,javascript,canvas,Javascript,Canvas,我正在尝试去饱和图像。我目前正在加载它,解析图像数据,但我无法让它写回画布 我已经按照所有的指示去做了 context.putImageData(imagedata,0,0); 我这样做了,但是图像数据没有改变。“ctx”是先前加载的图像的上下文,该图像将变为灰度 greyscale: function grayscale(ctx){ var id = ctx.getImageData(0,0, ctx.canvas.width, ctx.canvas.height)
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);
}
greyscale:函数灰度(ctx){
var id=ctx.getImageData(0,0,ctx.canvas.width,ctx.canvas.height);
对于(var i=0;i可能不是你想要的答案,但是你看过flot.js吗?很好的图表功能,源代码可以阅读。你的内部循环是比较i并增加i,而不是增加e
当你计算指数时,你也有e和i的切换。它应该是(去掉4个因素):
问题在于:
for(var e=0; i<id.width; i++){
for(var e=0;i
for(var e=0; i<id.width; i++){