2015-02-10 29 views
12

server di My Node.js ha qualcosa che è simile al seguente:rendering di un Base64 PNG con espresso

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

Qui, data è una stringa contenente una rappresentazione Base64 di un'immagine PNG. C'è un modo in cui posso inviare questo a un client che accede al percorso codificato e visualizzato come un'immagine (ad esempio in modo che l'URL possa essere utilizzato in un tag img)?

+0

Che tipo di immagine è? Per inviarlo al cliente, è necessario sapere quale tipo di contenuto è l'immagine (JPEG, PNG, GIF, ICO)? – loganfsmyth

+0

È un PNG; Ho modificato la mia domanda per dirlo. – Hydrothermal

risposta

23

Sì, è possibile codificare la stringa base64 e restituirlo al client come immagine:

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

+0

Questo è esattamente ciò di cui avevo bisogno! Ho sostituito 'data.buffer' con' data' come da commento di @ lujcon e funziona perfettamente. – Hydrothermal

Problemi correlati