takePicture static method
Capture image from camera
Implementation
static Future<File?> takePicture() async {
if (!_isCapturing) {
_isCapturing = true;
try {
// Verify camera is initialized
if (_cameraController == null) {
print('Cannot take picture: Camera controller is null');
return null;
}
bool isInitialized = false;
try {
isInitialized = _cameraController!.value.isInitialized;
} catch (e) {
print('Error checking camera initialization before capture: $e');
return null;
}
if (!isInitialized) {
print('Cannot take picture: Camera is not initialized');
return null;
}
XFile file = await _cameraController!.takePicture();
final bytes = await file.readAsBytes();
final fileSize = await file.length();
return File(
file.name, file.path.split('.').last, fileSize, file.path, bytes);
} catch (e) {
print('Capture error: $e');
return null;
} finally {
_isCapturing = false;
}
}
return null;
}