我有Textformfield,用户可以在其中键入文本,并点击按钮,我想将插入的文本转换为图像,并显示在其他一些屏幕上。任何帮助都将不胜感激。我尝试使用第三方screenshot包,但我希望它没有第三方包或API
9gm1akwq1#
通过查找widget的RenderObject并将其转换为图像,可以得到widget的图像,然后可以将该图像保存在该状态下,以便在其他地方使用。下面是一个例子:
RenderObject
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'), ) ], ), ); } }
1条答案
按热度按时间9gm1akwq1#
通过查找widget的
RenderObject
并将其转换为图像,可以得到widget的图像,然后可以将该图像保存在该状态下,以便在其他地方使用。下面是一个例子: