javascript - Canva 图像有时使用 drawImage() 方法不显示图像?
问题描述
我只想使用drawImage()方法在画布上绘制图像。但有时会发生图像未绘制的情况。即使我使用 onload 事件,它仍然无法显示图像。在我问我的问题之前,我只想准确地说图像是有时绘制的,而不是有时绘制的。那么这个问题的原因是什么,我该如何解决或修复它。
let imagez = new Image();
imagez.src="photo/run.png";
context.drawImage(imagez,10,10,50,60); // it does not draw the image always. why?
I expect the image to be drawn whenever I refresh the page
解决方案
这很可能是因为在实际图像完全加载之前调用了drawImage()方法。在调用 drawImage() 之前等待它完成加载。
var canvas = document.createElement("canvas");
document.body.appendChild(canvas);
canvas.width = 400;
canvas.height = 300;
var context = canvas.getContext("2d");
let imagez = new Image();
imagez.onload = function() {
context.drawImage(imagez, 10, 10, 50, 60);
}
imagez.src = "https://picsum.photos/400/300";
推荐阅读
- python - How to get a variable loaded from .Xresources?
- python - 是否可以从消息不和谐 python 中获取某人的 IP 地址
- amazon-web-services - AWS API >> 如何公开一种方法并使用 API 密钥对其余方法进行身份验证?
- javascript - 如何保持部署在谷歌云应用引擎上的 node.js 应用的统计信息并保持我的数据持久化
- c# - 为 Window1 中 ViewModel 的 TextBlock.Text 赋值,并将 TextBlock.Text 的值用于 Window2
- sql - 在 sql oracle 中有效查找已删除的位置
- javascript - React 路由器:如何导入函数
- java - 编写代码来处理单词列表并修剪单词中的任何空格
- angular - ng lint --fix=true 不能修复 linting 错误
- python - LinearSVC 和 roc_auc_score() 用于多类问题