如何在javascript中显示二进制数据中的图像? [英] How to display image from binary data in javascript?

查看:79
本文介绍了如何在javascript中显示二进制数据中的图像?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将二进制数据存储在数组(videoDataArr)中,并希望使用javascript在浏览器中显示。



我尝试了什么:



I am storing binary data in array (videoDataArr) and want to display in browser using javascript.

What I have tried:

for (var i = 0; i < video1Size - 14; i++)
{
    video1Data += String.fromCharCode(chunk8View[dataIndex++]);
}
        
video1Data += video1;
// alert("vid1:"+video1Data);       
       
if(partnumber == 003)
{
    //alert("partnumber:" + partnumber + "packetnumber:");

    videoDataArr.push(video1Data);

    alert("videoDataArr:" + videoDataArr);
              
    var imgdata=btoa(videoDataArr);
    //displayImg(imgdata);
            
    window.open('data:image/jpeg;,' + imgdata);
}

推荐答案

需要在base64中进行转换。



JS有btoa()函数。



例如:



Need to convert it in base64.

JS have btoa() function for it.

For example:

var img = document.createElement('img');
img.src = 'data:image/jpeg;base64,' + btoa('your-binary-data');
document.body.appendChild(img);



但我想你的二进制数据是什么pastebin无效 - jpeg数据必须在'ffd9'结束。



更新:



需要将简单的十六进制写入base64转换器:




But i think what your binary data in pastebin is invalid - the jpeg data must be ended on 'ffd9'.

Update:

Need to write simple hex to base64 converter:

function hexToBase64(str) {
    return btoa(String.fromCharCode.apply(null, str.replace(/\r|\n/g, "").replace(/([\da-fA-F]{2}) ?/g, "0x


1)。replace(/ +
1 ").replace(/ +


/, )。split( )));
}
/, "").split(" "))); }



使用它:




And use it:

img.src = 'data:image/jpeg;base64,' + hexToBase64('your-binary-data');



查看工作示例关于jsfiddle的十六进制数据


See working example with your hex data on jsfiddle


这篇关于如何在javascript中显示二进制数据中的图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆