diff --git a/wallpaper/lib/utils/downloadmanager.dart b/wallpaper/lib/utils/downloadmanager.dart index 0ec782d..4ae5805 100644 --- a/wallpaper/lib/utils/downloadmanager.dart +++ b/wallpaper/lib/utils/downloadmanager.dart @@ -1,6 +1,7 @@ import 'dart:io'; import 'package:flutter/foundation.dart'; +import 'package:image_gallery_saver/image_gallery_saver.dart'; import 'package:wallpaper/utils/local_img_manager.dart'; class DownloadManager { @@ -10,7 +11,6 @@ class DownloadManager { // option: Options(responseType: ResponseType.bytes) var reqiest = await httpClient.getUrl(Uri.parse(urlStr)); var response = await reqiest.close(); - // var bytes = await consolidateHttpClientResponseBytes(response); var bytes = await consolidateHttpClientResponseBytes(response); var fileName = await LocalImgManager.saveImgDataBytes(bytes); // print(fileName); @@ -21,4 +21,37 @@ class DownloadManager { print("the error:${error}"); } } + + + // 保存到相册的UTil + + // static Future saveLocalImage(String imagePath) async { + // var image = await ImageUtil.loadImageByFile(imagePath); + // ByteData? byteData = + // await (image.toByteData(format: ui.ImageByteFormat.png)); + // if (byteData != null) { + // final result = + // await ImageGallerySaver.saveImage(byteData.buffer.asUint8List()); + // print("SaveToAlbumUtil result:${result}"); + // return result; + // } else { + // throw StateError("saveLocalImage error imagePath:${imagePath}"); + // } + // } + +//从网络保存至相册 + static void saveNetworkImage(String urlStr) async { + var httpClient = HttpClient(); + var reqiest = await httpClient.getUrl(Uri.parse(urlStr)); + var response = await reqiest.close(); + var bytes = await consolidateHttpClientResponseBytes(response); + + final result = await ImageGallerySaver.saveImage( + Uint8List.fromList(bytes), + quality: 60, + name: "hello"); + print(result); + } + + } \ No newline at end of file diff --git a/wallpaper/pubspec.lock b/wallpaper/pubspec.lock index 31b7fbd..5d97ce7 100644 --- a/wallpaper/pubspec.lock +++ b/wallpaper/pubspec.lock @@ -376,6 +376,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "4.0.2" + image_gallery_saver: + dependency: "direct main" + description: + name: image_gallery_saver + sha256: be812580c7a320d3bf583af89cac6b376f170d48000aca75215a73285a3223a0 + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.7.1" io: dependency: transitive description: @@ -544,6 +552,46 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "2.2.1" + permission_handler: + dependency: "direct main" + description: + name: permission_handler + sha256: bc56bfe9d3f44c3c612d8d393bd9b174eb796d706759f9b495ac254e4294baa5 + url: "https://pub.flutter-io.cn" + source: hosted + version: "10.4.5" + permission_handler_android: + dependency: transitive + description: + name: permission_handler_android + sha256: "59c6322171c29df93a22d150ad95f3aa19ed86542eaec409ab2691b8f35f9a47" + url: "https://pub.flutter-io.cn" + source: hosted + version: "10.3.6" + permission_handler_apple: + dependency: transitive + description: + name: permission_handler_apple + sha256: "99e220bce3f8877c78e4ace901082fb29fa1b4ebde529ad0932d8d664b34f3f5" + url: "https://pub.flutter-io.cn" + source: hosted + version: "9.1.4" + permission_handler_platform_interface: + dependency: transitive + description: + name: permission_handler_platform_interface + sha256: "6760eb5ef34589224771010805bea6054ad28453906936f843a8cc4d3a55c4a4" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.12.0" + permission_handler_windows: + dependency: transitive + description: + name: permission_handler_windows + sha256: cc074aace208760f1eee6aa4fae766b45d947df85bc831cde77009cdb4720098 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.1.3" photo_view: dependency: "direct main" description: diff --git a/wallpaper/pubspec.yaml b/wallpaper/pubspec.yaml index 5b0662f..3071bc1 100644 --- a/wallpaper/pubspec.yaml +++ b/wallpaper/pubspec.yaml @@ -55,6 +55,9 @@ dependencies: #随机生成文件名 crypto: ^3.0.3 + #将图片导出到相册 + image_gallery_saver: ^1.7.1 + permission_handler: ^10.0.0 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.6 diff --git a/wallpaper/windows/flutter/generated_plugin_registrant.cc b/wallpaper/windows/flutter/generated_plugin_registrant.cc index 8b6d468..48de52b 100644 --- a/wallpaper/windows/flutter/generated_plugin_registrant.cc +++ b/wallpaper/windows/flutter/generated_plugin_registrant.cc @@ -6,6 +6,9 @@ #include "generated_plugin_registrant.h" +#include void RegisterPlugins(flutter::PluginRegistry* registry) { + PermissionHandlerWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin")); } diff --git a/wallpaper/windows/flutter/generated_plugins.cmake b/wallpaper/windows/flutter/generated_plugins.cmake index b93c4c3..0e69e40 100644 --- a/wallpaper/windows/flutter/generated_plugins.cmake +++ b/wallpaper/windows/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + permission_handler_windows ) list(APPEND FLUTTER_FFI_PLUGIN_LIST