我的最终目标是能够通过传递原始图像数据或将图像保存到磁盘以共享本机android / ios服务来共享动态图像。如何将Widget或Canvasin flutter 转换为原始图像数据(如byte[])?
Widget
Canvas
byte[]
现在对此提供支持。您可以使用RenderRepaintBoundry或OffsetLayer或Scene。他们都有一个toImage。这是RenderRepaintBoundry.toImage()的链接
RenderRepaintBoundry
OffsetLayer
Scene
toImage
Future<void> _capturePng() async { RenderRepaintBoundary boundary = globalKey.currentContext.findRenderObject(); ui.Image image = await boundary.toImage(); ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png); Uint8List pngBytes = byteData.buffer.asUint8List(); print(pngBytes); }
这是从文档复制的。