flutter 如何将插入到textformfield中的文本轻松转换为图像?

qxgroojn  于 2022-12-19  发布在  Flutter
关注(0)|答案(1)|浏览(165)

我有Textformfield,用户可以在其中键入文本,并点击按钮,我想将插入的文本转换为图像,并显示在其他一些屏幕上。
任何帮助都将不胜感激。
我尝试使用第三方screenshot包,但我希望它没有第三方包或API

9gm1akwq

9gm1akwq1#

通过查找widget的RenderObject并将其转换为图像,可以得到widget的图像,然后可以将该图像保存在该状态下,以便在其他地方使用。
下面是一个例子:

class _HomeState extends State<Home> {
  final GlobalKey _globalKey = GlobalKey();
  Widget? _image;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          if (_image != null) _image!,
          RepaintBoundary(
            key: _globalKey,
            child: TextField(),
          ),
          TextButton(
            onPressed: () async {
              final boundary = _globalKey.currentContext?.findRenderObject();
              if (boundary is RenderRepaintBoundary) {
                final uiimage = await boundary.toImage();
                final pngBytes = await uiimage.toByteData(format: ImageByteFormat.png);

                setState(() {
                  _image = Image.memory(
                      Uint8List.view(pngBytes!.buffer)
                  );
                });
              }
            },
            child: Text('Cheese'),
          )
        ],
      ),
    );
  }
}

相关问题