I encontraron código que pone una imagen a una lona, entonces la convierte a datos - que podría entonces ser base64 codificadas por ejemplo. Mi idea era llamar esto usando el comando eval en selenio; sin embargo, en mis pruebas, toDataURL arroja un error de seguridad 1000. Parece que está muy cerca de una solución si no es por ese error.
var data, canvas, ctx;
var img = new Image();
img = document.getElementById("yourimageID");
canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0); // everything works up to here
data = canvas.toDataURL(); // this fails ***
var base64Img = data.replace(/^data:image\/(png|jpg);base64,/, "");
Haciendo un poco de investigación he encontrado referencias que no está permitido el uso de toDataURL cuando la imagen es de un dominio diferente. Sin embargo, incluso intenté este código guardando la página, eliminando todo excepto la imagen misma y este script.
Por ejemplo (index.html):
<html><head></head><body>
<img src="local/hard/disk/img.jpg" id="yourimageID">
<script>
// script from above
</script>
</body></html>
El img.jpg y index.html se almacenan localmente, abrir la página en Firefox localmente, aún así obtener un error de seguridad 1000!
Ha pasado tiempo, pero me pregunto, ¿ha encontrado una solución? – johnjohn
no, no tengo .. –
Tengo una solución para esto. Extendí el userscript.js de Selenio. Amplió los derechos de Firefox para capturar capturas de pantalla en userpref.js y usó algo similar a Scott Szretter para capturar la pantalla y enviar los datos de la imagen al servidor. – powtac