javascript - Canvas drawImage() 不工作

标签 javascript html canvas

此 Javascript 代码在 Canvas 上绘制部分图像:

var img = document.getElementById('img');
var canvas = document.getElementById('can');
//canvas.width = img.width;
//canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);

但是当我取消中间线的注释以设置 Canvas 的宽度和高度时,drawImage() 不起作用。 我应该检查什么才能发现问题?

最佳答案

您需要等待浏览器加载图片

如果图像尚未加载,请使用 onload 事件并将您的代码更改为如下内容:

var img = document.getElementById('img');
var canvas = document.getElementById('can');
var ctx = canvas.getContext("2d");

var callback = function(image) {
   if(!image) image = this;
   canvas.width = img.width;
   canvas.height = img.height;
   ctx.drawImage(image, 0, 0);
}

if(img.complete) { //check if image was already loaded by the browser
   callback(img);
}else {
   img.onload = callback;
}

See this working demo

关于javascript - Canvas drawImage() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18851976/

相关文章:

Javascript Web Audio API AnalyserNode 不工作

Android Canvas 手指绘制

javascript - Phonegap Canvas 低刷新率

JavaScript 点

html - 列布局中的表单 - 输入和标签的意外行为

javascript - jqGrid.info_dialog 不是函数,我必须调用扩展吗?

javascript - QuillJS 选择更改出于某种原因缓存结果

android - 在 android 中保存和检索图像的问题?

javascript - 使用 google maps api 在我自己的服务器上映射

javascript - 在 javascript 的更新序列中使用 mathjax