v
brush(x,y,w,h)
控制台报告
DOM异常错误9
在这一行:
var imageData = cvs.createImageData(w,h);
此外,setPixel()
应根据指示更改r,g,b,a
的{{1}}值,但在我的浏览器中,它显示为透明。 imageData.data
创建了一个透明的w * h方块,这不是我想要它做的。
brush(...)
我的问题:除function setPixel(imageData, x, y, r, g, b, a) {
index = (x + y * imageData.width) * 4;
imageData.data[index+0] = r;
imageData.data[index+1] = g;
imageData.data[index+2] = b;
imageData.data[index+3] = a;
}
function brush(x, y, w, h) {
var canvas = document.getElementById('maincanvas');
var cvs = canvas.getContext('2d');
var imageData = cvs.createImageData(w,h);
var r = 0;
var g = 0;
var b = 0;
setPixel(imageData, x, y , r, g, b, 255);
cvs.putImageData(imageData, x, y);
}
的例外情况外,输出是否透明还有其他原因吗?
答案 0 :(得分:1)
尝试将您的参数记录(console.log()
)createImageData
。当第一个参数为NOT_SUPPORTED_ERR: DOM Exception 9
或NaN
时,此函数似乎抛出Infinity
(可能在其他情况下)。
答案 1 :(得分:0)
来自以下页面的报价
“当没有样式规则应用于画布时,它最初将完全透明。”