如何将小部件嵌入图像并将其保存到设备

时间:2020-09-30 12:06:35

标签: flutter

我有一张上面带有container的图片。我希望能够在容器内编辑TextField并将图像作为图像保存到设备。

我当前的设置是stack,其中图像和容器彼此叠放。如何将其另存为图像?

请注意,我不想保存整个屏幕,只保存图像及其上的任何内容。

Future<File> createWave(BuildContext context, GlobalKey screen) async {
    RenderRepaintBoundary boundary = screen.currentContext.findRenderObject();
    ui.Image image = await boundary.toImage();
    ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png);
    Uint8List pngBytes = byteData.buffer.asUint8List();
    final directory = (await getApplicationDocumentsDirectory()).path;
    File imgFile = File('$directory/screenshot.png');
    await imgFile.writeAsBytes(pngBytes);
    return imgFile;
  }

the stup

1 个答案:

答案 0 :(得分:0)

非常感谢,因为flutter使用Skia渲染了其图形,因此我们能够拍摄小部件的屏幕截图,并且已经有一个非常不错的article,它可以执行类似的操作。基本上,您将小部件包装在RepaintBoundary中,并为其分配一个键,然后使用该键调用RenderObject.toImage方法。这是另一个simple example要做的。 :D

多么简单