提问者:小点点

将二进制url转换为blob url


我有一个像137,80,78,71,13,10,26,10,0这样的图像二进制数据作为字符串。 我想在html中显示它作为blob URL。 如何将二进制文件转换为blob URL。 我试过做这些,但我没有得到图像。

javascript代码

var binary = "137, 80, 78, 71, 13, 10, 26, 10, 0";
var blob = new Blob([binary], { type: 'image/png' });
        var blobUrl = URL.createObjectURL(blob);
        console.log(blobUrl);
        document.getElementById("image").src = blobUrl;

HTML

<img id="image" />

共2个答案

匿名用户

你必须:

  1. 将字符串转换为整数数组,
  2. 将数组转换为二进制字符串,
  3. 将其转换为base64和
  4. 将其插入到src属性中。
var numbers = binary.trim().split(/\s*,\s*/g).map(x => x/1);
var binstr = String.fromCharCode(...numbers);
var b64str = btoa(binstr);
var src = 'data:image/jpeg;base64,' + b64str;
document.getElementById("image").src = src;

请记住,您必须使用正确的图像类型,例如jpeg,png等。

匿名用户

当你想要展示图像时,你必须做这样的事情:

var binary = "137, 80, 78, 71, 13, 10, 26, 10, 0";
document.getElementById("image").src = 'data:image/jpeg;base64,' + btoa(binary)

但我不确定你的二进制是否正确。