【发布时间】:2016-01-20 21:43:51
【问题描述】:
我正在尝试创建画布绘图,但是当我使用 toDataUrl 时,它返回空的画布文件。
这可能是因为 toDataUrl 在我的图像加载之前触发了,所以我该如何更改它,以便我尝试加载的图像是画布文件的一部分。
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var img = new Image();
img.addEventListener("load", function() {
ctx.drawImage(img, 0, 0, 800, 420);
}, false);
img.src = "images/quizes/sim.png";
var img1 = new Image();
img.addEventListener("load", function() {
ctx.drawImage(img1, 0, 0, 320, 320);
}, false);
ctx.drawImage(img1, 0, 0, 320, 320);
img1.src = "images/users/alfred.jpg";
var img2 = new Image();
img.addEventListener("load", function() {
ctx.drawImage(img2, 480, 0, 320, 320);
}, false);
img2.src = "images/users/brynjar.jpg";
var dataURL = canvas.toDataURL();
$.ajax({
type: "POST",
url: "script.php",
data: {
imgBase64: dataURL
}
}).done(function(o) {
console.log('saved');
});
【问题讨论】:
-
你需要等待所有图片加载完毕。
-
要么使用计数器。图片加载,向上计数器,看看是否全部加载。如果是,请致电下一步或查看承诺。
-
@epascarello 的评论你看懂了吗?
标签: javascript html canvas