由于浏览器知道如何处理JPG文件,有没有办法动态地为它们提供JPG文件的实际二进制数据并允许它们对其进行解码?
我无法将文件作为普通的image.src =“path.jpg”提供,因为数据最初是另一个在JS中解析的文件的一部分。
此外,我有奇怪的JPG文件存储alpha,因此像https://github.com/notmasteryet/jpgjs这样的库无法处理它们。
答案 0 :(得分:7)
您可以使用Blob从二进制数据创建对象,您稍后将其作为图像解码的URL传递。假设您将二进制数据存储为类型数组,您可以执行以下操作:
var blob = new Blob([myTypedArray], {type: 'application/octet-binary'});
var url = URL.createObjectURL(blob);
现在您可以将该网址作为图片来源传递:
var img = new Image;
img.onload = function() {
URL.revokeObjectURL(url);
...
};
img.src = url;
请注意,您仍然确保传入的数据是浏览器可以处理的有效图像格式。