搜索插件、代码仓与 APP 分类

插件详情v2.0.6

image_pickers

image_pickers 支持本地图片或视频的多选,支持将网络图片或视频保存到相册,支持预览视频或图片

AndroidiOS
近 30 天下载
1960
喜欢数
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>

所属分类

源码仓库

使用此插件的项目