shiv / shim / sham
Si sus imágenes ya están cargadas (o no), esta "herramienta" puede ser útil:
Object.defineProperty
(
HTMLImageElement.prototype,'toDataURL',
{enumerable:false,configurable:false,writable:false,value:function(m,q)
{
let c=document.createElement('canvas');
c.width=this.naturalWidth; c.height=this.naturalHeight;
c.getContext('2d').drawImage(this,0,0); return c.toDataURL(m,q);
}}
);
.. ¿pero por qué?
Esto tiene la ventaja de utilizar los datos de imagen "ya cargados", por lo que no se necesita ninguna solicitud adicional. Adicionalmente permite que el usuario final (programador como usted) decidir las CORS y / o mime-type
e quality
-O- se puede dejar de lado estos argumentos / parámetros tal como se describe en el MDN especificación aquí .
Si tiene este JS cargado (antes de cuando sea necesario), la conversión a dataURL
es tan simple como:
ejemplos
HTML
<img src="/yo.jpg" onload="console.log(this.toDataURL('image/jpeg'))">
JS
console.log(document.getElementById("someImgID").toDataURL());
Huella digital GPU
Si le preocupa la "precisión" de los bits, puede modificar esta herramienta para que se ajuste a sus necesidades según lo dispuesto por la respuesta de @ Kaiido.