cropImage static method
Future<FileData?>
cropImage({
- required String filePath,
- dynamic action(
- FileData file
- int? maxWidth,
- int? maxHeight,
- CropStyle cropStyle = CropStyle.rectangle,
- CropAspectRatio cropAspectRatio = const CropAspectRatio(ratioX: 3, ratioY: 1.2),
- ImageCompressFormat imageCompressFormat = ImageCompressFormat.png,
- AndroidUiSettings? androidUiSettings,
- WebUiSettings? webUiSettings,
- IOSUiSettings? iOSUiSettings,
- Color? activeControlsWidgetColor,
- Color? statusBarColor,
- Color? toolbarColor,
- Color? toolbarWidgetColor,
- List<
CropAspectRatioPreset> aspectRatioPresets = const <CropAspectRatioPreset>[CropAspectRatioPreset.original, CropAspectRatioPreset.square, CropAspectRatioPreset.ratio3x2, CropAspectRatioPreset.ratio4x3, CropAspectRatioPreset.ratio16x9],
Implementation
static Future<FileData?> cropImage({
required final String filePath,
final Function(FileData file)? action,
final int? maxWidth,
final int? maxHeight,
final CropStyle cropStyle = CropStyle.rectangle,
final CropAspectRatio cropAspectRatio = const CropAspectRatio(ratioX: 3, ratioY: 1.2),
final ImageCompressFormat imageCompressFormat = ImageCompressFormat.png,
final AndroidUiSettings? androidUiSettings,
final WebUiSettings? webUiSettings,
final IOSUiSettings? iOSUiSettings,
final Color? activeControlsWidgetColor,
final Color? statusBarColor,
final Color? toolbarColor,
final Color? toolbarWidgetColor,
final List<CropAspectRatioPreset> aspectRatioPresets = const <CropAspectRatioPreset>[
CropAspectRatioPreset.original,
CropAspectRatioPreset.square,
CropAspectRatioPreset.ratio3x2,
CropAspectRatioPreset.ratio4x3,
CropAspectRatioPreset.ratio16x9,
],
}) async {
final CroppedFile? result = await ImageCropper().cropImage(
sourcePath: filePath,
maxWidth: maxWidth,
maxHeight: maxHeight,
aspectRatio: cropAspectRatio,
compressFormat: imageCompressFormat,
uiSettings: <PlatformUiSettings>[
androidUiSettings ??
AndroidUiSettings(
aspectRatioPresets: aspectRatioPresets,
cropStyle: cropStyle,
toolbarTitle: "Crop Your Image",
showCropGrid: true,
hideBottomControls: false,
lockAspectRatio: true,
initAspectRatio: CropAspectRatioPreset.square,
activeControlsWidgetColor: activeControlsWidgetColor ?? Theme.of(navigatorKey.currentContext!).colorScheme.primary,
statusBarColor: statusBarColor ?? Theme.of(navigatorKey.currentContext!).colorScheme.primary,
toolbarColor: toolbarColor ?? Theme.of(navigatorKey.currentContext!).colorScheme.primary,
toolbarWidgetColor: toolbarWidgetColor ?? Theme.of(navigatorKey.currentContext!).cardColor,
),
iOSUiSettings ??
IOSUiSettings(
aspectRatioPresets: aspectRatioPresets,
cropStyle: cropStyle,
resetAspectRatioEnabled: false,
minimumAspectRatio: 1,
aspectRatioPickerButtonHidden: true,
title: "Crop Your Image",
aspectRatioLockDimensionSwapEnabled: true,
aspectRatioLockEnabled: true,
hidesNavigationBar: true,
),
webUiSettings ??
WebUiSettings(
context: navigatorKey.currentContext!,
cropBoxMovable: true,
background: true,
center: true,
checkCrossOrigin: true,
checkOrientation: true,
cropBoxResizable: true,
guides: true,
highlight: true,
rotatable: true,
zoomable: true,
zoomOnTouch: true,
zoomOnWheel: true,
),
],
);
final FileData fileData = FileData(
path: result?.path,
bytes: await result?.readAsBytes(),
extension: result?.path.split(".").last,
);
if (action != null) action(fileData);
return fileData;
}