假设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
。但这似乎并不兼容。
答案 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