首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否将数据URI保存为图像?

问是否将数据URI保存为图像?
EN

Stack Overflow用户
提问于 2016-04-13 06:14:52
回答 3查看 7.9K关注 0票数 6

在节点服务器上,我希望将上传的datauri数据保存为图像。为此,我尝试解码此png的内容-

代码语言:javascript
复制
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAIAAAFlEcHbAAAAB3RJTUUH1gMWFjk7nUWcXQAAAAlwSFlzAABOIAAATiABFn2Z3gAAAARnQU1BAACxjwv8YQUAAAAeSURBVHjaY7h79y7DhAkTGIA04/Tp0xkYGJ49ewYAgYwLV/R7bDQAAAAASUVORK5CYII=

并将其保存为.png扩展名。看起来还有更多的东西。如何解码datauri并将其另存为文件?

EN

回答 3

Stack Overflow用户

发布于 2016-08-13 00:38:51

我已经创建了一个与Node.js一起使用的库,它可以帮助对数据URI方案进行编码和解码。我相信它可以帮助你,检查:

https://github.com/DiegoZoracKy/image-data-uri

使用这个库,在您的例子中,代码将是:

代码语言:javascript
复制
'use strict';

const ImageDataURI = require('image-data-uri');

const dataURI = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAIAAAFlEcHbAAAAB3RJTUUH1gMWFjk7nUWcXQAAAAlwSFlzAABOIAAATiABFn2Z3gAAAARnQU1BAACxjwv8YQUAAAAeSURBVHjaY7h79y7DhAkTGIA04/Tp0xkYGJ49ewYAgYwLV/R7bDQAAAAASUVORK5CYII=';
const fileName = 'decoded-image.png';

ImageDataURI.outputFile(dataURI, filePath);
票数 10
EN

Stack Overflow用户

发布于 2016-04-13 06:30:36

您可以使用以下代码将数据uri转换为blob:

代码语言:javascript
复制
function dataURItoBlob(dataURI) {
    var byteStr;
    if (dataURI.split(',')[0].indexOf('base64') >= 0)
        byteStr = atob(dataURI.split(',')[1]);
    else
        byteStr = unescape(dataURI.split(',')[1]);

    var mimeStr = dataURI.split(',')[0].split(':')[1].split(';')[0];

    var arr= new Uint8Array(byteStr.length);
    for (var i = 0; i < byteStr.length; i++) {
        arr[i] = byteStr.charCodeAt(i);
    }

    return new Blob([arr], {type:mimeStr});
}

然后,您可以将此blob数据附加到from data,并将其作为文件上传:

代码语言:javascript
复制
var blob = dataURItoBlob(dataURI);
var fd = new FormData(document.forms[0]);
fd.append("image", blob);
票数 1
EN

Stack Overflow用户

发布于 2016-04-13 08:39:25

我尝试使用atob解码数据,并将其另存为png文件。相反,我将其保存为base64编码,但在写缓冲区中指定编码。

fs.writeFileSync('tmp/myfile.png', new Buffer(data, 'base64'));

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

https://stackoverflow.com/questions/36585018

复制
相关文章

相似问题

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