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} );
Blobcontsructorが問題を引き起こしています。モバイルデバイスとデスクトップデバイスの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で動作するようにコンストラクターを変更すると、他のブラウザーでは失敗します。