comprimeArchivo static method
Función para comprimir un archivo si perder sus metadatos.
Usa la librería image para decodificar y volver a codificar la imagen.
El parámetro compressionQuality controla la calidad de la compresión (0-100).
Devuelve un Uint8List con la imagen comprimida.
Implementation
static Uint8List comprimeArchivo(
Uint8List bytesOriginal, {
int compressionQuality = 30,
}) {
try {
final src = img.decodeImage(bytesOriginal)!;
final fixed = img.bakeOrientation(src); // hornea el giro
return Uint8List.fromList(
img.encodeJpg(fixed, quality: compressionQuality));
} catch (e) {
FlutterUtilsProvider.logDebug(
'Error al comprimir el archivo: $e',
);
return bytesOriginal; // Si falla, devuelve el original sin comprimir
}
}