saveImage static method
Future<String?>
saveImage(
- String key,
- ImageProvider<
Object> provider, { - ImageConfiguration configuration = ImageConfiguration.empty,
Encodes provider as a PNG in shared storage and returns its path.
Implementation
static Future<String?> saveImage(
String key,
ImageProvider provider, {
ImageConfiguration configuration = ImageConfiguration.empty,
}) async {
final completer = Completer<ui.Image>();
final stream = provider.resolve(configuration);
late final ImageStreamListener listener;
listener = ImageStreamListener((info, _) {
stream.removeListener(listener);
completer.complete(info.image);
}, onError: (error, stack) {
stream.removeListener(listener);
completer.completeError(error, stack);
});
stream.addListener(listener);
final image = await completer.future;
final data = await image.toByteData(format: ui.ImageByteFormat.png);
if (data == null) return null;
return saveFile(key, data.buffer.asUint8List());
}