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

패키지 상세v2.0.6

image_pickers

image_pickers는 로컬 이미지 또는 비디오의 다중 선택을 지원하며, 네트워크 이미지나 비디오를 앨범에 저장하는 기능과 이미지 또는 비디오 미리보기 기능도 지원합니다

AndroidiOS
30일 다운로드
2천
좋아요
96
Pub 점수
140

패키지 설치

flutter pub add image_pickers

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

image_pickers는 사용자가 로컬 이미지 또는 비디오를 여러 개 선택하고, 네트워크 기반 미디어를 디바이스 앨범에 저장하며, 앱 내에서 이미지와 비디오를 직접 미리 볼 수 있도록 해주는 Flutter 패키지입니다. Android 및 iOS 플랫폼을 지원하며, 원활한 멀티미디어 선택 경험을 제공합니다. 다양한 소스의 미디어 파일 처리를 간소화하여 풍부한 미디어 입력이 필요한 앱에 적합합니다. 네이티브 플랫폼 기능과의 통합으로 부드러운 성능과 신뢰할 수 있는 파일 관리를 보장합니다.

사용 사례

  • 여러 이미지 및 비디오 선택
  • 온라인 이미지/비디오를 장치 앨범에 저장하는 방법
  • 업로드 전에 선택한 미디어 미리보기
  • 사진 또는 비디오 공유 앱 만들기
  • 사용자 프로필에 미디어 캡처 통합

주요 기능

  • 여러 로컬 미디어 선택 지원
  • 네트워크 미디어를 디바이스 앨범에 저장합니다
  • 내장된 미디어 미리보기 기능
  • 크로스 플랫폼 호환성 (Android 및 iOS)
  • pub add 명령을 통한 간단한 통합

적합한 대상

  • 소셜 미디어 앱
  • 사진 편집 도구
  • 사용자 프로필 사용자 정의
  • 콘텐츠 생성 플랫폼
  • 전자상거래 제품 업로드

고려 사항

  • 미디어 접근을 위한 적절한 권한이 필요합니다
  • 대규모 미디어 파일 처리를 위해 추가적인 처리가 필요할 수 있습니다
  • Android 및 iOS 플랫폼에만 제한됨
  • 네이티브 플랫폼 기능에 의존
  • 고해상도 미디어와 함께 가능한 메모리 사용량

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

image_pickers

image_pickers支持本地图片多选,本地视频多选,支持将网络图片保存到相册,支持截图保存到相册,支持将网络视频保存到相册,支持预览视频和预览图片功能,支持主题颜色设置

image pickers support multi-selection of local pictures, multi-selection of local videos, support for saving network pictures to albums, support for saving screenshots to albums, support for saving network videos to albums, support for preview videos and preview images, and support for theme color settings

Supported Platforms

  • Android
  • iOS

iOS : platform :ios, '10.0'

注意 ---> Android请指定您项目中 : targetSdkVersion 34 compileSdkVersion 34,否则 Android 13 可能会出现 无法正常访问图片!

注意 ---> Android请指定您项目中 : targetSdkVersion 34 compileSdkVersion 34,否则 Android 13 可能会出现 无法正常访问图片!

注意 ---> Android请指定您项目中 : targetSdkVersion 34 compileSdkVersion 34,否则 Android 13 可能会出现 无法正常访问图片!

How to Use

# add this line to your dependencies
image_pickers: ^2.0.6
import 'package:image_pickers/image_pickers.dart';


///选择多张图片 Select multiple images
Future<void> selectImages() async {
    List<Media> _listImagePaths = await ImagePickers.pickerPaths(
              galleryMode: GalleryMode.image,
              selectCount: 2,
              showGif: false,
              showCamera: true,
              compressSize: 500,
              uiConfig: UIConfig(uiThemeColor: Color(0xffff0f50)),
              cropConfig: CropConfig(enableCrop: false, width: 2, height: 1));
  }

/// 或者 or
ImagePickers.pickerPaths().then((List medias){
      /// medias 照片路径信息 Photo path information
    });

///选择多个视频 Select multiple videos
Future<void> selectVideos() async {
   List<Media> _listVideoPaths = await ImagePickers.pickerPaths(
          galleryMode: GalleryMode.video,
          selectCount: 5,
        );
  }
///直接打开相机拍摄图片 Open the camera directly to take a picture
ImagePickers.openCamera().then((Media? media){
    /// media 包含照片路径信息 Include photo path information
    /// 未拍照返回 media = null
    if(media != null){
        
    }
  });

///直接打开相机拍摄视频 Open the camera directly to shoot the video
ImagePickers.openCamera(cameraMimeType: CameraMimeType.video).then((media){
    /// media 包含视频路径信息 Contains video path information
    /// 未拍摄视频返回 media = null
    if(media != null){
            
    }
  });

///预览图片 Preview picture
ImagePickers.previewImage(_listImagePaths[index].path);

///预览多张图片或视频 Preview multiple pictures or videos
ImagePickers.previewImagesByMedia(_listImagePaths,index);
///预览多张图片或视频  Preview multiple pictures or videos
ImagePickers.previewImages(paths,index);

///预览视频 Preview video
ImagePickers.previewVideo(_listVideoPaths[index].path);
///保存图片到图库 Save image to gallery
ImagePickers.saveImageToGallery("http://i1.sinaimg.cn/ent/d/2008-06-04/U105P28T3D2048907F326DT20080604225106.jpg");
/// 保存截图图片 ByteData 到图库 Save screenshot image ByteData to gallery
RenderRepaintBoundary boundary = globalKey.currentContext.findRenderObject();
ui.Image image = await boundary.toImage(pixelRatio: 3);
ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png);
Uint8List data = byteData.buffer.asUint8List();

String dataImagePath = await ImagePickers.saveByteDataImageToGallery(data,);

///保存视频到图库 Save video to gallery
ImagePickers.saveVideoToGallery("http://xxxx/xx/xx.mp4");

iOS

Add the following entry to your Info.plist file, located in /Info.plist :

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
<key>NSMicrophoneUsageDescription</key>
<string>...</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>...</string>
<key>NSCameraUsageDescription</key>
<string>...</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>...</string>

카테고리

소스 저장소

이 패키지를 사용하는 프로젝트