使用Express渲染Base64 PNG

时间:2015-02-10 19:38:41

标签: javascript node.js image express base64

My Node.js服务器的内容如下所示:

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

此处,data是包含PNG图像的Base64表示的字符串。有什么办法可以将这个发送给访问编码并显示为图像的路由的客户端(例如,这样的URL可以用在img标签中)吗?

3 个答案:

答案 0 :(得分:42)

是的,您可以编码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 :(得分:4)

我必须先进行一些操作才能以正确的格式获取我的信息,但这很有效:

  var base64Data = data.replace(/^data:image\/png;base64,/, '');

答案 2 :(得分:0)

使用“ base64-img”组件:

app.get('/image1', function(req, res) {

  var image1 = 'image1.jpg';

  var base64Img = require('base64-img');
  var imageData1 = base64Img.base64Sync(image1);
  var base64Data = imageData1.replace(/^data:image\/(png|jpeg|jpg);base64,/, '');
  var img = Buffer.from(base64Data, 'base64');

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

});