首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用FileSaver.js保存PNG文件

用FileSaver.js保存PNG文件
EN

Stack Overflow用户
提问于 2015-10-21 01:23:40
回答 1查看 12.8K关注 0票数 9

我正在尝试使用FileSaver.js下载我的express应用程序提供的PNG文件。这些文件是作为base64编码的字符串发送的,但是当我尝试使用FileSaver.js保存它们时,它们就被损坏了。

这就是我试图拯救他们的方式:

代码语言:javascript
复制
var blob = new Blob([base64encodedString], {type: "data:image/png;base64"});
saveAs(blob, "image.png");

我也使用了这种保存图像的方法,但是如果base64encodedString变得太大,它就不起作用了:

代码语言:javascript
复制
var download = document.createElement('a');
download.href = 'data:image/png;base64,' + base64encodedString;  
download.download = 'reddot.png';
download.click();

我在FileSaver.js上做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2015-10-21 02:13:10

我发现你可能想先把它写到画布上。

Click Here

代码语言:javascript
复制
base_image = new Image();
base_image.src = Base64String

画布变成一个斑点

代码语言:javascript
复制
var canvas = document.getElementById('YourCanvas');
context = canvas.getContext('2d');
// Draw image within
context.drawImage(base_image, 0,0);

然后,您可以使用FileSaver.js保存它

并最终保存它

代码语言:javascript
复制
x_canvas.toBlob(function(blob) {
saveAs(blob, "screenshot.png");
}, "image/png");

在那篇文章 Click Here For Fiddle 中也为此创建了一个很好的小提琴

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33242959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档