image_util.dart 496 B

12345678910111213141516
  1. import 'dart:async';
  2. import 'package:flutter/widgets.dart';
  3. Future<ImageInfo> getImageInfo(ImageProvider imageProvider) {
  4. final completer = Completer<ImageInfo>();
  5. final imageStream = imageProvider.resolve(const ImageConfiguration());
  6. final listener = ImageStreamListener(
  7. ((imageInfo, _) {
  8. completer.complete(imageInfo);
  9. }),
  10. );
  11. imageStream.addListener(listener);
  12. completer.future.whenComplete(() => imageStream.removeListener(listener));
  13. return completer.future;
  14. }