J'expérimente un peu le nouvel élément canvas en HTML.
Je veux simplement ajouter une image à la toile, mais cela ne fonctionne pas pour une raison quelconque.
J'ai le code suivant:
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);
}
L'image existe et je n'obtiens aucune erreur JavaScript. L'image ne s'affiche tout simplement pas.
Ce doit être quelque chose de vraiment simple que j'ai manqué ...
javascript
html
canvas
PeeHaa
la source
la source
context.drawImage(base_image, 0, 0, 200, 200);
. Cela dessinerait base_img à partir de la position 0px, avec une zone de dessin de 200x200px.new Image
et je me demandais pourquoi il me montrait toujours une image précédente. Il s'avère que même si je charge une image à partir d'une variable, je dois encore attendre queonload
cela se produise. Je vous remercie!voici l'exemple de code pour dessiner une image sur toile-
Dans le code ci-dessus, selectedImage est un contrôle d'entrée qui peut être utilisé pour parcourir l'image sur le système. Pour plus de détails sur l'exemple de code pour dessiner une image sur un canevas tout en conservant le rapport hauteur / largeur:
http://newapputil.blogspot.in/2016/09/show-image-on-canvas-html5.html
la source
Dans mon cas, je me suis trompé sur les paramètres de la fonction, qui sont:
Si vous vous attendez à ce qu'ils soient
vous placerez l'image juste à l'extérieur du canevas avec les mêmes effets que ceux décrits dans la question.
la source
Vous devez utiliser .onload
Voici pourquoi
Si vous chargez l'image d'abord après la création du canevas, le canevas ne pourra pas transmettre toutes les données d'image pour dessiner l'image. Vous devez donc d'abord charger toutes les données fournies avec l'image, puis vous pouvez utiliser drawImage ()
la source