show static method

Future<CroppedFile?> show({
  1. required BuildContext context,
  2. required String imagePath,
  3. CropStyle cropStyle = CropStyle.rectangle,
  4. double? aspectRatio,
  5. bool allowRotation = true,
})

Implementation

static Future<CroppedFile?> show({
  required BuildContext context,
  required String imagePath,
  CropStyle cropStyle = CropStyle.rectangle,
  double? aspectRatio,
  bool allowRotation = true,
}) async {
  final imageCropperCropStyle =
      cropStyle == CropStyle.circle
          ? image_cropper.CropStyle.circle
          : image_cropper.CropStyle.rectangle;

  final List<image_cropper.CropAspectRatioPreset>
      presets = aspectRatio != null
          ? [image_cropper.CropAspectRatioPreset.original]
          : [
              image_cropper
                  .CropAspectRatioPreset.original,
              image_cropper.CropAspectRatioPreset.square,
              image_cropper
                  .CropAspectRatioPreset.ratio4x3,
              image_cropper
                  .CropAspectRatioPreset.ratio16x9,
            ];

  final result =
      await image_cropper.ImageCropper().cropImage(
    sourcePath: imagePath,
    uiSettings: [
      image_cropper.AndroidUiSettings(
        toolbarTitle: 'Crop Image',
        toolbarColor: Theme.of(context).primaryColor,
        toolbarWidgetColor: Colors.white,
        activeControlsWidgetColor:
            Theme.of(context).primaryColor,
        cropStyle: imageCropperCropStyle,
        aspectRatioPresets: presets,
        lockAspectRatio: aspectRatio != null,
        showCropGrid: true,
        initAspectRatio:
            image_cropper.CropAspectRatioPreset.original,
      ),
      image_cropper.IOSUiSettings(
        title: 'Crop Image',
        cancelButtonTitle: 'Cancel',
        doneButtonTitle: 'Done',
        aspectRatioPresets: presets.length > 1
            ? presets.sublist(0, 2)
            : presets,
        resetAspectRatioEnabled: aspectRatio == null,
        aspectRatioLockEnabled: aspectRatio != null,
        rotateButtonsHidden: !allowRotation,
      ),
      image_cropper.WebUiSettings(
        context: context,
        presentStyle:
            image_cropper.WebPresentStyle.dialog,
        size: const image_cropper.CropperSize(
            width: 520, height: 520),
      ),
    ],
  );

  if (result == null) return null;
  return CroppedFile(result.path);
}