我目前正在尝试将相当大的画布(1920x1080)转换为blob。使其可供用户查看和下载。
我第一次使用toDataURI
,但这并没有真正起作用,因为画布是大而详细的(Atleast I guess)。
我现在管理创建blob但没有成功复制画布的任何内容。我目前正在使用以下代码:
var canvas = document.querySelector(".test-screenshot")
var ctx = canvas.getContext("2d");
function f(arg)
{ var y = document.createElement("img") || new Image();
y.onload = function() { ctx.drawImage(y, 0, 0) };
y.src = arg
}
for (var i=0; i<elm.length; i++)
f(elm[i].m._images[elm[i].m._value])
// At this point the previously created canvas is filled correctly.
canvas.toBlob(function(blob) {
var newImg = document.createElement("img"),
url = URL.createObjectURL(blob);
newImg.onload = function() {
// no longer need to read the blob so it's revoked
URL.revokeObjectURL(url);
};
newImg.src = url;
document.body.appendChild(newImg)
});
我首先开始自己的工作,但从未成功,目前仍然无法使用MDN示例。
我总是最终得到以下我认为很好的网址:
blob:http://localhost/2b216f91-4326-4df2-9c71-1c8d5e4c3dad
如果有人能指出我错过了什么?