flutter base64图片保存到相册
在Flutter中,您可以使用image_picker
插件将Base64编码的图片保存到相册。以下是一个简单的示例代码:
首先,在您的pubspec.yaml
文件中添加image_picker
依赖:
dependencies:
image_picker: ^0.8.4
然后,使用以下代码将Base64字符串转换为图片并保存到相册:
import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
Future<void> saveBase64ImageToGallery(String base64Image) async {
final imagePicker = ImagePicker();
// 将Base64字符串转换为Uint8List
final imageBytes = Base64Decoder().convert(base64Image);
// 将字节转换为图片文件
final tempDir = await getTemporaryDirectory();
final filePath = '${tempDir.path}/image_${DateTime.now().millisecondsSinceEpoch}.png';
final file = File(filePath);
await file.writeAsBytes(imageBytes);
// 保存图片到相册
await imagePicker.saveImageToPhotosAlbum(file.absolute.path);
}
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// 省略其他代码...
void saveImage() {
// 假设您有一个Base64编码的图片字符串
String base64Image = '你的Base64字符串';
saveBase64ImageToGallery(base64Image);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
// 省略其他代码...
home: Scaffold(
body: Center(
child: RaisedButton(
onPressed: saveImage,
child: Text('保存图片到相册'),
),
),
),
);
}
}
确保您已经处理了所需的权限,特别是在Android上,您需要在AndroidManifest.xml
中添加写入外部存储的权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在实际应用中,请确保base64Image
是有效的Base64字符串,并且您已经处理了异常情况。
评论已关闭