【发布时间】:2020-09-05 02:03:37
【问题描述】:
我希望使用 .NET 核心捕获屏幕截图。我知道使用 .NET 框架这是微不足道的,但使用 .NET 核心可以做到这一点吗?我已经搜索过,但在任何地方都找不到任何答案。
【问题讨论】:
-
我不认为Dot Net Core有截图的方法。但您可能会使用 .NET Core 应用程序中的 .NET Framework 调用屏幕截图类库。
我希望使用 .NET 核心捕获屏幕截图。我知道使用 .NET 框架这是微不足道的,但使用 .NET 核心可以做到这一点吗?我已经搜索过,但在任何地方都找不到任何答案。
【问题讨论】:
System.Drawing.Common 在 .NET Core 中跨平台可用,现在允许您截取窗口/桌面的屏幕截图。 Here is an example
编辑
截图示例:
using var bitmap = new Bitmap(1920, 1080);
using (var g = Graphics.FromImage(bitmap))
{
g.CopyFromScreen(0, 0, 0, 0,
bitmap.Size, CopyPixelOperation.SourceCopy);
}
bitmap.Save("filename.jpg", ImageFormat.Jpeg);
【讨论】:
.net core 是一个跨平台的框架,这意味着它可以在各种平台上运行,甚至是那些根本没有屏幕的平台(例如嵌入式 Linux)。 因此,您不能直接从 .net 核心库中执行此操作。 您可以做的是在各种类型的库中实现特定于平台的屏幕截图:win、android、mac 等,并通过 DI 容器将其连接到跨平台代码的设施,例如。
【讨论】: