我遇到了很多人过去似乎遇到过的错误,但我并不清楚解释。在我的 javascript 中使用 .getImageData() 方法获取我存储在计算机上并输入到我的 HTML 网页中的 img 标记中的图片的像素数据后,我得到 SecurityError: DOM Exception 18。
我只是在我的浏览器中运行一个 HTMl 文件,它阻止我完成这些工作。我读过有关制作代理以绕过它或在我自己的域上托管图像的信息。我不完全理解这意味着什么或如何去做。因此,如果有人可以提供帮助,将不胜感激。我将在此处输入我的代码并留下图像的链接。
http://i.imgur.com/8UzWlWX.png
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test</title>
<script>
function putimg() {
var img = document.getElementById('img');
var can = document.getElementById('C');
var ctx = can.getContext('2d');
ctx.drawImage(img, 0, 0);
var position = [];
var imgdata = ctx.getImageData(0,0, img.width, img.height);
var data = imgdata.data;
for (var i = 0; i < data.length; i += 4) {
if (data[i] == 255) {
var vertical = Math.floor((data.indexOf(data[i]) / 4) / 400);
var horizontal = Math.floor((data.indexOf(data[i]) / 4) % 400);
position.push(horizontal, vertical);
}
}
}
ctx.putImageData(imgdata, 0, 0);
}
</script>
</head>
<body onload="putimg()">
<h1>Test</h1>
<img id="img" src="circle-image-alone.png" style="display:none"></img>
<canvas id="C" width="600" height="600"></canvas>
</body>
</html>
编辑:该文件现在与 html 文件位于同一文件夹中,但出现相同的错误标志