使用 Express 渲染 Base64 PNG
Rendering a Base64 PNG with Express
我的 Node.js 服务器有如下内容:
app.get("/api/id/:w", function(req, res) {
var data = getIcon(req.params.w);
});
此处,data
是一个包含 PNG 图像的 Base64 表示形式的字符串。有什么方法可以将它发送给访问编码并显示为图像的路由的客户端(例如 URL 可以在 img
标签中使用)?
是的,您可以对 base64 字符串进行编码,然后 return 将其作为图像发送给客户端:
server.get("/api/id/:w", function(req, res) {
var data = getIcon(req.params.w);
var img = Buffer.from(data, 'base64');
res.writeHead(200, {
'Content-Type': 'image/png',
'Content-Length': img.length
});
res.end(img);
});
我必须先做一些操作才能使我的格式正确,但这很有效:
var base64Data = data.replace(/^data:image\/png;base64,/, '');
使用 "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);
});
我的 Node.js 服务器有如下内容:
app.get("/api/id/:w", function(req, res) {
var data = getIcon(req.params.w);
});
此处,data
是一个包含 PNG 图像的 Base64 表示形式的字符串。有什么方法可以将它发送给访问编码并显示为图像的路由的客户端(例如 URL 可以在 img
标签中使用)?
是的,您可以对 base64 字符串进行编码,然后 return 将其作为图像发送给客户端:
server.get("/api/id/:w", function(req, res) {
var data = getIcon(req.params.w);
var img = Buffer.from(data, 'base64');
res.writeHead(200, {
'Content-Type': 'image/png',
'Content-Length': img.length
});
res.end(img);
});
我必须先做一些操作才能使我的格式正确,但这很有效:
var base64Data = data.replace(/^data:image\/png;base64,/, '');
使用 "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);
});