【问题标题】:Android getImageData() from the inner image - SECURITY_ERR: DOM Exception 18来自内部图像的 Android getImageData() - SECURITY_ERR: DOM Exception 18
【发布时间】:2015-09-20 10:39:57
【问题描述】:

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

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);

为什么会出现异常?

【问题讨论】:

    标签: javascript android jquery html html5-canvas


    【解决方案1】:

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

    webView.getSettings().setAllowFileAccessFromFileURLs(true);
    

    就是这样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-03
      • 1970-01-01
      • 2011-07-27
      • 2019-11-11
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多