使用javascript从服务器加载到图像的二进制图像

时间:2012-12-10 19:55:29

标签: javascript html dom binary xmlhttprequest

我正在通过XMLHttpRequest以二进制格式从我的服务器加载jpeg图像(我需要这样)。它不是base64编码的。

是否可以使用javascript将其变为img对象?

由于

1 个答案:

答案 0 :(得分:4)

如果XMLHttpRequest的字符编码设置为something that won't change the binary data,或者您已set the response type,则可以.responseText通过btoa (将它放在base64中,让你将其分配为数据URI)或分别访问.response二进制数据。


假设您的实例名为xhr并且您在xhr.send之前使用了charset方法但在xhr.open之后

xhr.overrideMimeType("text/plain; charset=x-user-defined");

然后当你200 OK

var dataURI = 'data:image/jpeg;base64,' + btoa(xhr.responseText);

然后您可以将其设置为<img> src


再次假设xhr,这次是.response方法;在.open.send之间,

xhr.responseType = "arraybuffer";

然后在200 OK

var arrayBufferView = new Uint8Array(xhr.response), // can choose 8, 16 or 32 depending on how you save your images
    blob = new Blob([arrayBufferView], {'type': 'image\/jpeg'}),
    objectURL = window.URL.createObjectURL(blob);

然后您可以将其设置为<img> src Example