Precursor:我知道已经有人问过关于这个主题的一些问题,但似乎没有一个提供直接的纯 JavaScript 解决方案。
所以我遇到了这个错误,我试图使用类似的东西从画布中获取像素数据context.getImageData()
,我的确切代码可以在这里或下面看到:
<canvas id="imageCanvas" width="600" height="800"></canvas>
// Load Image
var canvas = document.getElementById('imageCanvas');
var image = new Image();
image.src = 'http://emoticons.pw/emoticons/emoticon-faces-002-medium.png';
image.onload = function() {
width=image.width;
height=image.height;
var context = canvas.getContext('2d');
context.fillStyle="#024359"; // canvas background color
context.fillRect(0, 0, width, height);
context.drawImage(this,0,0);
imageData = context.getImageData(0,0,width, height); // PROBLEM HERE
context.putImageData(imageData, 0, 0);
}
我在 Chrome 中收到以下错误:
无法从画布获取图像数据,因为画布已被跨域数据污染。
然后是安全错误。我不想更改服务器或使用奇怪的指令启动 chrome。我觉得必须有一些我可以在 JavaScript 中做的事情。
仅使用本地图像不是问题,但是在尝试时,我遇到了同样的错误!
我正在尝试在没有服务器的情况下执行此操作,如果我将它放在我的“默认”godaddy Web 服务器上,我的所有问题都解决了吗?听说dropbox也可以模拟一个足够近的服务器?