image_picker 0.6.3+1

  • Readme
  • Changelog
  • Example
  • Installing
  • 100

Image Picker plugin for Flutter #

pub package

适用于iOS和Android的Flutter插件,用于从图像库中拾取图像,并使用相机拍摄新照片.

Installation #

首先, 在您的pubspec.yaml文件中将image_picker添加为依赖项 .

iOS #

将以下键添加到您的Info.plist文件中,该文件位于<project root>/ios/Runner/Info.plist

  • NSPhotoLibraryUsageDescription描述为什么您的应用需要照片库的权限. 在视觉编辑器中,这称为" 隐私-照片库使用说明 ".
  • NSCameraUsageDescription描述为什么您的应用需要访问相机. 在视觉编辑器中,这称为" 隐私-相机使用说明 ".
  • NSMicrophoneUsageDescription描述如果您打算录制视频,为什么您的应用需要访问麦克风. 在视觉编辑器中,这称为" 隐私-麦克风使用说明 ".

Android #

无需配置-插件应该可以立即使用.

Example #

import 'package:image_picker/image_picker.dart';

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  File _image;

  Future getImage() async {
    var image = await ImagePicker.pickImage(source: ImageSource.camera);

    setState(() {
      _image = image;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Image Picker Example'),
      ),
      body: Center(
        child: _image == null
            ? Text('No image selected.')
            : Image.file(_image),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: getImage,
        tooltip: 'Pick Image',
        child: Icon(Icons.add_a_photo),
      ),
    );
  }
}

Handling MainActivity destruction on Android #

Android system -- although very rarely -- sometimes kills the MainActivity after the image_picker finishes. When this happens, we lost the data selected from the image_picker. You can use retrieveLostData to retrieve the lost data in this situation. For example:

Future<void> retrieveLostData() async {
  final LostDataResponse response =
      await ImagePicker.retrieveLostData();
  if (response == null) {
    return;
  }
  if (response.file != null) {
    setState(() {
      if (response.type == RetrieveType.video) {
        _handleVideo(response.file);
      } else {
        _handleImage(response.file);
      }
    });
  } else {
    _handleError(response.exception);
  }
}

无法检测到何时发生,因此在正确的位置调用此方法至关重要. 我们建议将其连接到某种启动检查中. 请参考示例应用程序以了解我们如何使用它.

0.6.3+1 #

  • 修复了Android V2嵌入迁移后示例应用程序不会启动图像选择器的问题.

0.6.3 #

  • 支持Android V2嵌入.
  • 迁移到使用新的e2e测试绑定.

0.6.2+3 #

  • 从pubspec.yaml中删除不推荐使用的author:字段
  • 将插件迁移到pubspec平台清单.
  • 需要Flutter SDK 1.10.0或更高版本.

0.6.2+2 #

  • Android:不必缩放图像时,还原图像文件返回逻辑. 修复由0.6.2 + 1引起的旋转回归
  • 应用示例:添加一个对话框以在选择图像时输入maxWidthmaxHeightquality .

0.6.2+1 #

  • Android:修复了选择非图像文件时的崩溃问题.
  • Android:修复不需要的位图缩放.

0.6.2 #

  • iOS:修复了从库中选取内容会导致iOS 13崩溃的问题.

0.6.1+11 #

  • 稳定性和可维护性:更新文档,添加单元测试.

0.6.1+10 #

  • iOS:修复缩放图像时的图像方向问题.

0.6.1+9 #

  • 删除AndroidX警告.

0.6.1+8 #

  • 修复iOS构建和分析器警告.

0.6.1+7 #

  • Android:修复ImagePickerPlugin#onCreate投射上下文,该上下文会导致异常.

0.6.1+6 #

  • 定义iOS的clang模块

0.6.1+5 #

  • 更新和迁移iOS示例项目.

0.6.1+4 #

  • Android:修复了一个回归,该回归使得retrieveLostImage不再起作用.
  • 设置Android单元测试以测试ImagePickerCache并添加图像质量缓存测试.

0.6.1+3 #

  • 修正iOS:修正缩放后所选取图片的方向.
  • 删除试图规范方向的不必要代码.
  • 简单的XCTest代码修复.

0.6.1+2 #

  • androidx.core:core:1.0.2替换对androidx.legacy:legacy-support-v4:1.0.0androidx.core:core:1.0.2

0.6.1+1 #

  • 添加对androidx.annotation:annotation:1.0.0依赖关系.

0.6.1 #

  • 新功能:获取具有自定义质量的图像. 拾取图像时,用户可以传递imageQuality参数来压缩图像.

0.6.0+20 #

  • Android:迁移了信息缓存方法以使用实例方法.

0.6.0+19 #

  • Android:修复内存泄漏,原因是未注销ActivityLifecycleCallbacks.

0.6.0+18 #

  • 修复示例中的视频播放并更新video_player插件依赖性.

0.6.0+17 #

  • iOS:修复了用户使用iOS 11下的设备从相机捕获图像时崩溃的问题.

0.6.0+16 #

  • iOS模拟器:尝试从不存在的相机拍摄图像后修复挂起问题.

0.6.0+15 #

  • Android:拒绝权限而不是忽略权限时会引发异常.

0.6.0+14 #

  • 修复自述文件中的错字.

0.6.0+13 #

  • Android的修正:修正了在某些情况下,当用户从图库中拾取图像时发生崩溃的问题.

0.6.0+12 #

  • 在iOS实现GIFInfo类而不是struct用于GIFInfo .

0.6.0+11 #

  • 不要使用模块导入.

0.6.0+10 #

  • iOS:支持从图库中选择GIF.

0.6.0+9 #

  • 将缺少的模板类型参数添加到invokeMethod调用中.
  • 将Flutter的最低版本提高到1.5.0.
  • 必要时,将invokeMethod替换为invokeMapMethod.

0.6.0+8 #

  • 错误修正:将遗漏的返回语句添加到image_picker示例中.

0.6.0+7 #

  • iOS:重命名对象以遵循Objective-C命名约定,以避免与其他iOS库/框架冲突.

0.6.0+6 #

  • iOS:现在,拾取的图像具有原始图像中的所有正确元数据,包括GPS,方向等.

0.6.0+5 #

  • iOS:添加缺少的导入.

0.6.0+4 #

  • iOS:使用第一个字节确定原始图像类型.
  • iOS:添加了XCTest目标.
  • iOS:现在,拾取的图像具有从原始图像复制的正确EXIF数据.

0.6.0+3 #

  • Android:修复了由于在错误的线程上发送回复消息而导致的断言失败.

0.6.0+2 #

  • Android:图像以其真实扩展名保存,而不是始终使用.jpg .

0.6.0+1 #

  • Android:从远程URL选取图像时使用正确的后缀语法.

0.6.0 #

  • iOS的重大突破:现在,在拾取视频时返回的File对象始终具有正确的路径. 在进行此更改之前,返回的路径可能在file://之前.

0.5.4+3 #

  • 修复示例应用无法加载所选视频的问题.

0.5.4+2 #

  • 如果Android> = M上的清单中存在相机,则请求相机权限.

0.5.4+1 #

  • Bugfix iOS:如果首先访问相机,则取消按钮在图库中不可见.

0.5.4 #

  • 在MainActivity被杀死之后,添加retrieveLostData以检索丢失的数据.

0.5.3+2 #

  • Android:修复在选择图像/视频后销毁MainActivity时导致的崩溃.

0.5.3+1 #

  • 将最低部署iOS版本更新为8.0.

0.5.3 #

  • 修复了从Android上的Google相册返回错误的路径.

0.5.2 #

  • 如果访问被拒绝,请检查iOS摄像机的authorizationStatus并返回错误.

0.5.1 #

  • Android:如果图像来自图库,请不要在缩放后删除原始图像.

0.5.0+9 #

  • 删除不必要的临时视频文件路径.

0.5.0+8 #

  • 修复了图片Uri的GooglePhotos授权错误.

0.5.0+7 #

  • 修复了从yandex.disk和Dropbox中选择图像时的崩溃问题.

0.5.0+6 #

  • 如果原始图像已缩放,请删除它.

0.5.0+5 #

  • 删除不必要的相机许可.

0.5.0+4 #

  • 保存图像时保持透明.

0.5.0+3 #

  • 修复了在没有活动的情况下注册Image Picker时Android崩溃的问题.

0.5.0+2 #

  • 在构建时记录有关先前AndroidX迁移的更详细的警告.

0.5.0+1 #

  • 修复了用户在Android上快速连续调用插件时发生的崩溃.

0.5.0 #

  • 零钱 . 从已弃用的原始Android支持库迁移到AndroidX. 这不应该导致任何功能上的变化,但是如果使用原始支持库的话,则要求使用此插件的所有Android应用程序也要迁移 .

0.4.12+1 #

  • 修复了在某些设备上从图像选择器选择下载的图像时崩溃的问题.

0.4.12 #

  • 修复了用户多次敲击图像时崩溃的问题.

0.4.11 #

  • 使用api定义support-v4依赖项以允许自动版本解析.

0.4.10 #

  • 依赖完整的support-v4库以易于使用(修复了与Firebase和库的冲突)

0.4.9 #

  • 错误修正:在iOS上,无法在调整大小的图像上出现一像素的白线.

0.4.8 #

  • 将完整的com.android.support:appcompat-v7依赖项替换为com.android.support:support-core-utils ,从而使APK尺寸更小.
  • 将支持库升级到27.1.1

0.4.7 #

  • 添加了缺少的video_player程序包dev依赖性.

0.4.6 #

  • 添加了对选择远程图像的支持.

0.4.5 #

  • 错误修正,代码清除,更多测试范围.

0.4.4 #

  • 更新了Gradle工具以匹配Android Studio 3.1.2.

0.4.3 #

  • 错误修正:在iOS上,当用户取消选择视频时, pickVideo方法现在将返回null.

0.4.2 #

  • 新增了对挑选视频的支持.
  • 更新了示例应用程序以显示视频预览.

0.4.1 #

  • 错误修正:当用户取消选择图像时, pickImage方法现在将返回null,而不是无限期地挂起.
  • 删除了使用相机拍照的第三方库依赖.

0.4.0 #

  • 零钱 . 现在需要pickImagesource参数. 另外, ImageSource.any选项不再存在.
  • 使用本地Android图像库来选择图像,而不是自定义UI.

0.3.1 #

  • 错误修正:使用ImageSource.camera时,Android版本正确要求运行时相机权限.

0.3.0 #

  • 零钱 . 设置SDK约束以匹配Flutter beta版本.

0.2.1 #

  • 将Android项目模板简化并升级到Android SDK 27.
  • 更新了软件包说明.

0.2.0 #

  • 零钱 . 升级到Gradle 4.1和Android Studio Gradle插件3.0.1. 较早的Flutter项目也需要升级其Gradle设置才能使用此版本的插件. 说明可以在这里找到.

0.1.5 #

  • 为iOS类型添加了FLT前缀

0.1.4 #

  • 错误修正:取消图像拾取引发异常.
  • 错误修正:插件状态管理中的错误.

0.1.3 #

  • 在pickImage中添加了可选的source参数,用于控制图像的来源.

0.1.2 #

  • 向pickImage添加了可选的maxWidth和maxHeight参数.

0.1.1 #

  • 更新了Gradle存储库声明,以避免在使用该应用程序中进行手动配置.

0.1.0+1 #

  • 更新了pubspec.yaml中的自述文件和说明

0.1.0 #

  • 更新了依赖性
  • 重大更改 :您需要在android/build.gradle的存储库部分中添加一个带有" https://maven.google.com"端点的maven部分. 例如:
allprojects {
    repositories {
        jcenter()
        maven {                              // NEW
            url "https://maven.google.com"   // NEW
        }                                    // NEW
    }
}

0.0.3 #

  • 修复了显示"相机/图库"选择对话框时iPad崩溃的问题

0.0.2+2 #

  • 更新的自述文件

0.0.2+1 #

  • 更新的自述文件

0.0.2 #

  • 修复尝试在没有相机的设备(例如模拟器)上访问相机时崩溃的问题

0.0.1 #

  • 初始发行

example/README.md

image_picker_example #

演示如何使用image_picker插件.

Getting Started #

要获得Flutter入门方面的帮助,请查看我们的在线文档 .

Use this package as a library

1. Depend on it

将此添加到包的pubspec.yaml文件中:


dependencies:
  image_picker: ^0.6.3+1

2. Install it

您可以从命令行安装软件包:

使用Flutter:


$ flutter pub get

另外,您的编辑器可能支持flutter pub get . 查看您的编辑器文档以了解更多信息.

3. Import it

现在,在Dart代码中,您可以使用:


import 'package:image_picker/image_picker.dart';
  
Popularity:
描述该程序包相对于其他程序包的受欢迎程度. [更多]
100
Health:
从静态分析得出的代码运行状况. [更多]
100
Maintenance:
反映出软件包的整洁和最新状态. [更多]
100
Overall:
以上的加权分数. [更多]
100
了解有关得分的更多信息.

我们在2020年1月16日分析了此软件包,并在下面提供了得分,详细信息和建议. using: 分析已完成,状态使用以下命令 :

  • 飞镖:2.7.0
  • 高达:0.13.4
  • Flutter:1.12.13 + hotfix.5

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK > = 2.0.0-dev.28.0 <3.0.0
flutter 0.0.0
flutter_plugin_android_lifecycle ^1.0.2 1.0.4
传递依存关系
collection 1.14.11 1.14.12
meta 1.1.8
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8
开发依赖
e2e ^0.2.1
flutter_test
video_player ^0.10.3

by  ICOPY.SITE