为了账号安全,请及时绑定邮箱和手机立即绑定

NodeJS编写base64图像文件

NodeJS编写base64图像文件

MYYA 2019-11-28 10:57:20
我的NodeJS服务器收到一个图片base64编码。data:image/jpeg;base64,/9j/4QCcRXhpZgAASUkqAAgAAAA ... CiiigD//Z收到的数据应另存为jpg。因此,我使用了Buffer和FileSystemWriter:var imageBuffer = new Buffer(data, 'base64'); //console = <Buffer 75 ab 5a 8a ...fs.writeFile("test.jpg", imageBuffer, function(err) { //... });fs.writeFile不会调用错误。jpeg文件已保存,但无法打开。图像查看器说:File is damaged or too big.原始文件大6kb,新文件大7kb。
查看完整描述

3 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

另一种方法是在去除元信息后fs.writeFile与编码选项一起使用base64。


var image = 'data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAA..kJggg==';


var data = image.replace(/^data:image\/\w+;base64,/, '');


fs.writeFile(fileName, data, {encoding: 'base64'}, function(err){

  //Finished

});


查看完整回答
反对 回复 2019-11-28
?
Helenr

TA贡献1780条经验 获得超3个赞

试试这个简单的方法


 var imgData = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA..kJggg==';

var base64Data = imgData.replace(/^data:image\/png;base64,/, "");



require("fs").writeFile("out.png", base64Data, 'base64', 

function(err, data) {

if (err) {

    console.log('err', err);

}

console.log('success');


});

focuse在这里1)data:image/png;base有png 2)replace(/^data:image\/png;在这里也png和名称必须与3保存)writeFile("out.png png


查看完整回答
反对 回复 2019-11-28
  • 3 回答
  • 0 关注
  • 732 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信