[英]fabric.js - toDataURL shows blank page when there is image on canvas
[英]Blank page gets downloaded (toDataURL())
assets.forEach(function(v) {
var canvas = document.createElement('canvas');
canvas.id = "canvas" + v.name;
canvas.width = 200;
canvas.height = 150;
var ctx = canvas.getContext("2d");
var img = new Image();
img.src = 'file:///path/to/file/' + v.name;
img.onload = function () {
ctx.drawImage(img, 0, 0, img.width, img.height-256, 0, 0, 200, 150);
};
// This is working. Renders correctly and visible.
$('#test2').append(canvas);
chrome.downloads.download({
url: canvas.toDataURL(),
filename: 'file:///path/to/file/test-' + canvas.id + '.png'
});
});
大家好,這是我上面的代碼。 我想下載的是img
的較小版本的img
。 一切正常,創建了畫布,將其附加到元素$('#test2').append(canvas);
可以看到它$('#test2').append(canvas);
。 但是當我要下載它時,它會下載空白。
我怎樣才能解決這個問題?
調用download
方法Image.onload
處理程序的時候download
方法被調用, Image
還沒有繪制
assets.forEach(function(v) {
var canvas = document.createElement('canvas');
canvas.id = "canvas" + v.name;
canvas.width = 200;
canvas.height = 150;
var ctx = canvas.getContext("2d");
var img = new Image();
img.src = 'file:///path/to/file/' + v.name;
img.onload = function() {
ctx.drawImage(img, 0, 0, img.width, img.height - 256, 0, 0, 200, 150);
$('#test2').append(canvas);
chrome.downloads.download({
url: canvas.toDataURL(),
filename: 'file:///path/to/file/test-' + canvas.id + '.png'
});
};
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.