如何将加载的图像读取到 blob 中? [复制]

2024-01-19

可能的重复:
如何将图像对象转换为二进制 blob https://stackoverflow.com/questions/13375333/how-to-convert-an-image-object-to-a-binary-blob

我在加载远程图像时面临同源策略限制。然而,DOM 0 Image 对象可用于加载远程资源(这本质上与创建一个<img /> tag).

var fr = new FileReader(),
    img = new Image();

img.src = 'http://distilleryimage8.s3.amazonaws.com/6cf25568491a11e2af8422000a9e28e9_7.jpg';

img.onload = function () {
    // how to get this image as a Blob object?
};

有没有办法将此资源读入 Blob/arraybuffer 对象?这不是重复的如何将图像对象转换为二进制 blob https://stackoverflow.com/questions/13375333/how-to-convert-an-image-object-to-a-binary-blob因为后者不会因同源问题而出现。


在我看来,这可以在没有太多痛苦的情况下完成......

您只需要再添加一个 HTML5 元素。使用时canvas您可以在其上绘制远程图像。之后获取图像 dataUrl 就非常容易了,您可以从 canvas API 获得这样的功能。下一步是使用 FileReaderreadAsDataURL方法。

我没有尝试过,但理论上它应该有效。

  • 编辑:这不会起作用。如果图像来自不同来源,则不能使用画布toDataURL方法。所以我认为没有服务器端就没有任何解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将加载的图像读取到 blob 中? [复制] 的相关文章

随机推荐