我正在通过 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>. 例子