来自内部图像的Android getImageData() - SECURITY_ERR:DOM Exception 18

时间:2015-07-02 18:50:57

标签: javascript android jquery html5 html5-canvas

在我的应用程序中我在画布上复制图像,然后我从中获取数据。该图像位于项目的根目录中。 这是一个简化的代码:

var img = new Image();
img.src = picture.jpg
img.onload = function(){
img.setAttribute('crossOrigin','anonymous');
var canvas= document.createElement('canvas');
canvas.width = 200;
canvas.height = 200;
canvas.getContext('2d').drawImage(img,0,0,200,200);
var iData = canvas.getContext('2d');
try{
    var imgData = iData.getImageData(0,0,200,200);
}
catch(e){
    alert('error: ' + e + '\nimg.src: ' + img.src);
}

这是一个例外:

ERROR: SECURITY_ERR: DOM Exception 18
img.src: file:///android_asset/www/picture.jpg

因此,图像来自同一个域;在这种情况下,我没有找到Manifest的任何其他权限。 此外,我试图从较小的方块获取图像数据,如下所示:

imgData = iData.getImageData(10,10,190,190);

为什么我得到例外?

1 个答案:

答案 0 :(得分:0)

就这么简单。 在MainActivity.java中必须是权限:

webView.getSettings().setAllowFileAccessFromFileURLs(true);

就是这样。