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

3
我是在Nodejs中使用FabricJS模块。有一个画布我想要导出为jpeg格式,但它不行(让我头疼)。我得到的只是base64 png格式的数据。
数据类似于:
data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t.....

有没有办法在nodejs中将这个图像转换为jpeg格式?我搜索了很多,但没有找到解决方案。
2个回答

6
您可以使用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));

-6

好的,因为我是一个专业的谷歌搜索者(开玩笑的),我为你找到了一些东西,首先,你需要安装NodeJS的ATOB,现在,只需使用它来解码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,所以除此之外我无法提供更多信息。但愿这可以解决你的问题!

1
这是一个polyfill,用于本地的atob函数,该函数用于将base64字符串转换为二进制,但并不能解决OP所提出的问题。 - Tom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接