57 lines
1.7 KiB
Dart
57 lines
1.7 KiB
Dart
|
|
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 {
|
|
static Future<void> downloadImgWithUrl(String urlStr) async {
|
|
var httpClient = HttpClient();
|
|
try {
|
|
// option: Options(responseType: ResponseType.bytes)
|
|
var reqiest = await httpClient.getUrl(Uri.parse(urlStr));
|
|
var response = await reqiest.close();
|
|
var bytes = await consolidateHttpClientResponseBytes(response);
|
|
var fileName = await LocalImgManager.saveImgDataBytes(bytes);
|
|
// print(fileName);
|
|
//写入数据库信息
|
|
//.....
|
|
}
|
|
catch(error) {
|
|
print("the error:${error}");
|
|
}
|
|
}
|
|
|
|
|
|
// 保存到相册的UTil
|
|
|
|
// static Future<dynamic> 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 Future<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);
|
|
}
|
|
|
|
|
|
} |