如何在javascript中显示二进制数据中的图像? [英] How to display image from binary data in javascript?
本文介绍了如何在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屋!
查看全文