我尝试构建一个JavaScript代码,以便在画布上绘制图像,但是我不知道哪里出了问题。那是我的代码:
<body>
<canvas id = "my_canvas"></canvas>
<script>
function setup(){
var canvas = document.getElementById('my_canvas');
var ctx = canvas.getContext('2d');
canvas.width = 800;
canvas.height = 600;
var image = new Image();
image.src = 'a.png';
ctx.drawImage(image,5,5);
};
window.onload = setup;
setup();
</script>
问题是,如果我在代码setup();
末尾添加一行代码,则图像可以正确绘制,我不知道为什么。
谢谢。
问题是image
异步加载,因此,如果您设置源并立即绘制它,则图像位尚不可用,并且未绘制任何内容。
您必须等待图像加载后才能在画布上绘制图像。
将代码更改为
image.onload = function() {
ctx.drawImage(image, 5, 5);
};
image.src = "a.png";
应该能按预期工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句