# flutter_wechat_camera_picker
**Repository Path**: sbsuwei666/flutter_wechat_camera_picker
## Basic Information
- **Project Name**: flutter_wechat_camera_picker
- **Description**: clone from https://github.com/ihpcoder/flutter_wechat_camera_picker.git and custom changed
- **Primary Language**: Dart
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2022-03-29
- **Last Updated**: 2022-03-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Flutter WeChat Camera Picker
[](https://pub.dev/packages/wechat_camera_picker)
[](https://pub.dev/packages/wechat_camera_picker)
[](https://github.com/fluttercandies/flutter_wechat_camera_picker/stargazers)
[](https://github.com/fluttercandies/flutter_wechat_camera_picker/network)
[](https://github.com/fluttercandies/flutter_wechat_camera_picker/actions?query=workflow%3A%22Build+test%22)
[](https://www.codefactor.io/repository/github/fluttercandies/flutter_wechat_camera_picker)
[](https://github.com/fluttercandies/flutter_wechat_camera_picker/blob/master/LICENSE)
Language: English | [䏿įŽäŊ](README-ZH.md)
A **camera picker** which is an extension for
[wechat_assets_picker](https://pub.dev/packages/wechat_assets_picker).
Based on `camera` for camera functions and `photo_manager` for asset implementation.
## Category đ
- [Flutter WeChat Camera Picker](#flutter-wechat-camera-picker)
- [Category đ](#category-)
- [Features â¨](#features-)
- [Screenshots đ¸](#screenshots-)
- [Preparing for use đ](#preparing-for-use-)
- [Usage đ](#usage-)
- [Simple usage](#simple-usage)
- [Frequent asked question đ](#frequent-asked-question-)
- [Why there are over-scaled issue when `shouldLockPortrait` set to false ?](#why-there-are-over-scaled-issue-when-shouldlockportrait-set-to-false)
- [Contributors â¨](#contributors-)
## Features â¨
- [x] đ Non-nullable by default
- [x] đ 99% similar to WeChat style
- [x] đˇ Picture taking support
- [x] âī¸ Exposure adjust support
- [x] đī¸ Scale with pinch support
- [x] đĨ Video recording support
- [x] âą Duration limitation support
- [x] đ Scale when recording support
- [x] đž Foreground custom widget builder support
## Screenshots đ¸
|  |  |
| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- |
|  |  |
## Preparing for use đ
### Version constraints
Flutter SDK: `>=2.0.0` .
### Setup
- [wechat_assets_picker#preparing-for-use](https://github.com/fluttercandies/flutter_wechat_assets_picker#preparing-for-use-)
- [camera#installation](https://pub.dev/packages/camera#installation)
## Usage đ
| Name | Type | Description | Default Value |
| ---------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------- | -------------------------------------- |
| enableRecording | `bool` | Whether the picker can record video. | `false` |
| onlyEnableRecording | `bool` | Whether the picker can only record video. Only available when `enableRecording` is `true `. | `false` |
| enableAudio | `bool` | Whether Whether the picker should record audio. Only available with recording. | `true` |
| enableSetExposure | `bool` | Whether users can set the exposure point by tapping. | `true` |
| enableExposureControlOnPoint | `bool` | Whether users can adjust exposure according to the set point. | `true` |
| enablePinchToZoom | `bool` | Whether users can zoom the camera by pinch. | `true` |
| enablePullToZoomInRecord | `bool` | Whether users can zoom by pulling up when recording video. | `true` |
| shouldDeletePreviewFile | `bool` | Whether the preview file will be delete when pop. | `false` |
| shouldLockPortrait | `bool` | Whether the orientation should be set to portrait | `true` |
| maximumRecordingDuration | `Duration` | The maximum duration of the video recording process. | `const Duration(seconds: 15)` |
| theme | `ThemeData?` | Theme data for the picker. | `CameraPicker.themeData(C.themeColor)` |
| textDelegate | `CameraPickerTextDelegate?` | Text delegate that controls text in widgets. | `DefaultCameraPickerTextDelegate` |
| resolutionPreset | `ResolutionPreset` | Present resolution for the camera. | `ResolutionPreset.max` |
| cameraQuarterTurns | `int` | The number of clockwise quarter turns the camera view should be rotated. | `0` |
| imageFormatGroup | `ImageFormatGroup` | Describes the output of the raw image format. | `ImageFormatGroup.unknown` |
| foregroundBuilder | `Widget Function(CameraValue)?` | The foreground widget builder which will cover the whole camera preview. | null |
| onEntitySaving | `SaveEntityCallback?` | The callback type define for saving entity in the viewer. | null |
### Simple usage
```dart
final AssetEntity? entity = await CameraPicker.pickFromCamera(context);
```
## Frequent asked question đ
### 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
## Contributors â¨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
Alex Li đģ đ¨ đ đĄ đ¤ đ§ đŦ đ |
Caijinglong đĄ đ¤ |
Lael đ |
mjl0602 đģ đ¤ |
AliasWang đģ đ¤ |