Open only Front Camera from any mobile device in flutter.
Hello guys,
This post will help you in opening front cam and capture image from it.
We will create a dart page that will capture image and returns the captured file.
Mainly, We Need the package " camera: ^0.10.5+9 ".
then later,
import 'dart:async'; import 'dart:io'; import 'package:GenERP/Utils/ColorConstant.dart'; import 'package:camera/camera.dart'; import 'package:flutter/material.dart'; import '../Services/other_services.dart'; import '../Utils/FontConstant.dart'; import '../Utils/MyWidgets.dart'; class FrontCameraCapture extends StatefulWidget { const FrontCameraCapture({Key? key}) : super(key: key); @override State<FrontCameraCapture> createState() => _CheckOutScreenState(); } class _CheckOutScreenState extends State<FrontCameraCapture> { late List<CameraDescription> _cameras; late CameraController cam_controller; File? _image; var image_picked = 0; bool isLoading = true; Future<void> _getavailableCameras() async { _cameras = await availableCameras(); cam_controller = CameraController(_cameras[1], ResolutionPreset.max); cam_controller.initialize().then((_) { if (!mounted) { return; } setState(() { isLoading=false; }); }).catchError((Object e) { if (e is CameraException) { switch (e.code) { case 'CameraAccessDenied': toast(context, "CameraAccessDenied"); // Handle access errors here. break; default: toast(context, "Unable to Open"); // Handle other errors here. break; } } }); } @override void initState() { _getavailableCameras(); // _getLocationPermission(); super.initState(); } Widget build(BuildContext context) { Size size = MediaQuery.of(context).size; return Scaffold( appBar: AppBar( backgroundColor: ColorConstant.erp_appColor, title: Text( 'Capture Image', style: TextStyle( fontSize: FontConstant.Size18, fontWeight: FontWeight.bold, color: Colors.white, ), ), leading: IconButton( icon: Icon( Icons.arrow_back, color: Colors.white, ), onPressed: () { Navigator.pop(context); }, ), ), body: (isLoading) ? Loaders() : ListView( // Wrap the Column with a ListView shrinkWrap: true, physics: NeverScrollableScrollPhysics(),// Set shrinkWrap to true children: [ Container( child: CameraPreview(cam_controller), ), Container( padding: EdgeInsets.all(10), height: size.height * 0.1, child: TextButton( style: ButtonStyle( backgroundColor: MaterialStatePropertyAll(Colors.white70), overlayColor: MaterialStatePropertyAll(Colors.white70), ), onPressed: () async { final image = await cam_controller.takePicture(); _image = File(image.path); Navigator.pop(context, _image); }, child: Icon( Icons.camera, size: 35, color: Colors.black, ), ), ), ], ), ); } }
As the above code will help you out for the process.
Thank you.
Tagged: