generateImageFromGlobalKey static method
Future<ImageElement?>
generateImageFromGlobalKey(
- GlobalKey<
State< globalKey, [StatefulWidget> > - ImageElement? imageElement
to capture widget to image by GlobalKey in RenderRepaintBoundary
Implementation
static Future<ImageElement?> generateImageFromGlobalKey(wid.GlobalKey globalKey, [ImageElement? imageElement]) async {
try {
/// boundary widget by GlobalKey
rend.RenderRepaintBoundary? boundary = globalKey.currentContext?.findRenderObject() as rend.RenderRepaintBoundary?;
/// convert boundary to image
final image = await boundary!.toImage();
/// set ImageByteFormat
final data = (await image.toByteData(format: ui.ImageByteFormat.rawRgba))?.buffer.asUint8List();
if(data == null){
return null;
}
else if(imageElement != null){
imageElement.width = image.width;
imageElement.height = image.height;
if(imageElement.data == null){
imageElement.data = Uint8Array.fromList(data);
}
else{
(imageElement.data as Uint8Array).set(data);
}
return imageElement;
}
return ImageElement(
width: image.width,
height: image.height,
data: Uint8Array.fromList(data)
);
} catch (e) {
rethrow;
}
}