我尝试将SVG转换为PNG。第一次运行时很好,但第二次就崩溃了。我不知道这是怎么发生的。我的代码如下:
function upload(file) {
var imageType = /image.*/;
if (file.type.match(imageType)) {
var reader = new FileReader();
reader.onload = function(e) {
fileDisplayArea.innerHTML = "";
var img = new Image();
img.src = reader.result;
fileDisplayArea.appendChild(img);
img.onload = function() {
var canvas = document.createElement('canvas');
//var canvas = document.querySelector("canvas");
canvas.width = img.width;
canvas.height = img.height;
var context = canvas.getContext("2d");
context.drawImage(img, 0, 0);
var a = document.createElement("a");
a.download = "image.png";
a.href = canvas.toDataURL("image/png");
a.click();
};
}
reader.readAsDataURL(file);
} else {
fileDisplayArea.innerHTML = "File not supported!"
}
}
错误看起来像这样
我也尝试了获取blob url但不成功。我认为问题出在img.onload函数上,但我不知道出了什么问题...请帮帮我。