"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que minha imagem em tela não desenha? A importância do carregamento assíncrono de imagens.

Por que minha imagem em tela não desenha? A importância do carregamento assíncrono de imagens.

Publicado em 2024-11-08
Navegar:554

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

Aguardando o carregamento da imagem antes de desenhar

Ao tentar adicionar uma imagem a uma tela, é crucial garantir que a imagem seja carregada antes tentando desenhá-lo. O problema que você encontrou em seu código é devido à natureza assíncrona do carregamento da imagem.

Para resolver esse problema, você precisa adicionar uma função de retorno de chamada ao evento onload da imagem. Esta função de retorno de chamada será executada quando a imagem terminar de carregar, garantindo que os dados da imagem estejam disponíveis antes de você tentar desenhá-la.

O código corrigido abaixo aguardará o carregamento da imagem antes de desenhá-la na tela :

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);
  };
}
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3