Heim  >  Artikel  >  Web-Frontend  >  Warum zeichnet mein Leinwandbild nicht? Die Bedeutung des asynchronen Ladens von Bildern.

Warum zeichnet mein Leinwandbild nicht? Die Bedeutung des asynchronen Ladens von Bildern.

Susan Sarandon
Susan SarandonOriginal
2024-10-30 12:32:52467Durchsuche

Why Does My Canvas Image Not Draw? The Importance of Asynchronous Image Loading.

Vor dem Zeichnen auf das Laden des Bildes warten

Wenn Sie versuchen, ein Bild zu einer Leinwand hinzuzufügen, ist es wichtig sicherzustellen, dass das Bild vorher geladen wird versuche es zu zeichnen. Das Problem, auf das Sie in Ihrem Code gestoßen sind, ist auf die asynchrone Natur des Bildladens zurückzuführen.

Um dieses Problem zu beheben, müssen Sie dem Onload-Ereignis des Bildes eine Rückruffunktion hinzufügen. Diese Rückruffunktion wird ausgeführt, wenn das Bild vollständig geladen ist, um sicherzustellen, dass die Bilddaten verfügbar sind, bevor Sie versuchen, es zu zeichnen.

Der unten korrigierte Code wartet, bis das Bild geladen ist, bevor er es auf die Leinwand zeichnet :

<code class="js">var canvas = document.getElementById('viewport'),
    context = canvas.getContext('2d');

make_base();

function make_base() {
  base_image = new Image();
  base_image.src = 'img/base.png';
  base_image.onload = function() {
    context.drawImage(base_image, 100, 100);
  };
}</code>

Das obige ist der detaillierte Inhalt vonWarum zeichnet mein Leinwandbild nicht? Die Bedeutung des asynchronen Ladens von Bildern.. 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