loadImage function

Future<Image?> loadImage(
  1. BuildContext? context,
  2. ImageProvider<Object>? imageProvider, {
  3. double? width,
  4. double? height,
})

Implementation

Future<ui.Image?> loadImage(BuildContext? context, ImageProvider? imageProvider,
    {double? width, double? height}) async {
  assert(context != null);
  if (imageProvider == null) return null;
  ImageStream stream = imageProvider.resolve(createLocalImageConfiguration(
    context!,
    size: width != null && height != null ? Size(width, height) : null,
  ));
  assert(stream != null);
  Completer<ui.Image> completer = Completer<ui.Image>();
  ImageStreamListener? imageStreamListener;
  listener(ImageInfo frame, bool synchronousCall) {
    final ui.Image image = frame.image;
    completer.complete(image);
    stream.removeListener(imageStreamListener!);
  }

  imageStreamListener = ImageStreamListener(listener);
  stream.addListener(imageStreamListener);
  var img =await completer.future;
  return img;
}