pickImage method
Future<XFile?>
pickImage({
- required BuildContext context,
- required MountedCheck mounted,
- required ImageSource source,
- bool crop = false,
- bool compress = false,
- int quality = 35,
- double? maxHeight,
- double? maxWidth,
Picks an image from the given source, optionally crops and compresses it.
Uses mounted callback to avoid context misuse after async gaps.
Implementation
Future<XFile?> pickImage({
required BuildContext context,
required MountedCheck mounted,
required ImageSource source,
bool crop = false,
bool compress = false,
int quality = 35,
double? maxHeight,
double? maxWidth,
}) async {
try {
XFile? pickedFile = await pickerService.pickImage(
source: source,
maxHeight: maxHeight,
maxWidth: maxWidth,
imageQuality: quality,
);
if (pickedFile == null) return null;
if (crop && mounted()) {
pickedFile = await cropperService.cropImage(
pickedFile: pickedFile,
context: context,
);
}
if (compress) {
pickedFile = await compressorService.compressImage(
pickedFile,
quality: quality,
);
}
return pickedFile;
} catch (e) {
debugPrint('ImagePickerHandler | pickImage failed: $e');
return null;
}
}