Skip to content

flutter-package/images_picker

Repository files navigation

images_picker

images-picker

Flutter plugin for selecting images/videos from the Android and iOS image library, and taking pictures/videos with the camera,save image/video to album/gallery

ios(10+): ZLPhotoBrowser

android(21+): PictureSelector

Support

  • pick multiple images/videos from photo album (wechat style)
  • use camera to take image/video
  • crop images with custom aspectRatio
  • compress images with quality/maxSize
  • save image/video to album/gallery
  • localizations currently support
    • System, Chinese, ChineseTraditional, English, Japanese, French, Korean, German, Vietnamese,

Install

For ios:

<key>NSCameraUsageDescription</key> <string>Example usage description</string> <key>NSMicrophoneUsageDescription</key> <string>Example usage description</string> <key>NSPhotoLibraryUsageDescription</key> <string>Example usage description</string> 

For android:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
Goto android/app/build.gradle minSdkVersion 21 

And,

images_picker: ^newest
import "package:images_picker/images_picker.dart";

Usage

  • simple picker image
Future getImage() async { List<Media> res = await ImagesPicker.pick( count: 3, pickType: PickType.image, ); // Media // .path // .thumbPath (path for video thumb) // .size (kb) }
  • simple picker video
Future getImage() async { List<Media> res = await ImagesPicker.pick( count: 3, pickType: PickType.video, ); // Media // .path // .thumbPath (path for video thumb) // .size (kb) }
  • simple open camera
ImagesPicker.openCamera( pickType: PickType.video, maxTime: 15, // record video max time );
  • add gif support
ImagesPicker.pick( // ... gif: true, // default is true );
  • add max video duration pick
ImagesPicker.pick( // ... maxTime: 30, // second );
  • add cropper (gif crop unsupported)
ImagesPicker.pick( // ... // when cropOpt isn't null, crop is enabled cropOpt: CropOption( aspectRatio: CropAspectRatio.custom, cropType: CropType.rect, // currently for android ), );
  • add compress
ImagesPicker.pick( // ... // when maxSize/quality isn't null, compress is enabled quality: 0.8, // only for android maxSize: 500, // only for ios (kb) );
  • set language
ImagesPicker.pick( language: Language.English, // you can set Language.System for following phone language )
  • save file to album
ImagesPicker.saveImageToAlbum(file, albumName: ""); ImagesPicker.saveVideoToAlbum(file, albumName: "");
  • save network file to album

because the HTTP request is uncontrollable in plugin(such as progress),you must download file ahead of time

void save() async { File file = await downloadFile('https://xxx.example.com/xx.png'); bool res = await ImagesPicker.saveImageToAlbum(file, albumName: ""); print(res); } Future<File> downloadFile(String url) async { Dio simple = Dio(); String savePath = Directory.systemTemp.path + '/' + url.split('/').last; await simple.download(url, savePath, options: Options(responseType: ResponseType.bytes)); print(savePath); File file = new File(savePath); return file; }

All params

// for pick int count = 1, PickType pickType = PickType.image, bool gif = true, int maxTime = 120, CropOption cropOpt, int maxSize, double quality, // for camera PickType pickType = PickType.image, int maxTime = 15, CropOption cropOpt, int maxSize, double quality,

proguard-rules

-keep class com.luck.picture.lib.** { *; } -dontwarn com.yalantis.ucrop** -keep class com.yalantis.ucrop** { *; } -keep interface com.yalantis.ucrop** { *; } 

License

MIT License

About

Flutter plugin for selecting images/videos from the Android and iOS gallery, and taking pictures/videos with the camera

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors