在Nodejs中将base64 png转换为jpeg图像
Posted
技术标签:
【中文标题】在Nodejs中将base64 png转换为jpeg图像【英文标题】:Convert base64 png to jpeg image in Nodejs 【发布时间】:2017-07-02 07:23:31 【问题描述】:我在 Nodejs 中使用 FabricJS 模块。我正在尝试将 Canvas 导出为jpeg
,但它不会(让我很难过)。我得到的只是 base64 png 数据。
以
开头的数据data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t.....
在 nodejs 中无论如何我可以将此图像转换为 jpeg 吗?我google了很多,但找不到解决办法
【问题讨论】:
【参考方案1】:您可以使用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));
【讨论】:
【参考方案2】:好吧,因为我是专业的 Googler(开玩笑?),我为你找到了一些东西,首先,你必须安装 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,所以不能多说,希望能解决你的问题!
【讨论】:
这是原生 atob 函数的 polyfill,用于将 base64 字符串转换为二进制,但不能解决 OP 提出的问题。以上是关于在Nodejs中将base64 png转换为jpeg图像的主要内容,如果未能解决你的问题,请参考以下文章
在 Javascript 中将 PDF 转换为 Base64 编码的字符串
在 Python 3.9.6 中将 b 字符串转换为 png