bilateralFilter static method

Future<Uint8List?> bilateralFilter({
  1. required CVPathFrom pathFrom,
  2. required String pathString,
  3. required int diameter,
  4. required int sigmaColor,
  5. required int sigmaSpace,
  6. required int borderType,
})

Implementation

static Future<Uint8List?> bilateralFilter({
  required CVPathFrom pathFrom,
  required String pathString,
  required int diameter,
  required int sigmaColor,
  required int sigmaSpace,
  required int borderType,
}) async {
  File _file;
  Uint8List _fileAssets;

  Uint8List? result;

  int diameterTemp = (diameter >= 0)
      ? (diameter == 0)
          ? 1
          : diameter
      : -1 * diameter;
  int borderTypeTemp = Utils.verBorderType(borderType);

  switch (pathFrom) {
    case CVPathFrom.GALLERY_CAMERA:
      result = await platform.invokeMethod('bilateralFilter', {
        "pathType": 1,
        "pathString": pathString,
        "data": Uint8List(0),
        'diameter': diameterTemp,
        "sigmaColor": sigmaColor,
        "sigmaSpace": sigmaSpace,
        "borderType": borderTypeTemp,
      });
      break;
    case CVPathFrom.URL:
      _file = await DefaultCacheManager().getSingleFile(pathString);
      result = await platform.invokeMethod('bilateralFilter', {
        "pathType": 2,
        "pathString": '',
        "data": await _file.readAsBytes(),
        "diameter": diameterTemp,
        "sigmaColor": sigmaColor,
        "sigmaSpace": sigmaSpace,
        "borderType": borderTypeTemp,
      });

      break;
    case CVPathFrom.ASSETS:
      _fileAssets = await Utils.imgAssets2Uint8List(pathString);
      result = await platform.invokeMethod('bilateralFilter', {
        "pathType": 3,
        "pathString": '',
        "data": _fileAssets,
        "diameter": diameterTemp,
        "sigmaColor": sigmaColor,
        "sigmaSpace": sigmaSpace,
        "borderType": borderTypeTemp,
      });
      break;
  }

  return result;
}