使用javascript在img中显示图像/ jpeg

时间:2016-03-30 14:05:57

标签: javascript html angularjs

假设http://example.com/image将生成的图像数据作为image / jpeg返回,并在响应头中添加一些额外的数据。 http://example.com/image为每个请求返回不同的生成图像。图像生成有点随机(或者至少它与请求无关)。响应带有额外的数据,如创建时间(但不仅仅是)。

我需要做的是对标题中的数据进行一些操作并显示图像。我遇到的问题是将图像与标题一起显示。假设我想显示图像并在图像下方打印响应标题。我怎样才能做到这一点?

我使用angularjs$http检索图像。然后我有

var imagedata = response.data
var someheader = response.header('some-header')

从这里开始,如何显示imagedata? 我发现的只是将数据转换为base64。有没有办法避免这种转变?

修改

我忘了提到我正在寻找适用于ie8 / 9等旧版浏览器的东西。我知道有URL.createObjectURL。但这似乎并不兼容。

1 个答案:

答案 0 :(得分:1)

如果您将图像内嵌在IMG标记中,则必须转换为base64。原因是二进制图像数据可能包含任何数量的HTML无效的字符和符号。

想象一下,无论你插入什么图像数据都会成为hte页面的HTML / DOM的一部分 - 包括任何引号,双引号,大于/小于符号都在二进制图像数据中。

更多信息: 在Javascript中,它看起来像这样:

encodedImage = window.btoa(binaryimagedata);

newimg = Document.createElement('img')
newimg.src = "data:text/css;base64,"+encodedImage
document.body.appendChild