3

我在Nodejs中使用FabricJS模块。我正在尝试导出一个 Canvas,但它不会(让我很难过)。我得到的只是base64 png数据。jpeg

开始像的数据

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

无论如何在nodejs中我可以将此图像转换为jpeg?我用谷歌搜索了很多,但找不到解决方案

4

2 回答 2

5

您可以使用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));
于 2017-02-14T06:43:53.567 回答
-5

好的,因为我是专业的 Google 员工(开玩笑),我为您找到了一些东西,首先,您必须为 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,所以我不能告诉你更多,我希望它能解决你的问题!

于 2017-02-14T06:49:32.813 回答