2015-02-10 49 views
12

我的Node.js服務器具有的東西看起來像下面這樣:渲染一個Base64 PNG與高速

app.get("/api/id/:w", function(req, res) { 
    var data = getIcon(req.params.w); 
}); 

這裏,data是包含一個PNG圖像的Base64表示的字符串。有什麼方法可以將此內容發送給訪問編碼並顯示爲圖像的路由的客戶端(例如,URL可用於img標籤)?

+0

什麼樣的形象呢?要將它發送給客戶端,您需要知道圖像的內容類型(JPEG,PNG,GIF,ICO)? – loganfsmyth 2015-02-10 19:55:38

+0

這是一個PNG;我編輯了我的問題來提到這一點。 – Hydrothermal 2015-02-10 19:56:07

回答

23

是的,你可以編碼你的base64字符串,並將其返回到客戶端爲圖像:

server.get("/api/id/:w", function(req, res) { 
    var data = getIcon(req.params.w); 
    var img = new Buffer(data, 'base64'); 

    res.writeHead(200, { 
    'Content-Type': 'image/png', 
    'Content-Length': img.length 
    }); 
    res.end(img); 
}); 
+1

'var img = new Buffer(data,'base64');' – lujcon 2015-02-10 20:01:27

+0

這正是我所需要的!根據@ lujcon的評論,我用'data'取代了'data.buffer',它完美地工作。 – Hydrothermal 2015-02-10 20:03:36