【问题标题】:DotNetCore Capture A Screenshot in WindowsDotNetCore 在 Windows 中捕获屏幕截图
【发布时间】:2020-09-05 02:03:37
【问题描述】:

我希望使用 .NET 核心捕获屏幕截图。我知道使用 .NET 框架这是微不足道的,但使用 .NET 核心可以做到这一点吗?我已经搜索过,但在任何地方都找不到任何答案。

【问题讨论】:

  • 我不认为Dot Net Core有截图的方法。但您可能会使用 .NET Core 应用程序中的 .NET Framework 调用屏幕截图类库。

标签: c# .net-core


【解决方案1】:

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);

【讨论】:

  • 链接的例子没有截图。它只会从文件中调整图像的大小。
  • 该问题与截屏有关,但此答案不包括截屏
  • @GregTrevelick 是的。具有给定值的屏幕副本将在这些范围内对您的桌面进行屏幕截图。然后它将捕获的图像插入到 Bitmap 对象中并将其保存到给定的文件中。
  • 很抱歉,我应该仔细阅读它 - 但至少现在我知道并且可以使用这个答案。
  • @Tubs 在我的例子中,我的项目是一个库代码项目,我创建了一个 Windows Forms Proyect 并且它有效
【解决方案2】:

.net core 是一个跨平台的框架,这意味着它可以在各种平台上运行,甚至是那些根本没有屏幕的平台(例如嵌入式 Linux)。 因此,您不能直接从 .net 核心库中执行此操作。 您可以做的是在各种类型的库中实现特定于平台的屏幕截图:win、android、mac 等,并通过 DI 容器将其连接到跨平台代码的设施,例如。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多