save_in_gallery
Android 및 iOS의 네이티브 갤러리에 이미지를 저장할 수 있는 플러터 플러그인입니다. 기본 앨범이나 원하는 이름의 앨범에 저장할 수 있습니다.
FiveDotTwelve/save_in_gallery open-source repository details.
아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
Flutter plugin that allows you to save images in native gallery in both Android and iOS. You can either save them in default album or in named album of your choice.
For installation details see Installing tab on this page.
To use this plugin in iOS you must add 2 new records to configuration file info.plist located in ios/Runner directory. To do so, open iOS project in Xcode by running
open ios/Runner.xcworkspace
then right-click on info.plist file in project navigator and click open as > source code. Then add following 2 records at the end of <dict> object:
<key>NSPhotoLibraryAddUsageDescription</key>
<string>write</string>
Where write should be reason why your app requires write access to user's gallery. This is necessary to save images in gallery.<key>NSPhotoLibraryUsageDescription</key>
<string>read</string>
Where read should be reason why your app requires read access to user's gallery. This is necessary to create and use named albums in gallery.Be aware that app will ask user's permission to read/write gallery access using standard iOS alerts when you will use methods provided by this plugin. These alerts' appearance can not be changed.
If user declines access, these alerts can not be shown again, instead you must use custom controls to redirect user to Settings app, so they can grant access rights themselves. Methods provided by this plugin will not work unless user provides proper access rights.
This plugin should work out-of-the-box and does not require additional configuration.
Be aware that app will ask user's permission to WRITE_EXTERNAL_STORAGE using standard Android alerts when you will use methods provided by this plugin. These alerts' appearance can not be changed.
If user declines access, these alerts can not be shown again, instead you must use custom controls to redirect user to Settings app, so they can grant access rights themselves. Methods provided by this plugin will not work unless user provides proper access rights.
import 'package:save_in_gallery/save_in_gallery.dart';
final _imageSaver = ImageSaver();
Future<void> saveAssetImage() async {
// 1
final urls = [
"assets/image1.jpg",
"assets/image2.jpg",
"assets/image3.jpg",
];
// 2
List<Uint8List> bytesList = [];
for (final url in urls) {
final bytes = await rootBundle.load(url);
bytesList.add(bytes.buffer.asUint8List());
}
// 3
final res = await _imageSaver.saveImages(
imageBytes: bytesList
);
// 4
}
Uint8List type;res variable will hold result of saving operation. If it's true, then everything went as expected and images have been successfully saved. Otherwise something went wrong along the way. Use this variable to provide feedback to user.import 'package:save_in_gallery/save_in_gallery.dart';
final _imageSaver = ImageSaver();
Future<void> saveNetworkImage() async {
// 1
final url = "https://some_url/image.png";
// 2
final image = NetworkImage(url);
final key = await image.obtainKey(ImageConfiguration());
final load = image.load(key);
load.addListener((listener, err) async {
// 3
final byteData = await listener.image.toByteData(
format: ImageByteFormat.png
);
final bytes = byteData.buffer.asUint8List();
// 4
final res = await _imageSaver.saveImage(
imageBytes: bytes,
directoryName: "dir_name",
);
// 5
});
}
NetworkImage object with your URL and load it's configuration;dir_name;res variable will hold result of saving operation. If it's true, then everything went as expected and image have been successfully saved. Otherwise something went wrong along the way. Use this variable to provide feedback to user.의존성 목록 2 개
{"sdk":"flutter"}{"sdk":"flutter"}사용 목적에 따라 검색하고 개발 활동을 비교한 뒤 원본 저장소에서 요구 사항을 확인하세요.
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗