compressImage static method

Future<String> compressImage(
  1. String image
)

Implementation

static Future<String> compressImage(String image) async {
  File imageFile = File(image);
  int length = imageFile.lengthSync();
  int max = 1024 * 1024 * 2;
  if (length > max) {
    Directory tempDir = await getTemporaryDirectory();
    String targetPath =
        '${tempDir.absolute.path}/Image_Temp_${DateTime.now().millisecondsSinceEpoch}.jpg';
    File? result = await (FlutterImageCompress.compressAndGetFile(
        image, targetPath,
        quality: 100 - ((max / length) * 100).round()));
    if ((result?.lengthSync() ?? 0) > max) {
      return compressImage(result!.path);
    }
    return result?.path ?? '';
  } else {
    return image;
  }
}