Я разрабатываю приложение, в котором я получаю данные изображения, хранящиеся в uint8Array. Затем я преобразую эти данные в Blob, а затем создаю URL-адрес изображения.
Упрощенный код для получения данных с сервера:
var array;
var req = new XMLHttpRequest();
var url = "img/" + uuid + "_" +segmentNumber+".jpg";
req.open("GET", url, true);
req.responseType = "arraybuffer";
req.onload = function(oEvent) {
var data = req.response;
array = new Int8Array(data);
};
Конструктор:
out = new Blob([data], {type : datatype} );
Контрулятор Blob вызывает проблему. Он отлично работает во всех браузерах, кроме Chrome, на мобильных и настольных устройствах.
Использование Blob:
// Receive Uint8Array using AJAX here
// array = ...
// Create BLOB
var jpeg = new Blob( [array.buffer], {type : "image/jpeg"});
var url = DOMURL.createObjectURL(jpeg);
img.src = url;
Настольный Chrome дает мне предупреждение: ArrayBuffer values are deprecated in Blob Constructor. Use ArrayBufferView instead.
Мобильный Chrome дает мне ошибку: illegal constructor
Если я изменяю конструктор для работы с Chrome, он не работает в других браузерах.