import 'dart:async'; import 'package:flutter/widgets.dart'; Future getImageInfo(ImageProvider imageProvider) { final completer = Completer(); final imageStream = imageProvider.resolve(const ImageConfiguration()); final listener = ImageStreamListener( ((imageInfo, _) { completer.complete(imageInfo); }), ); imageStream.addListener(listener); completer.future.whenComplete(() => imageStream.removeListener(listener)); return completer.future; }