fromProvider static method

Future<Bitmap> fromProvider(
  1. ImageProvider<Object> provider
)

Implementation

static Future<Bitmap> fromProvider(ImageProvider provider) async {
  final Completer completer = Completer<ImageInfo>();
  final ImageStream stream = provider.resolve(const ImageConfiguration());
  final listener = ImageStreamListener(
    (ImageInfo info, bool synchronousCall) {
      if (!completer.isCompleted) {
        completer.complete(info);
      }
    },
  );
  stream.addListener(listener);
  final imageInfo = await completer.future;
  final ui.Image image = imageInfo.image;
  final ByteData? byteData = await image.toByteData();
  if (byteData == null) {
    throw StateError("Couldn't serialize image into bytes");
  }

  final Uint8List listInt = byteData.buffer.asUint8List();

  return Bitmap.fromHeadless(image.width, image.height, listInt);
}