【问题标题】:How do save flutter screenshot to my desktop using path provider package如何使用路径提供程序包将颤动屏幕截图保存到我的桌面
【发布时间】:2023-03-29 01:49:02
【问题描述】:

我正在开发一个带有颤振桌面的程序,它截取一个小部件,并将其保存到桌面。我已经能够截取屏幕截图,我的问题是如何使用 path_provider 包将屏幕截图保存到我的桌面

这是我为获取路径而编写的代码

 Future<String> getFilePath() async {
Directory appDocumentsDirectory =
    await getApplicationDocumentsDirectory(); // 1
String appDocumentsPath = appDocumentsDirectory.path; // 2
String filePath = '$appDocumentsPath/image.png'; // 3

return filePath;
}  

这是屏幕截图逻辑的代码,我将我的主要代码包装在屏幕截图小部件中

  ElevatedButton(
              onPressed: () {
               
                screenshotController
                    .capture(delay: Duration(milliseconds: 10))
                    .then((capturedImage) async {
                  ShowCapturedWidget(context, capturedImage!);
                }).catchError((onError) {
                  print(onError);
                });
              },
              child: Text(_message)),
        ],
      ),
    ),
  ),
);
}

Future<dynamic> ShowCapturedWidget(
  BuildContext context, Uint8List capturedImage) {
return showDialog(
  useSafeArea: false,
  context: context,
  builder: (context) => Scaffold(
    appBar: AppBar(
      title: Text("Captured widget screenshot"),
    ),
    body: Center(
        child: capturedImage != null
            ? Image.memory(capturedImage)
            : Container()),
  ),
);
}

如何将捕获的图像保存到我的桌面,或者如何将其作为邮件自动发送。

【问题讨论】:

  • 看看这个thread
  • 这里有两个问题。如何作为电子邮件的附件发送需要明确;要使用哪些 pub 包。我已经用下面的一些假设回答了这两个问题。

标签: flutter dart flutter-dependencies flutter-web dart-pub


【解决方案1】:

假设您正在使用包screenshotflutter_email_sender

if (capturedImage != null) {
  final imagePath = await File(await getFilePath()).create();
  await imagePath.writeAsBytes(capturedImage);
  final Email email = Email(
    body: 'Email body',
    subject: 'Email subject',
    recipients: ['example@example.com'],
    cc: ['cc@example.com'],
    bcc: ['bcc@example.com'],
    attachmentPaths: [imagePath],
    isHTML: false,
  );

  await FlutterEmailSender.send(email);
}

【讨论】:

    猜你喜欢
    • 2021-06-18
    • 1970-01-01
    • 2021-06-28
    • 2019-09-16
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    相关资源
    最近更新 更多