【发布时间】:2017-12-16 01:40:18
【问题描述】:
这个问题被问了很多,但我就是不明白为什么会发生在我身上。
基本上,我有一个画布和一个图像,当我尝试这样做时:
var canvas = document.getElementById('somecanvas');
var ctx = canvas.getContext('2d');
var someimage = document.createElement('img');
someimage.setAttribute('src', 'img/someimage.png');
someimage.onload = function(){
ctx.drawImage(someimage, 0, 0, canvas.width, canvas.height);
data = ctx.getImageData(0,0,canvas.width,canvas.height);
}
我觉得难看:
"未捕获的 DOMException:无法在“CanvasRenderingContext2D”上执行“getImageData”:画布已被跨域数据污染。 在 HTMLImageElement.someimage.onload"
我应该提一下,我对编程还很陌生,对 javascript 更是如此。当我从 file:\\ 运行它时应该发生这种情况吗?
我没有发现任何人遇到与我完全相同的问题,人们对其他问题的解释与托管图像的服务器有关。但在这种情况下,它不是托管在服务器上的,所以我对它是如何工作的感到困惑。或者更确切地说,不起作用。
【问题讨论】:
-
您好 Andrew - 说谢谢很棒,但请在答案上评论您的thanks,而不是编辑您的问题。一般来说,您的声誉太低,无法发表评论,但您可以在自己的问题线程中评论答案。 :)
-
你好,弗里茨。感谢您的提醒。我想通过评论表示感谢,但是当我将鼠标悬停在评论链接上时,我注意到它说“避免像“谢谢”这样的 cmets”,所以我感到困惑并改为编辑。
-
完全没有问题,老实说,感谢某人的最佳方式是支持他们的答案(如果您是问题作者,则接受),如果您不是,这可能看起来微不足道习惯了,但相信我,我们为那个投票而活;)(检查this link并查看第三个要点)我绝对不会抱怨友善,所以谢谢你的尝试!
标签: javascript html canvas cors getimagedata