A flutter api for photo, you can get image/video from ios or android
一个提供相册 api 的插件, android ios 可用,没有 ui,以便于自定义自己的界面, 你可以通过提供的 api 来制作图片相关的 ui 或插件
or use photo library , a multi image picker .All UI comes from flutter.
in 0.1.0 API incompatibility
because support video, so rename api from ImageXXXX to AssetXXXX
so 0.1.X and 0.0.X incompatibility
dependencies:
photo_manager: ^0.1.7
import 'package:photo_manager/photo_manager.dart';
see the example/lib/main.dart
or see next
- request permission
You must get the user's permission on android/ios.
var result = await PhotoManager.requestPermission();
if (result) {
// success
} else {
// fail
// if result is fail, you can call PhotoManger.openSetting(); to open android/ios applicaton's setting to get permission
}
- you get all of asset list (gallery)
List<AssetPathEntity> list = await PhotoManager.getAssetPathList();
- get asset list from imagePath
List<AssetEntity> imageList = await data.assetList;
- use the AssetEntity
AssetEntity entity = imageList[0];
File file = await entity.file; // image file
List<int> fileData = await entity.fullData; // image/video file bytes
Uint8List thumbBytes = await entity.thumbData; // thumb data ,you can use Image.memory(thumbBytes); size is 64px*64px;
Uint8List thumbDataWithSize = await entity.thumbDataWithSize(width,height); //Just like thumbnails, you can specify your own size. unit is px;
AssetType type = entity.type; // the type of asset enum of other,image,video
if your flutter print like the log. see so
Xcode's output:
↳
=== BUILD TARGET Runner OF PROJECT Runner WITH CONFIGURATION Debug ===
The use of Swift 3 @objc inference in Swift 4 mode is deprecated. Please address deprecated @objc inference warnings, test your code with “Use of deprecated Swift 3 @objc inference” logging enabled, and then disable inference by changing the "Swift 3 @objc Inference" build setting to "Default" for the "Runner" target.
=== BUILD TARGET Runner OF PROJECT Runner WITH CONFIGURATION Debug ===
While building module 'photo_manager' imported from /Users/cai/IdeaProjects/flutter/sxw_order/ios/Runner/GeneratedPluginRegistrant.m:9:
In file included from <module-includes>:1:
In file included from /Users/cai/IdeaProjects/flutter/sxw_order/build/ios/Debug-iphonesimulator/photo_manager/photo_manager.framework/Headers/photo_manager-umbrella.h:16:
/Users/cai/IdeaProjects/flutter/sxw_order/build/ios/Debug-iphonesimulator/photo_manager/photo_manager.framework/Headers/MD5Utils.h:5:9: error: include of non-modular header inside framework module 'photo_manager.MD5Utils': '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk/usr/include/CommonCrypto/CommonDigest.h' [-Werror,-Wnon-modular-include-in-framework-module]
#import <CommonCrypto/CommonDigest.h>
^
1 error generated.
/Users/cai/IdeaProjects/flutter/sxw_order/ios/Runner/GeneratedPluginRegistrant.m:9:9: fatal error: could not build module 'photo_manager'
#import <photo_manager/ImageScannerPlugin.h>
~~~~~~~^
2 errors generated.