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
Simple, just create an image object in JavaScript, set the src
, and wait for the load event before drawing.
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>
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");
Easy as this...
var img=new Image();
img.onload=start;
img.src="myImage.png";
function start(){
ctx.drawImage(img,0,0);
}