fromImageProvider static method
Implementation
static Future<ImageWrapper> fromImageProvider(painting.ImageProvider provider) async {
final completer = Completer<ui.Image>();
final configuration = ImageConfiguration(
devicePixelRatio: WidgetsBinding.instance.window.devicePixelRatio);
final imageStream = provider.resolve(configuration);
final listener = ImageStreamListener(
(image, synchronousCall) {
var pictureRecorder = ui.PictureRecorder();
Canvas canvas = Canvas(pictureRecorder);
canvas.scale(1, -1);
canvas.translate(0, -1.0 * image.image.height);
canvas.drawImage(image.image, Offset.zero, Paint());
completer.complete(pictureRecorder
.endRecording()
.toImage(image.image.width, image.image.height));
},
onError: completer.completeError);
imageStream.addListener(listener);
ui.Image image;
try {
image = await completer.future;
} finally {
imageStream.removeListener(listener);
}
try {
return fromImage(image);
} finally {
image.dispose();
}
}