getImageDimensions static method

Future<Image> getImageDimensions(
  1. String image
)

Implementation

static Future<ui.Image> getImageDimensions(String image) async {
  final Completer<ui.Image> completer = Completer();
  ImageStream imageStream;

  if (image.startsWith('http') || image.startsWith('https')) {
    // It's a network image
    imageStream = NetworkImage(image).resolve(const ImageConfiguration());
  } else {
    // It's an asset image
    imageStream = AssetImage(image).resolve(const ImageConfiguration());
  }

  final listener = ImageStreamListener((ImageInfo info, bool _) {
    completer.complete(info.image);
  });

  imageStream.addListener(listener);

  // It's good practice to remove the listener when the future completes
  // to avoid memory leaks, especially if the completer can complete with an error.
  completer.future.whenComplete(() => imageStream.removeListener(listener));

  return completer.future;
}