在Nodejs中将base64 png转换为jpeg图像

时间:2017-02-14 05:49:51

标签: javascript node.js image fabricjs node-canvas

我在 Nodejs 中使用 FabricJS 模块。有一个Canvas我试图导出为jpeg,但它不会(给我一个艰难的时间)。我得到的只是 base64 png 数据。

开头的数据
data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t.....

在nodejs中我是否可以将此图像转换为jpeg?我搜索了很多但无法获得解决方案

2 个答案:

答案 0 :(得分:4)

您可以使用png-to-jpeg模块。假设'data'是字符串形式:

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));

答案 1 :(得分:-2)

好吧,因为我是专业的Google员工(只是kiding),我找到了适合你的东西,首先,你必须安装ATOB for NodeJS,现在,只需用它来解码base64字符串,就像这样:

(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!");
   }); 
}());

实际上,我没有使用NodeJS,所以我不能告诉你更多,我希望它能解决你的问题!