comprimeArchivo static method

Uint8List comprimeArchivo(
  1. Uint8List bytesOriginal, {
  2. int compressionQuality = 30,
})

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
  }
}