loadImageFromProvider function
Future<Image>
loadImageFromProvider(
- ImageProvider<
Object> provider, { - ImageConfiguration configuration = ImageConfiguration.empty,
Resolves provider to its first frame.
Pass a configuration (e.g. from createLocalImageConfiguration) so that
resolution-aware asset variants (2.0x, 3.0x) are picked for the device.
The caller owns the returned image and must dispose it when done.
Implementation
Future<ui.Image> loadImageFromProvider(
ImageProvider provider, {
ImageConfiguration configuration = ImageConfiguration.empty,
}) {
final Completer<ui.Image> completer = Completer<ui.Image>();
final ImageStream stream = provider.resolve(configuration);
ImageStreamListener? listener;
listener = ImageStreamListener(
(ImageInfo frame, bool synchronousCall) {
if (completer.isCompleted) {
frame.dispose();
} else {
completer.complete(frame.image);
}
if (listener != null) stream.removeListener(listener);
},
onError: (Object exception, StackTrace? stackTrace) {
if (!completer.isCompleted) {
completer.completeError(exception, stackTrace);
}
if (listener != null) stream.removeListener(listener);
},
);
stream.addListener(listener);
return completer.future;
}