c# - 尽可能快地捕捉屏幕的一部分
问题描述
我制作了一个工具来捕获我的屏幕的一部分。
该红色方块内的所有像素都加载到位图中:
private Bitmap Capture()
{
var bitmap = new Bitmap(measurementToolBounds.Width, measurementToolBounds.Height);
using (var g = Graphics.FromImage(bitmap))
{
g.CopyFromScreen(measurementToolBounds.Location, Point.Empty, measurementToolBounds.Size, CopyPixelOperation.SourceCopy);
g.Flush();
}
return bitmap;
}
不幸的是,CopyFromScreen
执行大约需要 30 毫秒。
我也尝试过使用gdi32.dll
and BitBlt
,但据我所知,在幕后CopyFromScreen
调用。BitBlt
有没有更快的方法可以使用 C# 或者甚至是您知道的 3rd 方实用工具来检索屏幕的一部分作为字节数组?