我正在通过 XMLHttpRequest 从我的服务器以二进制格式加载 jpeg 图像(我需要这种方式)。它不是 base64 编码的。
是否可以使用 javascript 将其转换为 img 对象?
谢谢
我正在通过 XMLHttpRequest 从我的服务器以二进制格式加载 jpeg 图像(我需要这种方式)。它不是 base64 编码的。
是否可以使用 javascript 将其转换为 img 对象?
谢谢
如果 的字符编码XMLHttpRequest
已设置为不会更改二进制数据的内容,或者您已设置响应类型.responseText
,则可以运行btoa
(将其放入 base64 并让您将其分配为数据 URI)或分别访问.response
二进制数据。
假设您的实例已命名xhr
,并且您在do之前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>
.
再次假设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>
. 例子