cropImage method

Future<File?> cropImage(
  1. File imageFile, {
  2. CropSettings? cropSettings,
})

Implementation

Future<File?> cropImage(
  File imageFile, {
  CropSettings? cropSettings,
}) async {
  final settings = cropSettings ?? CropSettings();

  try {
    final croppedFile = await ImageCropper().cropImage(
      sourcePath: imageFile.path,
      aspectRatio: settings.aspectRatio,
      compressQuality: settings.compressQuality,
      compressFormat: settings.compressFormat,
      uiSettings: [
        AndroidUiSettings(
          toolbarTitle: settings.toolbarTitle,
          toolbarColor: settings.toolbarColor,
          toolbarWidgetColor: settings.toolbarWidgetColor,
          backgroundColor: settings.backgroundColor,
          activeControlsWidgetColor: settings.primaryColor,
          initAspectRatio: settings.initAspectRatio,
          lockAspectRatio: settings.lockAspectRatio,
          hideBottomControls: settings.hideBottomControls,
        ),
        IOSUiSettings(
          title: settings.toolbarTitle,
          cancelButtonTitle: 'Cancel',
          doneButtonTitle: 'Done',
          rotateButtonsHidden: true,
          rotateClockwiseButtonHidden: true,
          aspectRatioLockEnabled: settings.lockAspectRatio,
          resetAspectRatioEnabled: !settings.lockAspectRatio,
        ),
      ],
    );

    if (croppedFile != null) {
      return File(croppedFile.path);
    }
  } catch (e) {
    print('Error cropping image: $e');
  }
  return null;
}