flutter : How to save widget to png with transparent background?

标签 flutter

有没有办法将小部件保存为透明png并保存到图库中? 提前致谢。

最佳答案

Flutter 会绘制每个像素,因此您可以轻松地将小部​​件转换为图像。

您需要按照以下步骤操作:

编辑 -- 首先导入 path_provider链接到 pupspec.yaml,然后按照以下步骤操作

  1. 创建一个GlobalKey

    final _globalKey = GlobalKey();
    
  2. 创建Uint8List

    Uint8List pngBytes;
    
  3. RepaintBoundary 小部件包装您的小部件并传入 key

    RepaintBoundary(
      key: _globalKey,
      child: YourWidget(),
    ),
    
  4. 创建一个将小部件转换为图像的方法:

    Future<void> _capturePng() async {
      try {
        final RenderRepaintBoundary boundary =
            _globalKey.currentContext.findRenderObject();
        final image = await boundary.toImage(pixelRatio: 2.0); // image quality
        final byteData = await image.toByteData(format: ui.ImageByteFormat.png);
        pngBytes = byteData.buffer.asUint8List();
      } catch (e) {
        print(e);
      }
    }
    
  5. 将您的图像转换为文件,以便您可以将其保存在您的应用中

    Future<File> convertImageToFile(Uint8List image) async {
      final file = File(
          '${(await 
         getTemporaryDirectory()).path}/${DateTime.now().millisecondsSinceEpoch}.png');
      await file.writeAsBytes(image);
    
      return file;
    }
    

关于 flutter : How to save widget to png with transparent background?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65191142/

相关文章:

firebase - 使用带有 Flutter Web App 的 http 包发布到 Cloud Firestore 及其 REST API

firebase - 如何访问Future方法中存在的回调函数的返回值。 Dart

http - 在flutter http请求中为所有请求设置默认 header 的最佳方法

flutter - flutter 中的 GridView.custom 和 GridView.extent 小部件布局有什么区别?

flutter - 打开/关闭抽屉布局时如何将抽屉导航汉堡菜单图标更改为箭头图标 - Flutter?

flutter - 如何将 reCaptcha 实现到 Flutter 应用程序中

flutter - Flutter 中的主屏幕小部件

Flutter Web Google 登录

flutter - 谷歌通过 flutter 中的webview登录canva的问题

function - 方法 'call' 在 null 上调用。 flutter