ฉันต้องการโหลดภาพ PNG ที่เข้ารหัสใน Base64 เป็นองค์ประกอบ canvas ฉันมีรหัสนี้:
<html>
<head>
</head>
<body>
<canvas id="c"></canvas>
<script type="text/javascript">
var canvas = document.getElementById("c");
var ctx = canvas.getContext("2d");
data = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oMCRUiMrIBQVkAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAADElEQVQI12NgoC4AAABQAAEiE+h1AAAAAElFTkSuQmCC";
ctx.drawImage(data, 0, 0);
</script>
</body>
</html>
ใน Chrome 8 ฉันได้รับข้อผิดพลาด: Uncaught TypeError: Type error
และใน Firebug ของ Firefox สิ่งนี้: "ประเภทของวัตถุไม่เข้ากันกับประเภทที่คาดไว้ของพารามิเตอร์ที่เกี่ยวข้องกับวัตถุ" code: "17"
ใน base64 นั้นคือสี่เหลี่ยม PNG สีดำขนาด 5x5px ที่ฉันทำใน GIMP และเปลี่ยนเป็น base64 ในโปรแกรม base64 ของ GNU / Linux
src
เนื่องจากคุณควรใช้การonload
โทรกลับเพื่อให้แน่ใจว่ารูปภาพโหลดเสร็จแล้ว 50% ของการทดสอบของฉันล้มเหลวเนื่องจากโหลดรูปภาพไม่เสร็จ