compressImages static method

Future<List<PlatformFile>> compressImages(
  1. List<PlatformFile> imagesToCompress
)

Implementation

static Future<List<PlatformFile>> compressImages(
    List<PlatformFile> imagesToCompress) async {
  List<PlatformFile> imagesCompressed = [];
  for (var element in imagesToCompress) {
    final mimeType = lookupMimeType(element.path!);

    if (mimeType!.contains("jpg") ||
        mimeType.contains("jpeg") ||
        mimeType.contains("png") ||
        mimeType.contains("tiff") ||
        mimeType.contains("svg")) {
      File compressedFile =
          await FlutterNativeImage.compressImage(element.path!, quality: 80);
      var fileName = path.basename(compressedFile.path);
      imagesCompressed.add(PlatformFile(
          name: fileName,
          size: compressedFile.lengthSync(),
          path: element.path));
    } else {
      imagesCompressed.add(element);
    }
  }
  return Future.value(imagesCompressed);
}