gpt4 book ai didi

dart - 如何使用 dart 截取特定应用程序?

转载 作者:行者123 更新时间:2023-12-03 04:40:48 25 4
gpt4 key购买 nike

使用此代码,我可以获得整个屏幕的屏幕截图,但是如何在桌面操作系统上使用 dart 获得特定应用程序的屏幕截图?
(https://stackoverflow.com/questions/51117958/how-to-take-a-screenshot-of-the-current-widget-flutter#:~:text=To%20take%20a%20screenshot%20of%20your%20widget%2C%20make,app%20folder%2C%20and%20run%20your%20widget%2C%20like%20this%3A - 也不是一个整体,至少在桌面操作系统上不是)

RenderRepaintBoundary boundary = previewContainer.currentContext.findRenderObject();
ui.Image image = await boundary.toImage();
final directory = (await getApplicationDocumentsDirectory()).path;
ByteData byteData = await image.toByteData(format: ui.ImageByteFormat.png);
Uint8List pngBytes = byteData.buffer.asUint8List();
print(pngBytes);
File imgFile =new File('$directory/screenshot.png');
imgFile.writeAsBytes(pngBytes);

最佳答案

Using this code I could get a screenshot of a whole screen


这并不是您显示的代码的真正作用。该代码指示应用程序中的 Flutter 渲染器将某些内容渲染到图像上。让您自己的应用程序将其部分或全部 UI 绘制到图像而不是屏幕上与获取屏幕截图完全不同;后者涉及向操作系统询问渲染到屏幕的所有内容的输出,发布操作系统级别的合成。在移动设备上,应用程序通常是全屏的,这些东西可能有相似的输出,但它们根本不是一回事。
没有可以截取实际屏幕截图的 Dart API。您必须编写使用 native 操作系统 API 的 native 代码,以便在您想要支持的每个桌面操作系统上截取屏幕截图,并通过 FFI 调用该代码(或者,如果您在示例代码中使用 Flutter,则可以使用平台 channel ) .

关于dart - 如何使用 dart 截取特定应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63252392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com