takeScreenshot function

Future<void> takeScreenshot({
  1. dynamic withWidgetTreeRender = false,
})

Implementation

Future<void> takeScreenshot({withWidgetTreeRender = false}) async {
  await currentWorld.tester.pumpAndSettle();
  RenderObject? renderObject = _getMainWidget()?.renderObject;
  if (renderObject != null) {
    RenderRepaintBoundary boundary = renderObject as RenderRepaintBoundary;
    ui.Image image = await boundary.toImage();
    ByteData? byteData = await image.toByteData(format: ui.ImageByteFormat.png);
    Uint8List pngBytes = byteData!.buffer.asUint8List();
    await currentWorld.screenshot?.writeAsBytes(pngBytes);

    if (withWidgetTreeRender) {
      await dumpWidgetRender();
    }
  } else {
    logger.e('Screenshot failed.');
  }
}