Сбой браузера при использовании большого файла метода OffscreenCanvas.convertToBlob в веб-приложении - PullRequest
0 голосов
/ 16 июня 2019

Я пытаюсь показать Tiff File в браузере, я успешно прочитал Tiff с помощью файла UTIF.js, где я использую Web-работника для чтения файла формата Tiff.Некоторые файлы очень большие, такие как высота 10 000 пикселей и ширина 13 000, мне нужно показать их в браузере.Браузер аварийно завершает работу при выполнении кода OffscreenCanvas.convertToBlob, который возвращает объект Promise.

Здесь я использовал Web Worker и Offscreencanvas, я пробовал метод convertToBlob с другим параметром, таким как качество .6 и менее, но все равно происходит сбой браузера.

UTIF.decodeImage(ubuf,utif[k]);
var ubuf1 =UTIF.toRGBA8(utif[k]);
var a =  new Uint8ClampedArray(ubuf1);
var imgData = new ImageData(a,utif[k].width,utif[k].height);
var canvas1 = new OffscreenCanvas(utif[k].width,utif[k].height);
var ctx = canvas1.getContext('2d');
ctx.putImageData(imgData,0,0);
var that = self;
if(utif[k].width >2048) {
canvas1.convertToBlob({type : "image/jpeg",
quality : 0.3
}).then(function(blob) {
that.postMessage(blob);                   
});
}
else {
canvas1.convertToBlob(
{type : "image/jpeg",
quality : 1
}).then(function(blob) {
that.postMessage(blob);                   
});
}

Я ожидаю, что браузер не должен аварийно завершать работу в сценарии с большими файлами.

Заранее большое спасибо.

...