2017-02-14 1 views
1

에 JPEG 이미지로 PNG base64로 변환합니다. jpeg으로 내보내기를 시도하고있는 캔버스가 있지만 (힘든 시간을내어) 실망합니다. 내가받는 것은 base64 png 데이터입니다.내가 <strong>Nodejs</strong>에 <strong>FabricJS</strong> 모듈을 사용하고 Nodejs

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

처럼 시작

데이터는 내가이 이미지는 JPEG로 변환 할 수 있습니다 nodejs에서 어쨌든이 있나요? 나는 많이 봤지만 해결책을 얻을 수 없었다.

답변

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

좋아, 내가 (단지 kiding) 전문 Google 사용자이기 때문에, 내가 당신을 위해 뭔가를 발견, 첫째로, 당신은 지금 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

그것은 base64 문자열을 바이너리로 변환하는 데 사용되는 네이티브 atob 함수에 대한 polyfill입니다. OP가 묻는 문제는 해결되지 않습니다. –

관련 문제