import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:image_picker/image_picker.dart'; typedef BlockImgCallback = void Function(dynamic imgStr); class SelectImageTool { // 实例化ImagePicker final ImagePicker _picker = ImagePicker(); ImageProvider? _imageProvider; XFile? pickedFile; XFile? cameraImages; // 打开相机 Future getCameraImage(BlockImgCallback callback) async { try { cameraImages = await _picker.pickImage(source: ImageSource.camera, maxWidth: 800); if (cameraImages != null) { // 获取图像地址 _imageProvider = FileImage(File(cameraImages!.path)); callback(_imageProvider); } else { _imageProvider = null; } } catch (e) { if (e is MissingPluginException) { // Toast.Show('当前平台不支持!'); } else { // Toast.Show('暂未开放相机权限'); } } } // 打开相册 Future getImage(BlockImgCallback callback) async { try { pickedFile = await _picker.pickImage(source: ImageSource.gallery, maxWidth: 800); if (pickedFile != null) { // 获取图像地址 _imageProvider = FileImage(File(pickedFile!.path)); callback(_imageProvider); } else { _imageProvider = null; } } catch (e) { if (e is MissingPluginException) { // Toast.Show('当前平台不支持!'); } else { // Toast.Show('暂未开放相册权限'); } } } }