Load image from url and draw to HTML5 Canvas

后端 未结 3 1596
夕颜
夕颜 2020-12-01 11:27

I am having trouble loading an image from a url in javascript. The code below works, but I don\'t want to have to have the image loaded from html. I want to load the image f

相关标签:
3条回答
  • 2020-12-01 12:04

    Simple, just create an image object in JavaScript, set the src, and wait for the load event before drawing.

    Working Example:

    var c = document.getElementById("myCanvas");
    var ctx = c.getContext("2d");
    var img = new Image();
    img.onload = function() {
        ctx.drawImage(img, 0, 0);
    };
    img.src = 'https://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png';
    <canvas id="myCanvas"></canvas>

    0 讨论(0)
  • 2020-12-01 12:13

    In case you want a Promise version instead of the onload approach:

    let ctx = document.querySelector("#myCanvas").getContext("2d");
    
    async function drawImage(url) {
      let img = new Image();
      await new Promise(r => img.onload=r, img.src=url);
      ctx.drawImage(img, 0, 0);
    }
    
    drawImage("https://example.com/image.png");
    
    0 讨论(0)
  • 2020-12-01 12:16

    Easy as this...

    var img=new Image();
    img.onload=start;
    img.src="myImage.png";
    function start(){
        ctx.drawImage(img,0,0);
    }
    
    0 讨论(0)
提交回复
热议问题