2017-02-14 70 views
1

我正在使用FabricJS模塊在Nodejs。有一個畫布我試圖導出爲jpeg,但它不會(給我一個困難的時間)。我得到的全部數據是base64 png數據。將base64 png轉換爲Nodejs中的jpeg圖像

數據開始像

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

反正在我可以把這個圖像到jpeg的NodeJS?我GOOGLE了很多,但無法獲得解決方案

回答

2

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

這樣做的工作。謝謝 – Abhinav

-2

好吧,因爲我是一個專業的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!"); 
    }); 
}()); 

其實,所以我不能告訴你更多,我希望它能夠解決您的問題!

+0

這是一個用於本地atob函數的polyfill,用於將base64字符串轉換爲二進制,這不能解決OP詢問的問題。 –

相關問題