代码之家  ›  专栏  ›  技术社区  ›  pookie

尽可能快地捕获屏幕的一部分

  •  0
  • pookie  · 技术社区  · 8 年前

    我已经做了一个工具,捕捉我的屏幕的一部分。

    enter image description here

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

    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 和 BitBlt 但据我所知, 复制源屏幕 电话 比特比特 在幕后。

    有没有一种更快的方法可以使用C#或者甚至是您知道的第三方实用工具来实现这一点,我可以使用它作为字节数组来检索屏幕的一部分?

    0 回复  |  直到 8 年前