c#BitBlt截图例子
时间: 2024-10-01 07:12:12 浏览: 14
在C#中,`BitBlt`函数通常用于图形应用程序中,特别是当需要从一个窗体复制屏幕的一部分到另一个位置时。这个功能来自于Windows API,但可以直接通过P/Invoke调用。下面是一个基本的使用`System.Drawing.Graphics.CopyFromScreen`方法(它内部调用了`BitBlt`)截取屏幕并保存到图片的例子:
```csharp
using System;
using System.Drawing;
using System.Drawing.Imaging;
public static void TakeScreenshot(string outputFilePath)
{
// 获取屏幕信息
Rectangle screenRectangle = Screen.PrimaryScreen.Bounds;
// 创建内存画布
Bitmap bitmap = new Bitmap(screenRectangle.Width, screenRectangle.Height);
Graphics graphics = Graphics.FromImage(bitmap);
try
{
// 使用BitBlt或CopyFromScreen进行屏幕截图
graphics.CopyFromScreen(screenRectangle.Location, Point.Empty, bitmap.Size);
// 保存截图到文件
bitmap.Save(outputFilePath, ImageFormat.Png);
Console.WriteLine($"Screenshot saved to {outputFilePath}");
}
finally
{
graphics.Dispose(); // 关闭图形上下文,释放资源
bitmap.Dispose();
}
}
// 调用函数并传入保存路径
TakeScreenshot("screenshot.png");