ArrayBuffer a conversión de blob
Tengo un proyecto donde necesito mostrar esquemas djvu en el navegador.
Encontré esto viejobiblioteca en Github que, por lo que he entendido, convierte los archivos djvu a bmp y luego los coloca en el elemento lienzo.
Como dije, la biblioteca es antigua (la última confirmación fue hace 5 años), así que necesito hacer algunas correcciones. El problema principal es que lib usa BlobBuilder obsoleto.
Pasos que hice para resolver este problema:
Descomprima esta biblioteca a través de Chrome DevToolsEl error inicial está en la línea 3774var c = "undefined" != typeof MozBlobBuilder ? MozBlobBuilder : "undefined" != typeof WebKitBlobBuilder ? WebKitBlobBuilder : console.log("warning: cannot build blobs")
Comenté esta líneaA continuación, comenté la líneac = new c;
y algunas de las siguientes líneas también.Entonces, ahora se ve de esta manera (la variable I es buffer de matriz, y ololo1 y ololo2 son algún tipo de desplazamiento y límite)
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!")
}
;
Y ahora me quedé atrapado en el error "¡La imagen /bmp.bmp no se pudo decodificar!" (Arrojado en el controlador h.onerror).
Entonces, mi pregunta es: ¿qué estoy haciendo mal?