Chcę załadować obraz PNG zakodowany w Base64 do elementu Canvas. Mam ten kod:
<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>
W Chrome 8 pojawia się błąd: Uncaught TypeError: Type error
A w Firebug Firefoksa to: „Typ obiektu jest niezgodny z oczekiwanym typem parametru skojarzonego z obiektem” kod: „17”
W tym base64 jest czarny kwadrat PNG o wymiarach 5x5px, który utworzyłem w GIMP i zamieniłem go na base64 w programie base64 GNU / Linuksa.
src
, ponieważ powinieneś użyćonload
wywołania zwrotnego, aby upewnić się, że obraz został załadowany. 50% moich testów zakończyło się niepowodzeniem, ponieważ ładowanie obrazu nie zostało zakończone.