onTakePhoto method
Implementation
Future<void> onTakePhoto() async {
late int rotate;
if (currentOrientation.value == DeviceOrientation.landscapeLeft) {
isPortraitUpWhileTakePhoto(false);
rotate = -90;
} else if (currentOrientation.value == DeviceOrientation.landscapeRight) {
isPortraitUpWhileTakePhoto(false);
rotate = 90;
} else {
isPortraitUpWhileTakePhoto(true);
rotate = 0;
}
///
if (previewFile.value == null) {
previewFile.value = await cameraController?.takePicture();
await cameraController?.pausePreview();
if (previewFile.value != null) {
isResizing.value = true;
final resizeFile = await Utils.compressImageV2(
previewFile.value!,
100,
rotate: rotate,
imageSizeCallBack: (p0) {
// localImageSize.value = p0;
},
);
previewFile.value = resizeFile;
isResizing.value = false;
///
imageLocation = currentLocation;
createdDateTime = DateTime.now().toUtc().toIso8601String();
callEngine(resizeFile);
if (savePhotoAfterShot == true) {
await SaverGallery.saveImage(
await resizeFile.readAsBytes(),
fileName: resizeFile.name,
skipIfExists: true,
);
}
await cameraController?.resumePreview();
}
} else {
await cameraController?.resumePreview();
}
}