我正在使用FabricJS模塊在Nodejs。有一個畫布我試圖導出爲jpeg
,但它不會(給我一個困難的時間)。我得到的全部數據是base64 png數據。將base64 png轉換爲Nodejs中的jpeg圖像
數據開始像
data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t.....
反正在我可以把這個圖像到jpeg的NodeJS?我GOOGLE了很多,但無法獲得解決方案
我正在使用FabricJS模塊在Nodejs。有一個畫布我試圖導出爲jpeg
,但它不會(給我一個困難的時間)。我得到的全部數據是base64 png數據。將base64 png轉換爲Nodejs中的jpeg圖像
數據開始像
data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t.....
反正在我可以把這個圖像到jpeg的NodeJS?我GOOGLE了很多,但無法獲得解決方案
您可以使用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));
好吧,因爲我是一個專業的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!");
});
}());
其實,所以我不能告訴你更多,我希望它能夠解決您的問題!
這是一個用於本地atob函數的polyfill,用於將base64字符串轉換爲二進制,這不能解決OP詢問的問題。 –
這樣做的工作。謝謝 – Abhinav