在Flutter的开发中,如何获取图片的尺寸
在Flutter的开发中,可以使用如下的方法获取图片的尺寸:
import 'dart:io'; import 'dart:async'; import 'package:flutter/material.dart'; /// 获取图片的尺寸 class ImageSize { final String imagePath; late ImageStream imageStream; late ImageStreamListener listener; ImageSize({ required String this.imagePath }) {} // 获取尺寸 Future<Map<String, int>> getSize() { Completer<Map<String, int>> completer = Completer(); late Image image = Image.file(File(imagePath)); // 监听图片的加载 listener = ImageStreamListener( (ImageInfo info, bool synchronousCall) { imageStream.removeListener(listener); if (!completer.isCompleted) { completer.complete({ 'width': info.image.width, 'height': info.image.height }); } }, onError: (dynamic exception, StackTrace? stackTrace) { imageStream.removeListener(listener); if (!completer.isCompleted) { completer.completeError(exception, stackTrace); } }); imageStream = image.image.resolve(ImageConfiguration()); imageStream.addListener(listener); return completer.future; } }