captureImage static method
Future<String?>
captureImage({
- required BuildContext context,
- required bool fromCamera,
- String? fileType,
- int? sizeLimit,
- required List uniqueNameList,
Implementation
static Future<String?> captureImage({
required BuildContext context,
required bool fromCamera,
String? fileType,
int? sizeLimit,
required List<dynamic> uniqueNameList,
}) async {
OtherFunctions.hideKeyboard();
File picture = File('');
if (fromCamera) {
try {
WidgetsFlutterBinding.ensureInitialized();
final cameras = await availableCameras();
// picture = await Navigator.of(context).push(MaterialPageRoute(
// builder: (context) => CameraPage(cameras: cameras)));
XFile? xFile = await Navigator.of(context).push(MaterialPageRoute(
builder: (context) => CameraPage(cameras: cameras)));
picture = File(xFile?.path ?? '');
} catch (e) {
print('Failed to capture image: $e');
}
} else {
if(kIsWeb){
const XTypeGroup typeGroup = XTypeGroup(
label: 'images',
extensions: <String>['jpg'],
);
final XFile? file =
await openFile(acceptedTypeGroups: <XTypeGroup>[typeGroup]);
// #enddocregion SingleOpen
final String fileName = file!.name;
final String filePath = file.path;
print("Android $filePath/${fileName}");
picture = File(filePath);
}else{
try {
FilePickerResult? result =
await FilePicker.platform.pickFiles(type: FileType.image);
if (result != null) {
PlatformFile file = result.files.first;
picture = File(file.path!);
}
} catch (e) {
print('Failed to pick image: $e');
}
}
}
// picture =
// await renameImage(picture: picture, uniqueNameList: uniqueNameList) ??
// File('');
// print('picture.path: $picture');
if(!kIsWeb){
if (picture != File('') &&
(fileType != null && fileType.trim() != '' || sizeLimit != null)) {
picture = await changeFormatAndCompressImage(
image: picture,
format: fileType?.trim().toLowerCase() ?? 'jpeg',
sizeLimit: sizeLimit!) ??
File('');
}}
print('picture.path:: ${picture.path}');
//deleteImagePath([]);
return picture.path;
}