gpt4 book ai didi

html - 如何将png二进制数据放入img标签中并显示为图像?

转载 作者:太空狗 更新时间:2023-10-29 13:46:18 26 4
gpt4 key购买 nike

我正在用这个

        $.ajax({
type: "GET",
url: 'template/bump1/purse.png',
datatype:"image/png",
success: function (data) {


var reader = new FileReader();

reader.onload = function (e) {
var img = document.getElementById("CaptchaImg");
img.src = e.target.result;
};
reader.readAsDataURL(data);


//$('#CaptchaImg').attr('src', data);
}
});

下载一个图像,它以二进制形式出现,看起来像这样

enter image description here

node.js 将其返回为

                        WriteHeaderMode('image/png', res, 200);
res.end(data, 'binary');

但是现在,我该如何将其放入图片标签并将其显示为图片。注意:我希望将返回数据作为 base64 编码,它必须是二进制的。不过,我可以在客户端将二进制文件转换为 base64。

当我将它传递给 readAsDataURL 时,它显示 TypeError 异常。

谢谢

编辑

                var img = document.getElementById("CaptchaImg");

var reader = new FileReader();

reader.onload = function(e) {
//img.src = e.target.result;
$("body").html(e.target.result);
};

reader.readAsDataURL(new Blob([data]));

这似乎将其转换为 base64 编码,以 data:application/octet-stream;base64, 开头,但不显示图像...

最佳答案

jQuery Ajax 不支持二进制响应(okay now it does),有一个技巧使用 overrideMimeType('text/plain; charset=x-user-defined') 将每个字节作为响应字符串中的字符返回,并且然后循环响应以创建数据的字节数组。

然而,对于裸露的 XMLHttpRequest,这可以通过使用 responseType 属性轻松完成。

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if (this.readyState == 4 && this.status == 200){
var img = document.getElementById("CaptchaImg");
var url = window.URL || window.webkitURL;
img.src = url.createObjectURL(this.response);
}
}
xhr.open('GET', 'template/bump1/purse.png');
xhr.responseType = 'blob';
xhr.send();

关于html - 如何将png二进制数据放入img标签中并显示为图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32085474/

26 4 0