如何使用路径提供程序包将颤动屏幕截图保存到我的桌面
Posted
技术标签:
【中文标题】如何使用路径提供程序包将颤动屏幕截图保存到我的桌面【英文标题】:How do save flutter screenshot to my desktop using path provider package 【发布时间】:2021-11-17 17:55:29 【问题描述】:我正在开发一个带有颤振桌面的程序,它截取一个小部件,并将其保存到桌面。我已经能够截取屏幕截图,我的问题是如何使用 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 包。我已经用下面的一些假设回答了这两个问题。 【参考方案1】:假设您正在使用包screenshot
和flutter_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);
【讨论】:
以上是关于如何使用路径提供程序包将颤动屏幕截图保存到我的桌面的主要内容,如果未能解决你的问题,请参考以下文章