猿问

NodeJS编写base64图像文件

我的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。


MYYA
浏览 811回答 3
3回答

温温酱

另一种方法是在去除元信息后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){&nbsp; //Finished});

Helenr

试试这个简单的方法&nbsp;var imgData = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA..kJggg==';var base64Data = imgData.replace(/^data:image\/png;base64,/, "");require("fs").writeFile("out.png", base64Data, 'base64',&nbsp;function(err, data) {if (err) {&nbsp; &nbsp; 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
随时随地看视频慕课网APP

相关分类

Node.js
我要回答