【发布时间】:2011-12-22 18:32:55
【问题描述】:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://static.reddit.com/reddit.com.header.png', true);
xhr.responseType = 'arraybuffer';
xhr.onload = function(e) {
if (this.status == 200) {
var uInt8Array = new Uint8Array(this.response);
var byte3 = uInt8Array[4];
var bb = new WebKitBlobBuilder();
bb.append(xhr.response);
var blob = bb.getBlob('image/png');
var base64 = window.btoa(blob);
alert(base64);
}
};
xhr.send();
基本上,我在这里要做的是检索图像,并将其转换为 base64。
通过阅读 cmets here,它指出:
“当然。在获取资源作为 ArrayBuffer 后,从 它。一旦你有了它,你可以直接对文件/blob进行base64编码
window.btoa()或FileReader.readAsDataURL()。”
但是,blob 只是 [object blob],而我需要从图像中获取二进制文件,以便将其转换为 base64 并使用数据将其显示在 img 标签中。
有人知道如何实现吗?
提前谢谢你!
【问题讨论】:
-
我觉得你用 XHR 获取图像日期很奇怪......它甚至可以跨源工作吗?你的域名在 reddit 的 Access-Control-Allow-Origin 列表中吗?
-
这只是一个例子,实际的域是localhost
标签: javascript webkit blob xmlhttprequest