首页 > 解决方案 > 尽可能快地捕捉屏幕的一部分

问题描述

我制作了一个工具来捕获我的屏幕的一部分。

在此处输入图像描述

该红色方块内的所有像素都加载到位图中:

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.dlland BitBlt,但据我所知,在幕后CopyFromScreen调用。BitBlt

有没有更快的方法可以使用 C# 或者甚至是您知道的 3rd 方实用工具来检索屏幕的一部分作为字节数组?

标签: c#graphicscapture

解决方案


推荐阅读