【问题标题】:How to display an image stored as byte array in HTML/JavaScript?如何在 HTML/JavaScript 中显示存储为字节数组的图像?
【发布时间】:2014-01-12 09:50:22
【问题描述】:

我正在用 HTML/JavaScript 编写网页。我正在使用 AJAX 从后端下载图像。图像表示为原始字节数组,而不是 URL,所以我不能使用标准的 <img src="{url}"> 方法。

我如何向用户显示提到的图像?

【问题讨论】:

标签: javascript html


【解决方案1】:

尝试将此 HTML sn-p 放入您提供的文档中:

<img id="ItemPreview" src="">

然后,在 JavaScript 端,您可以使用所谓的Data URL 动态修改图像的src 属性。

document.getElementById("ItemPreview").src = "data:image/png;base64," + yourByteArrayAsBase64;

或者,使用 jQuery:

$('#ItemPreview').attr('src', `data:image/png;base64,${yourByteArrayAsBase64}`);

这假设您的图像以非常流行的 PNG 格式存储。如果您使用其他一些图像格式(例如 JPEG),请相应地修改 URL 中的MIME type"image/..." 部分)。

类似问题:

【讨论】:

  • 我的字节 = dwr/download/k1a3JvBCfU3vLji$zKkhQObxzck。 src = 数据:图像/png;base64,dwr/download/k1a3JvBCfU3vLji$zKkhQObxzck。我用过 DWR
  • 字节格式图片下载。
  • 嗨,我得到的数据是这样的格式可以对您有帮助如何将它转换成图像数据:视频/webm;base64 格式。它实际上是一个实时视频流。
  • 迟到但如果您的回复看起来像[137,80,78,71,13,10,26,10,0,...],您可以使用此行:document.getElementById("ItemPreview").src = "data:image/png;base64," + btoa(String.fromCharCode.apply(null, new Uint8Array([137,80,78,71,13,10,26,10,0,...])));
  • 我稍微编辑了答案以使其更清楚,但我没有得到任何东西,所以我没有真正修复它。为什么这个答案假设图像存储在 base64 字符串中? OP提到(我检查了编辑历史)一个“字节数组”,而不是“base64字符串”。
猜你喜欢
  • 2011-09-20
  • 1970-01-01
  • 2013-05-18
  • 2012-03-16
  • 2012-03-22
  • 2010-12-18
  • 2016-04-03
相关资源
最近更新 更多