contexta应该是canvasa吧
因为对象的赋值操作是引用赋值操作。
同求感觉d3没有什么系统的教程
首先你封装的函数 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);
我也遇到这种情况,我获取到的data在console中查看显示全部是0,但是我putImageData的时候能正确的画出来!不知道为什么!
不用服务器运行HTML页面 ,网页和图片是两个域名,这是CANVAS包含的安全机制,你可以下个APACHE再去运行这个页面~
换个浏览器你试试