Tengo un PWA de redes sociales en flutter donde permito que los usuarios carguen imágenes y almaceno esas imágenes en el almacenamiento de Firebase. Ahora el problema es que actualmente no puedo encontrar ningún método de compresión adecuado dentro de Flutter. Por lo tanto, decidí usar JS para ello, pero desafortunadamente, JS devuelve el archivo comprimido como nulo.
function compressAndDownloadImage(base64) { var url = base64; fetch(url) .then(res => res.blob()) .then(blob => { var imageFile = blob; console.log('originalFile instanceof Blob', imageFile instanceof Blob); console.log(`originalFile size ${imageFile.size / 1024 / 1024} MB`); var options = { maxSizeMB: 0.2, maxWidthOrHeight: 1920, useWebWorker: true } imageCompression(imageFile, options) .then(function (compressedFile) { console.log('compressedFile instanceof Blob', compressedFile instanceof Blob); console.log(`compressedFile size ${compressedFile.size / 1024 / 1024} MB`); console.log(compressedFile); saveAs(new Blob([compressedFile], { type: "image/jpeg" }), Math.floor(Date.now() / 1000) + '.jpeg'); return compressedFile; }) .catch(function (error) { console.log(error.message); }); })}
Por favor, hágame saber qué está mal con el script JS que devuelve nulo.
Gracias por adelantado.