2017-02-14 66 views
1

我正在使用FabricJS模块在Nodejs。有一个画布我试图导出为jpeg,但它不会(给我一个困难的时间)。我得到的全部数据是base64 png数据。将base64 png转换为Nodejs中的jpeg图像

数据开始像

data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t..... 

反正在我可以把这个图像到jpeg的NodeJS?我GOOGLE了很多,但无法获得解决方案

回答

2

您可以使用png-to-jpeg模块。假设“数据”是字符串形式:

const fs = require("fs"); 

const pngToJpeg = require('png-to-jpeg'); 
const imgStr = 'data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t.....'; 

const buffer = new Buffer(imgStr.split(/,\s*/)[1],'base64'); 
pngToJpeg({quality: 90})(buffer).then(output => fs.writeFileSync("./some-file.jpeg", output)); 
+0

这样做的工作。谢谢 – Abhinav

-2

好吧,因为我是一个专业的Google用户(只是kiding),我找到了你,首先,你必须安装ATOB for NodeJS,现在,只用它来的base64字符串解码,像这样:,我没有使用的NodeJS

(function() { 
    "use strict"; 

    var atob = require('atob'); 
    var b64 = ; //your base64 string 
    var bin = atob(b64); 
    var fs = require('fs'); 
    fs.writeFile("./test.jpg", bin, function(err) { 
    if(err) { 
     return console.log(err); 
    } 

     console.log("The file was saved!"); 
    }); 
}()); 

其实,所以我不能告诉你更多,我希望它能够解决您的问题!

+0

这是一个用于本地atob函数的polyfill,用于将base64字符串转换为二进制,这不能解决OP询问的问题。 –

相关问题