Maison  >  Article  >  interface Web  >  Pourquoi mon image sur toile ne s'affiche-t-elle pas ? L'importance du chargement d'images asynchrone.

Pourquoi mon image sur toile ne s'affiche-t-elle pas ? L'importance du chargement d'images asynchrone.

Susan Sarandon
Susan Sarandonoriginal
2024-10-30 12:32:52466parcourir

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

Attendre le chargement de l'image avant de dessiner

Lorsque vous essayez d'ajouter une image à un canevas, il est crucial de vous assurer que l'image est chargée avant essayer de le dessiner. Le problème que vous avez rencontré dans votre code est dû à la nature asynchrone du chargement de l'image.

Pour résoudre ce problème, vous devez ajouter une fonction de rappel à l'événement onload de l'image. Cette fonction de rappel sera exécutée une fois le chargement de l'image terminé, garantissant que les données de l'image sont disponibles avant d'essayer de la dessiner.

Le code corrigé ci-dessous attendra que l'image se charge avant de la dessiner sur le canevas. :

<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>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn