getImageDimensions static method
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;
}