javascript - 将缓冲区数据转换为图像
问题描述
我如何将此缓冲区数据转换为图像,因此当我循环遍历结果并将其呈现在 img src 中时,它将呈现为用户可以看到的图像
我正在使用 ejs 来渲染它
<span>
<img class="user-with-avatar" src=<%=item.photo%> />
</span>
当我 console.log(result.data.photo) 时,我得到了这个
{"type":"Buffer","data":[100,97,116,97,58,14,79,8,113,97,65,43,57,55,89,69,88,51,66,101,70,86,112,121,112,121,121,121,80,81,104]},
{"type":"Buffer","data":[100,97,116,97,58,14,79,8,113,97,65,43,57,55,89,69,88,51,66,101,70,86,112,121,112,121,121,121,80,81,104]},
{"type":"Buffer","data":[100,97,116,97,58,14,79,8,113,97,65,43,57,55,89,69,88,51,66,101,70,86,112,121,112,121,121,121,80,81,104]}
我如何用这个代码安排来解决它
app.get('/products', function (req, res) {
if (req.session.token && req.session.user_id) {
let data = {
token: req.session.token,
id: req.session.user_id,
}
let url = `https:/url/product/get_products?id=${data.id}&token=${data.token}`
functions.callAPIGet(
url,
function (error, result) {
res.render('products', {
result: result.data
})
}
);
} else {
res.redirect('/login')
}
});
解决方案
您需要将缓冲区转换为 base64 字符串。这是 PNG 图像的示例。我不清楚您的图像存储在哪里以及它的格式。此示例将图像作为文件读取。可能需要根据您的数据源进行调整。
服务器.js
const express = require('express')
const app = express()
const fs = require('fs')
app.set('view engine', 'ejs')
app.get('/', function(req, res) {
const data = fs.readFileSync('./image.png')
res.render('page', {
image: data.toString('base64')
})
})
const server = app.listen(2000)
视图/page.ejs
<img src="data:image/png;base64,<%= image %>" />
推荐阅读
- sql-server - 从python连接两个excel数据后将数据插入sql
- r - 如何在 r 中的 PAM 聚类中选择手动中心点?
- javascript - 禁用“离开站点”弹出中间表单
- unity3d - 更改 gl color 的 alpha 属性
- django - 在 POST 中看不到 Django 动态表单选择
- javascript - React 钩子:当我们尝试调用函数时,useMemo 和 useEffect 有一个 Missing 依赖项
- reactjs - 为什么我在设置 React 组件的状态时在控制台中收到内存泄漏警告
- mongodb - MongoDB聚合:数组数据内的字段总和,并在父集合上投影
- ruby - 我可以调用函数来定义模块定义中的变量吗?
- c# - DataTable.Rows.Add():集合被修改;枚举操作可能无法执行