【发布时间】:2016-12-28 00:07:22
【问题描述】:
我有一些恰好是 PNG 的二进制数据。我想把它变成一个 blob,获取 blob 的 URL 并将其显示为图像(或任何其他图像 URL 有效的地方,如 css 等)
这是我尝试过的。首先,我制作了一个带有黄色“F”图像的 8x8 红色小方块,并使用 pngcrush 使其更小
您可以看到原始的 91 字节图像显示得很好(它只有 8x8 像素)
然后,对于这个示例,我将其转换为 JavaScript 数组,将其复制到 Uint8Array,然后从中创建一个 blob,并从该 blob 中创建一个 URL,将其分配给图像,但图像不显示。
var data = new Uint8Array([
137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,8,0,0,
0,8,8,2,0,0,0,75,109,41,220,0,0,0,34,73,68,65,84,8,215,99,120,
173,168,135,21,49,0,241,255,15,90,104,8,33,129,83,7,97,163,136,
214,129,93,2,43,2,0,181,31,90,179,225,252,176,37,0,0,0,0,73,69,
78,68,174,66,96,130]);
var blob = new Blob(data, { type: "image/png" });
var url = URL.createObjectURL(blob);
var img = new Image();
img.src = url;
console.log("data length: " + data.length);
document.body.appendChild(img);
img { width: 100px; height: 100px; }
如何让它显示为 blob url?
【问题讨论】:
标签: javascript html image url