2012-09-26 11 views

risposta

7

No, non è possibile.

Ma ottenere l'imageData può essere fatto con una tela in memoria, che è facile e veloce:

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

Si può mantenere la variabile theData in modo che non c'è bisogno di costruire ad ogni clic.

Si noti che questo non funzionerà se l'immagine proviene da un altro dominio (e quindi non funzionerà se si apre il file html utilizzando file:// anziché http://).

+0

Interessante ... quale motivo devono bloccare il recupero dei dati di immagine di un'immagine da un altro dominio? – Shmiddty

+2

Questo serve per prevenire attacchi XSS. Leggi [questo] (http://en.wikipedia.org/wiki/Cross-site_scripting) e [questo] (https://developer.mozilla.org/en-US/docs/HTTP_access_control). –

+0

Ma cosa potrebbe accadere quando si tenta di recuperare una matrice di numeri interi? – Shmiddty

Problemi correlati