패키지, 저장소 및 앱 카테고리 검색

GitHub 저장소flutter-package/images_picker

images_picker

Android 및 iOS 갤러리에서 이미지/동영상을 선택하고 카메라로 사진/동영상을 촬영하기 위한 Flutter 플러그인

images_picker 프로젝트 이미지
스타
66
포크
107
최근 푸시(UTC)
2023. 11. 15.
프로젝트 상태
활성

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

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

flutter-package GitHub avatar
GitHub 작성자

flutter-package ↗

provider some flutter plugin package

언어JavaSwiftDartRubyObjective-C

분류

사용 중인 의존성

의존성 목록 2 개

  • flutter{"sdk":"flutter"}
  • flutter_test개발 의존성{"sdk":"flutter"}

프로젝트에 맞는 저장소를 선택하려면?

사용 목적에 따라 검색하고 개발 활동을 비교한 뒤 원본 저장소에서 요구 사항을 확인하세요.

  1. 이름, 작성자 또는 설명으로 검색하고 기술 주제로 범위를 좁힙니다.
  2. 스타, 포크, 최근 푸시를 함께 비교하세요. 스타는 관심의 지표이며 품질을 보장하지 않습니다.
  3. 사용하기 전에 GitHub에서 README, 라이선스, Issues를 확인하세요.

출처 및 관리

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗