2017-05-25 54 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 ...你需要建立一个域(它可以是本地主机)