【问题标题】:converting objects of buffer to an image将缓冲区对象转换为图像
【发布时间】:2020-02-28 10:49:15
【问题描述】:

我如何将此缓冲区数据转换为图像,以便在循环遍历结果并将其呈现在 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')
            }
        });

【问题讨论】:

  • 它不起作用,这只是将图像地址设置为data:image/jpeg;base64,[object Object]

标签: javascript node.js express buffer ejs


【解决方案1】:

用base64编码缓冲区:

let base64img = "data:image/jpeg;base64," + result.data.photo.toString('base64');

在 ejs 中使用 base64img

【讨论】:

  • 它不起作用,这只是将图像地址设置为data:image/jpeg;base64,[object Object]
  • 你知道这三个缓冲区是什么吗?试试 result.data.photo[0].toString('base64')
猜你喜欢
  • 1970-01-01
  • 2020-04-13
  • 2020-06-12
  • 1970-01-01
  • 2020-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多