【发布时间】:2017-03-11 15:45:23
【问题描述】:
我正在编写一个脚本(或一起编辑和破解)来编辑页面上图像的外观。我知道 javascript 的基础知识,但这是我第一次看画布。所以请多多包涵
我收到此错误:
无法从画布获取图像数据,因为画布已被跨域数据污染。
所以这是我的代码 sn-p 抛出错误:
var canvas = document.createElement('canvas'),
context = canvas.getContext('2d'),
height = img.naturalHeight || img.offsetHeight || img.height,
width = img.naturalWidth || img.offsetWidth || img.width,
imgData;
canvas.height = height;
canvas.width = width;
context.drawImage(img, 0, 0);
console.log(context);
try {
imgData = context.getImageData(0, 0, width, height);
} catch(e) {}
现在我找到了这篇文章:
http://bolsterweb.com/2012/06/grabbing-image-data-external-source-canvas-element/
但我不知道如何使它适合我的需要..
我知道这一切都是因为安全和所有这些 - 但有没有办法让这一切发生?
谢谢
编辑
哦等等..错误是因为您无法获取ImageData..所以可以将其设为“本地”
【问题讨论】:
-
不,您不能解决安全问题。也许看看ways to circumvent the SOP
-
我找到了这个..maxnov.com/getimagedata 我会尝试解决这个问题 - 它似乎是在正确的方向。
-
@Ken-AbdiasSoftware:不,你不能。该演示也使用了 CORS。
-
正如 markE 所写...更多详情请参见链接https://developer.mozilla.org/en-US/docs/HTML/CORS_Enabled_Image
标签: javascript canvas cors