shiv / shim / sham
หากรูปภาพของคุณโหลดแล้ว (หรือไม่) เครื่องมือ "" นี้อาจมีประโยชน์:
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);
}}
);
.. แต่ทำไม
นี่เป็นข้อได้เปรียบของการใช้ข้อมูลภาพที่ "โหลดแล้ว" ดังนั้นจึงไม่จำเป็นต้องมีคำขอพิเศษ Aditionally จะช่วยให้ผู้ใช้ปลายทาง (โปรแกรมเมอร์เช่นคุณ) ตัดสินใจธและ / หรือmime-type
และquality
คัดลอกคุณสามารถออกจากการขัดแย้งเหล่านี้ / พารามิเตอร์ที่อธิบายไว้ในMDNสเปคที่นี่
หากคุณโหลด JS นี้ (ก่อนหน้านี้เมื่อต้องการ) การแปลงdataURL
เป็นไฟล์ง่ายๆนั้น:
ตัวอย่าง
HTML
<img src="/yo.jpg" onload="console.log(this.toDataURL('image/jpeg'))">
JS
console.log(document.getElementById("someImgID").toDataURL());
พิมพ์ลายนิ้วมือ GPU
หากคุณกังวลเกี่ยวกับ "ความแม่นยำ" ของบิตคุณสามารถแก้ไขเครื่องมือนี้เพื่อให้เหมาะกับความต้องการของคุณตามคำตอบของ @ Kaiido