【发布时间】:2019-06-27 05:42:28
【问题描述】:
我正在从 python 服务器流式传输 ArrayBuffers,并尝试使用 javascript 在客户端将每个图像解释为图像。它们在 javascript 中作为数组缓冲区被接收。但是我不能让它们被图像标签 src 属性读取。我尝试将它们生成为 Blob 对象,然后使用 window.URL.createObjectURL(blob)。那也没用。
blob url 看起来像这样 blob:null/e2836074-64b5-4959-8211-da2fc24c35a6 有错吗?
有没有人有任何建议/知道解决方案。
非常感谢。
var arrayBuffer = new Uint8Array(stream.data);
var blob = new Blob([arrayBuffer], {type: "image/jpeg"});
var urlCreator = window.URL || window.webkitURL;
var imageUrl = urlCreator.createObjectURL( blob );
console.log(imageUrl);
img.src = imageUrl;
【问题讨论】:
-
流数据实际包含什么?它是原始像素值,还是您发送在磁盘上的文件中找到的完整图像,或者完全是其他东西? (无法判断该 blob url 是否好用 - 它太短了,您需要 whole 东西)
-
@enhzflep 感谢您的回复。我在收到数组缓冲区后添加了一张照片。
-
您能否在问题中包含至少一个完整的
TypedArray纯文本或格式化代码?您是创建了Blob对象还是将ArrayBuffer直接传递给URL.createObjectURL()? -
@Kai - 好吧,那么显然没有大小信息的格式。没有明显的标题可言。因此,除此之外,您在流式传输什么,您甚至知道吗?没有显示任何形状或形式来指示数据的格式。图像应该有多宽,多高?它有 alpha 通道吗?每个像素有多少位?数据是否以任何方式压缩?废话,废话,废话,废话 - 有很多事情需要确定,以确保这个问题不会太宽泛且无法回答!
-
@KaiFerrall 你确定图片类型是
"image/jpeg"吗?您能否在问题中包含至少一个完整的TypedArray?见stackoverflow.com/help/mcve
标签: javascript arraybuffer typed-arrays