advance_image_picker
Flutter plugin for selecting multiple images from the Android and iOS image library, taking new pictures with the camera, and edit them before using such as rotation, cropping, adding sticker/filters.
Key Features
Display live camera preview in a widget.
Adjust exposure
Zoom camera preview
Capture photo without saving into device library
Capture with preview size mode & full screen size mode
Select photos from device library by browsing photo albums
Preview selected images
Support button label & text translation
Easy image editing features, such as rotation, cropping, adding sticker/filters
Object detector & OCR (implement in future)
Apps using this package
freemar.vn - Shopping app for Vietnamese
Google Play
App Store
trainghiem.vn - Find places to have fun, find places to experience!
Google Play
App Store
Demo & Screenshots
Installation
iOS
Add these settings to the ios/Runner/Info.plist
<key>NSCameraUsageDescription</key>
<string>Can I use the camera please?</string>
<key>NSMicrophoneUsageDescription</key>
<string>Can I use the mic please?</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>App need your agree, can visit your album</string>
```
### Android
Change the minimum Android sdk version to 21 (or higher) in your android/app/build.gradle
file.
minSdkVersion 21
```
Recommended add android:requestLegacyExternalStorage="true"
to your AndroidManifest.xml
, just like next.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="vn.weta.freemarimagepickerexample">
<application
android:name="io.flutter.app.FlutterApplication"
android:label="freemarimagepicker_example"
android:requestLegacyExternalStorage="true"
android:icon="@mipmap/ic_launcher">
</application>
</manifest>
```
## Usages
Add to pubspec
dependencies:
advance_image_picker: $latest_version
```
Import dart code
import 'package:advance_image_picker/advance_image_picker.dart';
```
Setting configs & text translate function
// Setup image picker configs (global settings for app)
var configs = ImagePickerConfigs();
configs.appBarTextColor = Colors.black;
configs.stickerFeatureEnabled = false; // ON/OFF features
configs.translateFunc = (name, value) => Intl.message(value, name: name); // Use intl function
```
Sample for usage
// Get max 5 images
List<ImageObject> objects =
await Navigator.of(context).push(
PageRouteBuilder(pageBuilder:
(context, animation, __) {
return ImagePicker(maxCount: 5);
}));
if (objects.length > 0) {
setState(() {
imageFiles.addAll(objects
.map((e) => e.modifiedPath)
.toList());
});
}
```
## GitHub
https://github.com/weta-vn/freemar_image_picker
Source: https://flutterawesome.com/flutter-plugin-for-selecting-images-from-the-android-and-ios-image-library/