【问题标题】:How to display buffered image如何显示缓冲图像
【发布时间】:2018-04-05 10:07:25
【问题描述】:

我正在 ReactJS 中创建一个“加载图片”组件。我的组件将加载的图像存储在内存中,并将其发送到使用 npm "file-loader" 的 Node 服务器。

图像作为缓冲区到达服务器<Buffer 89 12 00 .... >

我将尝试将缓冲区保存到 MySQL,但如果数据库插入成功,则需要在浏览器中将图像显示为缩略图。

如何在浏览器中显示缓冲图像?

【问题讨论】:

    标签: mysql node.js image reactjs


    【解决方案1】:

    我采用的解决方案是将缓冲区转换为 base64 并使用<img /> 标签显示:

    const buffer = someData // e.g., <Buffer 89 50 4e ... >
    const b64 = new Buffer(buffer).toString('base64')
    const mimeType = some_type // e.g., image/png
    

    然后在我的 React 组件中,我渲染一个图像标签:

    <img src={`data:${mimeType};base64,${b64}`} />
    

    更多:https://css-tricks.com/data-uris/

    【讨论】:

    • 非常感谢您。我想我可以就此写一篇博文。在最新版本的 Node 中,new Buffer() 已弃用,new Buffer.from() 是替代品。干杯。
    • @Sajicode 很高兴我能为其他人找到解决方案! :)
    • 感谢@Sajicode 的提醒!我想知道为什么 vscode 一直在取消我对“新缓冲区”的呼吁,现在我知道了!
    猜你喜欢
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    相关资源
    最近更新 更多