shiv / shim / sham
Wenn Ihre Bilder bereits geladen sind (oder nicht), kann dieses "Werkzeug" nützlich sein:
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);
}}
);
.. aber warum?
Dies hat den Vorteil, dass die "bereits geladenen" Bilddaten verwendet werden, sodass keine zusätzliche Anforderung erforderlich ist. Zusätzlich kann der Endbenutzer (Programmierer wie Sie) das CORS entscheiden und / oder mime-type
und quality
-OR- Sie können diese Argumente / Parameter weglassen, wie in der MDN- Spezifikation hier beschrieben .
Wenn Sie dieses JS geladen haben (bevor es benötigt wird), konvertieren Sie zu dataURL
so einfach wie:
Beispiele
HTML
<img src="/yo.jpg" onload="console.log(this.toDataURL('image/jpeg'))">
JS
console.log(document.getElementById("someImgID").toDataURL());
GPU-Fingerabdruck
Wenn Sie sich Sorgen über die "Genauigkeit" der Bits machen, können Sie dieses Tool an Ihre Bedürfnisse anpassen, wie in der Antwort von @ Kaiido angegeben.