handelImageProvider method
Future<void>
handelImageProvider(
{ - void onImage(
- Image
)?,
- _ImageResolverResult? imageResolverResult,
})
Implementation
Future<void> handelImageProvider({
final void Function(ui.Image)? onImage,
final _ImageResolverResult? imageResolverResult,
}) async {
late final _ImageResolverResult? result;
if (imageResolverResult == null) {
_ImageDecoder.schedule(
bytes: imageInfo.imageBytes!,
completer: completer,
);
result = await completer.future;
} else {
result = imageResolverResult;
}
if (result == null) return;
if (onImage != null) {
onImage(result.image);
} else {
imageInfo = imageInfo.copyWith(
width: result.image.width,
height: result.image.height,
);
}
// don't resize animated images
if (result.isAnimated) {
isAnimatedImage = true;
return _handelAnimatedImage(result.codec!, image: result.image);
}
state.uiImages.putIfAbsent('', () => result!.image);
if (providerArguments.resizeImage) {
return addResizedImage(
uiImageSizeKey(
providerArguments.widgetWidth,
providerArguments.widgetHeight,
),
providerArguments.widgetWidth,
providerArguments.widgetHeight,
);
}
state = state.copyWith(
isLoading: false,
height: result.image.height,
width: result.image.width,
);
}