Heim  >  Artikel  >  Web-Frontend  >  Warum erscheint mein Bild nicht auf der HTML5-Leinwand, obwohl mein Code korrekt zu sein scheint?

Warum erscheint mein Bild nicht auf der HTML5-Leinwand, obwohl mein Code korrekt zu sein scheint?

DDD
DDDOriginal
2024-10-30 11:02:02300Durchsuche

Why is my image not appearing on the HTML5 canvas, even though my code seems correct?

Bild auf HTML5-Leinwand zeichnen

Sie versuchen, ein Bild zu einer Leinwand hinzuzufügen, aber es gelingt Ihnen nicht. Lassen Sie uns das Geheimnis hinter diesem schwer fassbaren Unterfangen lüften.

Ihr Code scheint solide zu sein, das Problem muss also woanders liegen. Der entscheidende Schritt, den Sie verpassen, besteht darin, sicherzustellen, dass das Bild geladen ist, bevor Sie versuchen, es zu zeichnen.

Hier ist eine überarbeitete Lösung:

<code class="html"><canvas id="viewport"></canvas></code>
<code class="css">canvas#viewport { border: 1px solid white; width: 900px; }</code>
<code class="javascript">var canvas = document.getElementById('viewport'),
    context = canvas.getContext('2d');

function make_base() {
  var base_image = new Image();
  base_image.src = 'img/base.png';
  base_image.onload = function() {
    context.drawImage(base_image, 0, 0);
  };
}

make_base();</code>

Durch Hinzufügen eines Onload-Ereignisses Wenn Sie sich das Bild anhören, verzögern Sie die Zeichnung, bis das Bild vollständig geladen ist, und stellen so sicher, dass es auf der Leinwand vorhanden ist.

Das obige ist der detaillierte Inhalt vonWarum erscheint mein Bild nicht auf der HTML5-Leinwand, obwohl mein Code korrekt zu sein scheint?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn