, ArrayBuffer - это байтовый массив.
я есть проект, где мне нужно отобразить схемы DJVU в браузере.
Я нашел этот старыйбиблиотека на Github который, насколько я понял, конвертирует файлы djvu в bmp, а затем помещает их в элемент canvas.
Как я уже сказал, библиотека старая (последний коммит был 5 лет назад), поэтому мне нужно внести некоторые исправления. Основная проблема заключается в том, что lib использует устаревший BlobBuilder.
Шаги, которые я сделал, чтобы решить эту проблему:
Распакуйте эту библиотеку с помощью Chrome DevToolsНачальная ошибка в строке 3774var c = "undefined" != typeof MozBlobBuilder ? MozBlobBuilder : "undefined" != typeof WebKitBlobBuilder ? WebKitBlobBuilder : console.log("warning: cannot build blobs")
Я закомментировал эту строкуДалее я закомментировал строкуc = new c;
и некоторые из следующих строк тоже.Итак, теперь это выглядит так (переменная I является буфером массива, а ololo1 и ololo2 являются своего рода смещением и пределом)
var c = new Blob(new Uint8Array(new Uint8Array(I,ololo1,ololo2)))
, b = b.createObjectURL(c)
, c = document.getElementById(kb)
, f = c.getContext("2d")
, h = new Image
, g = a[Ea >> 2]
, i = a[Fa >> 2]
, j = c.width
, k = Math.round(i * j / g);
h.onload = function()
{
var a = g / j;
4 < a && (a = 4);
1 > a && (a = 1);
f.globalAlpha = 1;
for (N = 0; N < a; N++)
f.drawImage(h, N, N, g - a + N, i - a + N, 0, 0, j, k),
f.globalAlpha *= 1 - 1 / a;
R(h.complete, "Image /bmp.bmp could not be decoded")
}
;
h.onerror = function(errorMsg, url, lineNumber, column, errorObj) {
console.log(errorMsg, url, lineNumber, column, errorObj);
console.log("Image /bmp.bmp could not be decoded!")
}
;
И теперь я застрял в ошибке «Изображение /bmp.bmp не может быть декодировано!» (Брошено в обработчик h.onerror).
Итак, мой вопрос: что я делаю не так?