Javascript createImageData抛出DOM异常9,rgb数据不起作用

时间:2013-02-08 21:24:11

标签: javascript html5-canvas

当我打电话给以下

时,Chrome浏览器上的

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); } 的例外情况外,输出是否透明还有其他原因吗?

2 个答案:

答案 0 :(得分:1)

尝试将您的参数记录(console.log()createImageData。当第一个参数为NOT_SUPPORTED_ERR: DOM Exception 9NaN时,此函数似乎抛出Infinity(可能在其他情况下)。

答案 1 :(得分:0)

来自以下页面的报价

“当没有样式规则应用于画布时,它最初将完全透明。”

https://developer.mozilla.org/en-US/docs/HTML/Canvas/Tutorial/Basic_usage?redirectlocale=en-US&redirectslug=Canvas_tutorial%2FBasic_usage