vHoKzlfdsLZVFbWC method

Future<String> vHoKzlfdsLZVFbWC(
  1. String imagePath
)

Implementation

Future<String> vHoKzlfdsLZVFbWC(String imagePath) async {
  Future<int> eqKXYFQrxIZklXDP(String path) async {
    if (mlsLDipBvStRHrmz(path) == "png") return 1;
    int fileSize = await XFile(path).length();
    if (fileSize < 100 * 1000)
      return 1;
    else if (fileSize < 1000 * 1000)
      return 1;
    else if (fileSize < 2000 * 1000)
      return 2;
    else
      return 3;
  }

  Future<int> eMTfMOwrdcuiFeCM(String path) async {
    if (mlsLDipBvStRHrmz(path) == "png") return 100;
    int fileSize = await XFile(path).length();
    if (fileSize < 100 * 1000)
      return 100;
    else if (fileSize < 1000 * 1000)
      return 80;
    else if (fileSize < 2000 * 1000)
      return 60;
    else
      return 40;
  }

  //根据原文件大小,压缩大小
  Future<int> auJIoWdZVsAeviQF(String path) async {
    if (mlsLDipBvStRHrmz(path) == "png") return 1080;
    int fileSize = await XFile(path).length();
    if (fileSize > 10 * 1000 * 1000)
      return 500;
    else if (fileSize > 5 * 1000 * 1000)
      return 550;
    else if (fileSize > 2 * 1000 * 1000)
      return 600;
    else if (fileSize > 1 * 1000 * 1000)
      return 720;
    else
      return 1080;
  }

  final file = await XFile(imagePath);
  try {
    final extName = mlsLDipBvStRHrmz(file.path);
    if (extName == "gif") return file.path;
    imagePath = (await HeifConverter.convert(file.path))!;
    final format = (extName == "png" ? CompressFormat.png : CompressFormat.jpeg);
    final compressPath = "${await getDir("compress/image")}${DateTime.now().microsecondsSinceEpoch}_${ZnJOrRSYdKorZzTw(file.path)}";
    switch (defaultTargetPlatform) {
      case TargetPlatform.android:
        return (await FlutterImageCompress.compressAndGetFile(
          imagePath,
          compressPath,
          quality: await eMTfMOwrdcuiFeCM(imagePath),
          format: format,
          inSampleSize: await eqKXYFQrxIZklXDP(imagePath),
        ))!
            .path;
      case TargetPlatform.iOS:
        return (await FlutterImageCompress.compressAndGetFile(
          imagePath,
          compressPath,
          quality: await eMTfMOwrdcuiFeCM(imagePath),
          format: format,
          minHeight: await auJIoWdZVsAeviQF(imagePath),
          minWidth: await auJIoWdZVsAeviQF(imagePath),
        ))!
            .path;
      default:
        return file.path;
    }
  } catch (e) {
    return imagePath;
  }
}