flutter base64图片保存到相册
    		       		warning:
    		            这篇文章距离上次修改已过447天,其中的内容可能已经有所变动。
    		        
        		                
                在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字符串,并且您已经处理了异常情况。
评论已关闭