cropImage method

Future<File?> cropImage({
  1. required File imageFile,
  2. required BuildContext context,
  3. AndroidUiSettings? androidUiSettings,
  4. IOSUiSettings? iosUiSettings,
})

Crops an image from the provided imageFile using the ImageCropper package.

Returns a File object of the cropped image, or null if cropping was cancelled.

Allows customization of UI settings for both Android and iOS platforms through androidUiSettings and iosUiSettings.

Primary theme color is used passed through required context.

Example usage:

File? croppedImage = await RhUtils.instance.cropImage(
  imageFile: File('path/to/image.jpg'),
  context: context,
);

Implementation

Future<File?> cropImage({
  required File imageFile,
  required BuildContext context,
  AndroidUiSettings? androidUiSettings,
  IOSUiSettings? iosUiSettings,
}) async {
  CroppedFile? cropped = await ImageCropper().cropImage(
    sourcePath: imageFile.path,
    uiSettings: [
      androidUiSettings ??
          AndroidUiSettings(
            toolbarTitle: 'Crop Photo',
            toolbarColor: Theme.of(context).colorScheme.surface,
            toolbarWidgetColor:
                (Theme.of(context).brightness == Brightness.light)
                    ? Theme.of(context).colorScheme.primary
                    : Theme.of(context).colorScheme.secondary,
            activeControlsWidgetColor:
                (Theme.of(context).brightness == Brightness.light)
                    ? Theme.of(context).colorScheme.primary
                    : Theme.of(context).colorScheme.secondary,
          ),
      iosUiSettings ?? IOSUiSettings(),
    ],
  );
  if (cropped == null) return null;
  return File(cropped.path);
}