画布返回图像的一半,怎么了?

时间:2019-05-29 22:54:39

标签: javascript file svg canvas jpeg

我的网络上有一个svg图像,我想将其作为JPG返回。 我编写了这段代码,但只返回了一半的svg

downloadJPG(file, name = 'filename') {
  var canvas = document.createElement('canvas');
  var img = new Image();

  var ctx = canvas.getContext('2d');
  var URI = 'data:image/svg+xml;base64,' + btoa(file);

  img.onload = function() {
    ctx.drawImage(img, 0, 0);
    var link = document.createElement('a');
    link.setAttribute('download', nombre + '- qrcode.jpg');
    link.setAttribute('href', canvas.toDataURL(URI));
    link.click();
  }

  img.src = URI;
}

如果我将img附加到元素中,则效果很好,但是如果下载,我只会显示一半的图像。

感谢您的帮助

1 个答案:

答案 0 :(得分:-1)

我相信您可以在示例中使用FileSaver.js,它将更加强大和兼容 https://github.com/eligrey/FileSaver.js/