Estou experimentando um pouco com o novo elemento canvas em HTML.
Eu simplesmente quero adicionar uma imagem à tela, mas não funciona por algum motivo.
Eu tenho o seguinte código:
HTML
<canvas id="viewport"></canvas>
CSS
canvas#viewport { border: 1px solid white; width: 900px; }
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';
context.drawImage(base_image, 100, 100);
}
A imagem existe e não recebo erros de JavaScript. A imagem simplesmente não é exibida.
Deve ser algo muito simples que senti falta ...
javascript
html
canvas
PeeHaa
fonte
fonte
context.drawImage(base_image, 0, 0, 200, 200);
. Isso tiraria base_img da posição 0px, com área de desenho de 200x200px.new Image
e me perguntando por que sempre estava me mostrando uma imagem anterior. Acontece que mesmo que eu esteja carregando uma imagem de uma variável, ainda tenho que esperaronload
que aconteça. Obrigado!aqui está o código de amostra para desenhar a imagem na tela
No código acima, selectedImage é um controle de entrada que pode ser usado para navegar pela imagem no sistema. Para obter mais detalhes sobre o código de amostra para desenhar a imagem na tela, mantendo a proporção:
http://newapputil.blogspot.in/2016/09/show-image-on-canvas-html5.html
fonte
No meu caso, me enganei com os parâmetros da função, que são:
Se você espera que eles sejam
você colocará a imagem fora da tela com os mesmos efeitos descritos na pergunta.
fonte
Você tem que usar .onload
Aqui está o porquê
Se você estiver carregando a imagem primeiro depois que a tela já tiver sido criada, a tela não poderá passar todos os dados da imagem para desenhar a imagem. Então você precisa primeiro carregar todos os dados que vieram com a imagem e então você pode usar drawImage ()
fonte