如何将img的二进制数据转换为img标签

时间:2011-11-21 13:46:11

标签: javascript html5 filesystems

所有
我得到了图像的二进制数据(使用xhr),我们将这个二进制数据命名为数据
我想知道如何将数据转换为真正的img标签 起初:
我尝试将 FileReder 用于 readAsBinaryString ,但它不起作用,因为 reader.onloadend 不会触发

还有其他方法可以完成这项工作吗? 提前谢谢〜

 $.ajax({
                url:src,
                type:"GET",
                success:function(data){  
    var reader=new FileReader()
    reader.onload=function(e){

        var data=e.target.result
        console.log(data)

   } 
  reader.readAsDataURL(data)

...

2 个答案:

答案 0 :(得分:0)

您应该致电readAsDataURL并改为使用load事件。

var reader = new FileReader();

reader.onload = function (e) {
  var img = new Image();
  img.src = e.target.result;
};
reader.readAsDataURL(file);

答案 1 :(得分:0)

Base64对二进制数据进行编码。请参阅此question,了解如何在JavaScript中使用base64二进制数据。

然后将base64字符串直接插入到您的图像标记中。例如,如果二进制数据是JPG图像,则可以执行此操作(理论上):

$.ajax({
  url:src,
  type:"GET",
  success:function(binaryData) {  

    //toBase64 is a made up function, see above
    var base64Data = toBase64(binaryData);

    //assuming img is defined outside of here (not in the scope of this question)
    img.src = "data:image/jpg;base64," + base64Data;
  }
});