„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum zeichnet mein Leinwandbild nicht? Die Bedeutung des asynchronen Ladens von Bildern.

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

Veröffentlicht am 08.11.2024
Durchsuche:193

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

Warten auf das Laden des Bildes vor dem Zeichnen

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 :

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);
  };
}
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3