0

我有一个关于 javascript canvas 的两部分问题:

第 1 部分:
我在与我的 html 文档相同的文件中有一个 .jpg。我想知道是否有一种简单的方法可以在该文件中获取像素的颜色,而无需使用 context.getImageData()。

第 2 部分:( 如果第 1 部分太复杂而无用。)
如果我直接从这个站点: W3 学校 getImageData()复制代码到我桌面上的一个 html 文件中,并在我的桌面上添加一个名为img_the_scream.jpg的图像,然后运行它我得到这个错误:

Unable to get image data from canvas because the canvas has been tainted by cross-origin data. test.html:15
Uncaught Error: SecurityError: DOM Exception 18 

我真的不知道为什么它适用于该网站,但不适用于我。

4

1 回答 1

2

这是Same Origin Policy施加的限制:如果服务器明确允许使用CORS 标头,则您无法读取由另一个来源提供的 JavaScript 数据。

如果您想获取由另一台服务器提供的图像的像素,并且该服务器没有设置此标头,那么您必须在您的服务器上工作,或者通过使用某种代理或通过获取图像服务器边。

请注意,浏览器认为所有来自file://不同来源的文件。如果您尝试在本地执行此操作,则必须使用 http 服务器。

于 2013-06-10T18:59:53.273 回答