从小部件或画布创建原始图像


问题内容

我的最终目标是能够通过传递原始图像数据或将图像保存到磁盘以共享本机android / ios服务来共享动态图像。如何将WidgetCanvasin
flutter 转换为原始图像数据(如byte[])?


问题答案:

现在对此提供支持。您可以使用RenderRepaintBoundryOffsetLayerScene。他们都有一个toImage。这是RenderRepaintBoundry.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);
  }

这是从文档复制的。