advance_image_picker
用于从Android和iOS图片库选择多张图片、使用相机拍摄新照片、并在使用前进行编辑(如旋转、裁剪、添加贴纸/滤镜)的Flutter插件。
主要特点
- 在widget中显示实时相机预览。
- 调整曝光
- 缩放相机预览
- 拍摄照片而不保存到设备库
- 以预览尺寸模式和全屏尺寸模式进行拍摄
- 通过浏览相册从设备库选择照片
- 预览选定的图片
- 支持按钮标签和文本翻译
- 简单的图片编辑功能,如旋转、裁剪、添加贴纸/滤镜
- 对象检测器和OCR(未来实现)
使用此软件包的应用
freemar.vn - 越南购物应用
trainghiem.vn - 寻找好玩的地方,寻找体验的地方!
演示和截图
安装
iOS
将这些设置添加到 ios/Runner/Info.plist
<key>NSCameraUsageDescription</key>
<string>Can I use the camera please?</string>
<key>NSMicrophoneUsageDescription</key>
<string>Can I use the mic please?</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>App need your agree, can visit your album</string>
Android
在您的 android/app/build.gradle 文件中将最低 Android sdk 版本更改为 21(或更高)。
minSdkVersion 21
建议像下面一样,将android:requestLegacyExternalStorage="true"添加到您的AndroidManifest.xml中。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="vn.weta.freemarimagepickerexample">
<application
android:name="io.flutter.app.FlutterApplication"
android:label="freemarimagepicker_example"
android:requestLegacyExternalStorage="true"
android:icon="@mipmap/ic_launcher">
</application>
</manifest>
用法
添加到 pubspec
dependencies:
advance_image_picker: $latest_version
导入dart代码
import 'package:advance_image_picker/advance_image_picker.dart';
设置配置和文本翻译功能
// Setup image picker configs (global settings for app)
var configs = ImagePickerConfigs();
configs.appBarTextColor = Colors.black;
configs.stickerFeatureEnabled = false; // ON/OFF features
configs.translateFunc = (name, value) => Intl.message(value, name: name); // Use intl function
使用示例
// Get max 5 images
List<ImageObject> objects =
await Navigator.of(context).push(
PageRouteBuilder(pageBuilder:
(context, animation, __) {
return ImagePicker(maxCount: 5);
}));
if (objects.length > 0) {
setState(() {
imageFiles.addAll(objects
.map((e) => e.modifiedPath)
.toList());
});
}