Skip to content

A Flutter Camera Library. Easy to use, less code, full function(Taking picture, recording, scanning code, add watermark).Flutter开源相机库,使用简单,代码量少(包含拍照,录像,扫码,拍照加水印)

License

Notifications You must be signed in to change notification settings

cgztzero/FlutterCameraX

Repository files navigation

一个使用简单,代码量极少的flutter相机库, 支持拍照,录制视频,扫码,双指缩放功能,拍照加水印功能开发中

首先添加依赖

 flutter_camerax: git: url: https://github.com/cgztzero/FlutterCameraX.git 

1.第一步创建一个相机Controller

final CameraXController _controller = CameraXController(); 

2.第二步在页面中创建相机预览widget,并和Controller绑定

CameraPreviewWidget( cameraController: _controller, cameraOption: CameraOption(camera: CameraType.back),//相机参数,可以不设置 width: 100,//预览的宽高,也可以不设置, height: 100, cameraCallBack: (int? code, String? message) { //相机错误的回调,可以不设置 }, //切换摄像头,初始化等耗时操作的loading,可以自定义 loadingWidget: const SizedBox( width: 50, height: 50, child: CircularProgressIndicator(), ), ) 

3.可以通过Controller进行相关操作了

拍照的方法 
_button( text: 'TakePicture', onTap: () async { final image = await _controller.takePicture(); debugPrint('image file path:${image?.path}'); }, ) 
切换摄像头 
_button(text: 'switch', onTap: () => _controller.switchCamera()), 
录制视频 
if (_controller.isRecording()) { _controller.stopRecording(); } else { _controller.startVideoRecording( max: 60,//视频录制最长时间,单位秒,不设置则没有限制 onRecordFinish: (file) => debugPrint('video file path:${file.path}'), ); } 
相机一些初始化参数 
CameraOption( camera: CameraType.back,//摄像头类型 默认back resolutionPresetType: ResolutionPresetType.veryHigh,//图片质量 默认high enableAudio: true,//是否可以录音 默认false flashType: FlashType.auto,//闪光灯 默认auto ) 
支持扫描二维码只需要新增一个预览回调即可 
CameraPreviewWidget( cameraController: _controller, cameraOption: CameraOption( camera: CameraType.back, resolutionPresetType: ResolutionPresetType.veryHigh, enableAudio: true, flashType: FlashType.auto, ), onScanSuccess: (list) { //遍历list即可,因为一张图片里可能有多个二维码 }, ) 
也可以用Controller暂停/开启预览 
_controller.pausePreview(); _controller.resumePreview(); 

About

A Flutter Camera Library. Easy to use, less code, full function(Taking picture, recording, scanning code, add watermark).Flutter开源相机库,使用简单,代码量少(包含拍照,录像,扫码,拍照加水印)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published