【问题标题】:JavaScript create image from blob results in broken image [duplicate]JavaScript从blob创建图像导致图像损坏[重复]
【发布时间】:2020-05-25 21:41:29
【问题描述】:

我从服务器获得一个缓冲区并创建一个新的 blob。对于这个新的 blob,我创建了一个对象 URL,但图像总是显示不正确。

这是我从服务器获取的缓冲区: Buffer

这就是我为 blob 创建对象 url 的方式: Creating object url from blob

结果是这样的: Final image

控制台也没有错误。

【问题讨论】:

标签: javascript node.js blob


【解决方案1】:

尝试将您的字节数组转换为 Uint8Array 并查看它是否有效

var arrayBufferView = new Uint8Array(artifactEntityObject.thumbnail.data);
var blob = new Blob( [arrayBufferView], { type: "image/jpeg" } );
var imgSource = URL.createObjectURL( blob );

【讨论】:

  • 这个没有问题,非常感谢!您能否解释一下缓冲区本身和 UInt8 数组之间的区别,在开发工具中对我来说两者看起来都一样
  • 其实我不是 100% 确定的。我的猜测是,根据文档,Blob 构造函数需要 ArrayBuffer 或 Typed Array,并且不知道如何处理 javascript 整数数组 - developer.mozilla.org/en-US/docs/Web/API/Blob/Blob
  • 啊,我明白了,无论如何,非常感谢您的解决方案!
猜你喜欢
  • 2021-02-23
  • 1970-01-01
  • 1970-01-01
  • 2018-05-05
  • 2013-06-02
  • 2015-08-18
  • 2021-05-30
  • 1970-01-01
  • 2015-06-09
相关资源
最近更新 更多