【问题标题】:Image saved says invalid image. What's wrong with this code?保存的图像说无效图像。这段代码有什么问题?
【发布时间】:2019-03-17 15:44:26
【问题描述】:

我一直在尝试使用 domtoimage.js 和 filesaver.js 将 div 元素保存为图像。图像保存得很好,但里面什么都没有。说图片无效。

var image = domtoimage.toBlob(document.getElementById('form')); 
var blob = new Blob([image], {type: "image/png"});
saveAs(blob, 'myimage.png');

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript png blob filesaver.js


    【解决方案1】:

    文档显示了此示例,这意味着 toBlob 函数返回一个承诺,因此您必须使用 then。

    domtoimage.toBlob(document.getElementById('my-node'))
      .then(function (blob) {
        window.saveAs(blob, 'my-node.png');
      });
    

    所以你的代码应该变成

    domtoimage.toBlob(document.getElementById('form'))
      .then(function (blob) {
          window.saveAs(blob, 'myimage.png');
      });
    

    【讨论】:

    • 感谢您的回复。我已经尝试过上述方式,它适用于计算机和安卓设备。但是,在 ios (safari/chrome) 中它不起作用。据我了解,它应该在新窗口中打开图像?但它只是不这样做。我尝试原始代码的原因是它成功地在 ios (safari/chrome) 中打开了一个新窗口,但不显示任何图像,只是一个小框。关于如何让图像在 ios 的新标签页中打开的任何想法?
    • 很抱歉听到这个消息。当您从 Web 保存文件时,IOS 非常严格。同样在 domtoimage github 页面上,它说他们不支持 Safari。您必须对此进行进一步调查。可能有解决方法。
    猜你喜欢
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 2015-12-08
    • 2016-12-08
    • 1970-01-01
    相关资源
    最近更新 更多