app-starlock/lib/tools/seletImgTool.dart
2024-05-18 09:37:50 +08:00

57 lines
1.5 KiB
Dart
Executable File

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<void> 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<void> 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('暂未开放相册权限');
}
}
}
}