2015-07-02 37 views
1

在我的應用程序中我將圖像複製到畫布上,然後從中獲取數據。該圖像位於項目的根目錄中。 這是一個簡化代碼:來自內部圖像的Android getImageData() - SECURITY_ERR:DOM異常18

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

爲什麼我收到異常?

回答

0

就這麼簡單。 在MainActivity.java一定是一個權限:

webView.getSettings().setAllowFileAccessFromFileURLs(true); 

這就是全部。

相關問題