简体   繁体   中英

Why doesn't my image draw in Canvas ? No error in my code

I got this sample of code which i was working on it, i got a trouble with because my image angular doesn't appear on the web browser, i can't understand what's my mistake, thanks in advance for your help.

<html>

<script>

var canvas,context;

function init(){


canvas = document.getElementById('canvas');
context = canvas.getContext('2d');
monImg = new Image();
monImg.src="img/angular.png";
context.drawImage(monImg,300,300);


}


window.onload=init();


</script>

 <body>
  <canvas id="canvas" width="1920" height="1080"></canvas>
 </body>

See this question .

You have to wait for the image to load before you do anything with it. The easiest way is:

monImg = new Image();
monImg.onLoad = function() {
    context.drawImage(monImg, 300, 300);
}
monImg.src = "img/angular.png";

You need to add a handler for the Image onload where you call drawImage() such as:

 <html>

 <body>
  <canvas id="canvas" width="1920" height="1080"></canvas>
 </body>

<script>

var canvas,context;

function init(){

canvas = document.getElementById('canvas');
context = canvas.getContext('2d');
monImg = new Image();
monImg.src="img/angular.png";
monImg.onload = function() {
    context.drawImage(monImg,300,300);
}

}


window.onload=init();


</script>

 </html>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM