如何显示缓冲图像

Posted

技术标签:

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

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

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

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

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

【问题讨论】:

【参考方案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 一直在取消我对“新缓冲区”的呼吁,现在我知道了!

以上是关于如何显示缓冲图像的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV如何将jpeg图像缓冲区放入cvShowImage

将图像从缓冲区转换为前端显示(颤振)

如何让我的Buffered Image类在我的GUI中显示?

显示存储为缓冲区的 MongoDB 图像

显示存储为缓冲区的 MongoDB 图像

需要一些手来渲染、显示和保存图像