A camera picker in WeChat style

  Camera, WeChat

Flutter WeChat Camera Picker

Language: English | 中文简体

camera picker which is an extension for wechat_assets_picker. Based on camera for camera functions and photo_manager for asset implementation.

Features sparkles

  •  closed_lock_with_key Non-nullable by default
  •  green_heart 99% similar to WeChat style
  •  camera Picture taking support
    •  sunny Exposure adjust support
    •  mag Scale with pinch support
  •  movie_camera Video recording support
    •  stopwatch Duration limitation support
    •  mag Scale when recording support
  •  🖾 Foreground custom widget builder support

Screenshots camera_flash

Preparing for use lollipop

Version constraints

Flutter SDK: >=2.0.0 .

Setup

Usage book

NameTypeDescriptionDefault Value
enableRecordingboolWhether the picker can record video.false
onlyEnableRecordingboolWhether the picker can only record video. Only available when enableRecording is true .false
enableAudioboolWhether Whether the picker should record audio. Only available with recording.true
enableSetExposureboolWhether users can set the exposure point by tapping.true
enableExposureControlOnPointboolWhether users can adjust exposure according to the set point.true
enablePinchToZoomboolWhether users can zoom the camera by pinch.true
enablePullToZoomInRecordboolWhether users can zoom by pulling up when recording video.true
shouldDeletePreviewFileboolWhether the preview file will be delete when pop.false
shouldLockPortraitboolWhether the orientation should be set to portraittrue
maximumRecordingDurationDurationThe maximum duration of the video recording process.const Duration(seconds: 15)
themeThemeData?Theme data for the picker.CameraPicker.themeData(C.themeColor)
textDelegateCameraPickerTextDelegate?Text delegate that controls text in widgets.DefaultCameraPickerTextDelegate
resolutionPresetResolutionPresetPresent resolution for the camera.ResolutionPreset.max
cameraQuarterTurnsintThe number of clockwise quarter turns the camera view should be rotated.0
imageFormatGroupImageFormatGroupDescribes the output of the raw image format.ImageFormatGroup.unknown
foregroundBuilderWidget Function(CameraValue)?The foreground widget builder which will cover the whole camera preview.null
onEntitySavingSaveEntityCallback?The callback type define for saving entity in the viewer.null

Simple usage

final AssetEntity? entity = await CameraPicker.pickFromCamera(context);

Frequent asked question thought_balloon

Why there are over-scaled issue when shouldLockPortrait set to false?

Currently the rotate synchronization is not supported. The DeviceOrientation from the CameraValue is different from the one comes from flutter when the user is rotating devices. The preview widget is synchronized when both orientation is the same. Issue: https://github.com/flutter/flutter/issues/78685

Download camera picker app source code on GitHub