Javascript HTML画布图像数据数组所有0';s

Javascript HTML画布图像数据数组所有0';s,javascript,canvas,pixel,Javascript,Canvas,Pixel,在我将图像绘制到上下文中,然后创建一个imageData数组之后,数组的值都是0 我已经为此挣扎了几个小时,找不到任何解决办法。在我绘制图像后,图像显示在画布上,但是上下文的imageData显示所有像素都是白色的。这对我来说没有任何意义。使用createImageData可以为空图像创建新图像数据。请使用getImageData从现有画布获取图像数据元素的URL是什么,尤其是域是否与页面的域不同?如果是这样的话,你就无法得到图像数据。我正在用Bleed monkey制作一个用户脚本。图像的ur

在我将图像绘制到上下文中,然后创建一个imageData数组之后,数组的值都是0


我已经为此挣扎了几个小时,找不到任何解决办法。在我绘制图像后,图像显示在画布上,但是上下文的imageData显示所有像素都是白色的。这对我来说没有任何意义。

使用
createImageData
可以为空图像创建新图像数据。请使用
getImageData
从现有画布获取图像数据

元素的URL是什么,尤其是域是否与页面的域不同?如果是这样的话,你就无法得到图像数据。我正在用Bleed monkey制作一个用户脚本。图像的url位于我正在为其制作用户脚本的网页中。因此,除非我错了,否则它在同一个域中。如果它来自Greasemonkey,则跨域问题可能无关紧要。createImageData给了我以下安全错误:SecurityError:操作不安全。在引用画布时,您可能必须使用unsafeWindow。否则,同源策略可能仍然存在问题。我是否可以使用createImageData,然后以某种方式将图像中的数据放入其中?我似乎无法克服getImageData安全性问题……大约3年前,我能够创建一个用户脚本,创建画布,并在画布上绘制页面图像,然后使用其中的ImageData。但是每当我引用画布时,我必须使用
unsafeWindow.document
(为了创建画布并在我将其插入当前页面后访问画布),您能给我一个例子说明unsafeWindow是如何与getImageData一起工作的吗?我不明白它是怎么工作的。当我尝试使用它时,它说unsafeWindow未定义。
    var img, imageData,width,height; 
    var c = canvasEle.getContext("2d");
    width = canvasEle.width;
    height = canvasEle.height;

    img = document.getElementById("id");
    c.drawImage(img,0,0);
    imageData = c.createImageData(width, height);