【问题标题】:How do you show raw image data on the web with javascript?如何使用 javascript 在 Web 上显示原始图像数据?
【发布时间】:2017-12-16 12:27:21
【问题描述】:

我有一个用于图像文件的 API 端点,它总是发送原始数据。如何在网站上显示此图像数据?理想情况下,我想使用 img 标签或 css background-image 属性而不是画布。

下面是一些可以使用的代码:

$.get({
  url: '/some-image',
  success: function(data) {
    // Load raw image data somewhere and show it on webpage.
  },
});

在我的例子中,我实际上使用了一个名为 axios 的库,但我使用了一个 jquery 示例,因为我认为它会更知名。

为了清楚起见,我收到的数据如下所示:

����JFIF��� ( %!1!%)+...383-7(-.+ 
-------------+-------------+-+--+-----------+-----+���"����?!1AQa"q����2����R��Br�#b$4D�������%!1A2Q"Ca��?��]0`V�a����:T���E�R����$�jy$�6�GcP��Q��$�Fk,� ;D������\�e�l��(GE��[c,���w�P�&�J1rz.mM��]��!����\ �\̺I�:.�[&o=~z�7Y�'#T �_�%��u+����rg�i��p��^�����c���[E�ʔ����)E���b x�=U!M���3��6�k8��R��0&<?K�Kn���pd+'��Vt��|l�Z���i1�Pic*R79�8 b]A<�ݿ��@mw} kBjѲٸ�Tm��m�+ǖ���G�jv&��D:Ƽ$sD2zf

【问题讨论】:

  • 请发布您的代码。原始数据是什么意思?
  • 最简单的答案可能是对它进行base64编码并将其用作src标签上的img,但这取决于数据和API。 stackoverflow.com/questions/8499633/…

标签: javascript html css image


【解决方案1】:

将其作为“blob”下载 将 blob 转换为 URL。然后将其指定为图像元素的来源。

将 Blob 转换为 URL 的 API 是 createObjectUrl

如果您的 ajax 库不能干净地处理 blob(例如,fetch 为您提供 response.blob()),请使用 new Blob([data], "image/jpeg") 或等效项从原始字节创建一个。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-07
  • 2020-06-08
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
相关资源
最近更新 更多