2012-09-26 24 views

Respuesta

7

No, no puedes.

Sin embargo, conseguir la propiedad imageData se puede hacer con un lienzo en memoria, que es rápido y fácil:

var canvas = document.createElement('canvas'); 
var context = canvas.getContext('2d'); 
var img = document.getElementById('someImageId'); 
context.drawImage(img, 0, 0); 
var theData = context.getImageData(0, 0, img.width, img.height); 

Es posible mantener la variable theData de modo que usted no tiene que construirlo en cada clic.

Tenga en cuenta que esto no funcionará si la imagen proviene de otro dominio (y por lo tanto no funcionará si abre su archivo html usando file:// en lugar de http://).

+0

Interesante ... ¿qué razón tienen para bloquear la obtención de los datos de una imagen de otro dominio? – Shmiddty

+2

Esto es para prevenir ataques XSS. Lea [esto] (http://en.wikipedia.org/wiki/Cross-site_scripting) y [este] (https://developer.mozilla.org/en-US/docs/HTTP_access_control). –

+0

Pero, ¿qué podría pasar al intentar recuperar una matriz de enteros? – Shmiddty