2017-05-25 68 views
0

進出口使用下一個代碼試圖從圖像getImageData錯誤與本地圖像

$(document).ready(function(){ 
     var img = document.getElementById('my-image'); 
     var canvas = document.createElement('canvas'); 
     canvas.width = img.width; 
     canvas.height = img.height; 
     canvas.getContext('2d').drawImage(img, 0, 0, img.width, img.height); 
     var pixelData = canvas.getContext('2d').getImageData(1, 1, 1, 1).data; 
     }); 

我得到這個錯誤,每次得到的像素顏色:

index.html:20 Uncaught DOMException: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data. 
    at HTMLDocument.<anonymous> (file:///C:/Users/ariadna/Desktop/Programacion/Test/public/index.html:20:50) 
    at j (http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js:2:27295) 
    at Object.fireWith [as resolveWith] (http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js:2:28108) 
    at Function.ready (http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js:2:29942) 
    at HTMLDocument.J (http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js:2:30308) 

我看到了很多關於這個問題,和almos所有答案都是=「U無法從另一個域獲得圖像,這是安全措施」。

好,但爲什麼我的不工作時,圖像是在同一個目錄中的.html

+0

img src與您的實際頁面/網站具有相同的域/主機/帖子? – UXDart

+0

@UXDart是簡單的index.html,圖像在同一個文件夾 – CristianS9

+0

hmm ...'file:/// C:/ User'你需要在一個域上這樣做,我認爲它不會工作本地文件 – UXDart

回答

0

的問題是,你正在使用本地文件file:///C:/User ...你需要建立一個域(它可以是本地主機)