问答详情
源自:4-2 Canvas 创建属于自己的滤镜效果

改变像素的值后显示效果没变

我给imgdata的值改变了值,全部变成0了,按理说应该显示为黑色,但是为什么绘制出来还是我当初get的那个图像呢?

for(var i=0;i<canvasb.width*canvasb.height;i++)

{

pixelData[4*i+0]=0;

pixelData[4*i+1]=0;

pixelData[4*i+2]=0;

}

contextb.putImageData(imgdata,0,0,0,0,800,800);


提问者:来自太阳的风 2017-01-20 16:35

个回答

  • 日光弥散
    2017-02-08 15:22:34

    首先你封装的函数 filter应该在上面调用一下   写了没调用是无效,

    其次你封装的函数也有问题,

    for(var i=0;i<canvasb.width*canvasb.height;i++)

    {

    pixelData[4*i+0]=0;

    pixelData[4*i+1]=0;

    pixelData[4*i+2]=0;

    }

    应该是

    for(var i=0;i<canvasa.width;i++){

    for (var j=0;j<canvasa.height;j++) {

    var p=i*canvassa.width+j;

    pixelData[4*p+0]=0;

    pixelData[4*p+1]=0;

    pixelData[4*p+2]=0;

    }

    }

    ctb.putImageData(imgD,0,0,0,0,canvasb.width,canvasb.height);