c++ - 哪个 Windows API 捕获屏幕比 Bitblt 或任何其他镜像驱动程序更快?

标签 c++ bitmap screen-capture bitblt

我正在使用 bitblt API 捕获窗口屏幕,大约需要 30 到 40 毫秒,但我想以更快的方式实现这一点,任何其他内置 API 也是如此,或者建议我最好的屏幕捕获驱动程序。

这是我的代码。

ret = BitBlt(m_pGDI->hDoubleBufferWorker,0,0,this->m_screenWidth,
            this->m_screenHeight,hDisplayDC,this->m_scrennOffsetX,this->m_scrennOffsetY,SRCCOPY|CAPTUREBLT);        
        if(!ret)
        {
            int err=    GetLastError();
            ErrorLogger::Log("Error : Desktop : Bitblt failed%d",err);      
        }

最佳答案

我找到了一种可以更快地捕获桌面屏幕的解决方案。

我使用 Direct3D11单帧大约需要 5 到 20 毫秒,与 BitBlt 相比,它减少了 50% 的时间消耗。

关于c++ - 哪个 Windows API 捕获屏幕比 Bitblt 或任何其他镜像驱动程序更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46067847/

相关文章:

C++ Shogun 库 : Cannot locate shogun/lib/config. h 文件

c++ - Qt 中的多线程事件处理程序

c - 读取位图 header ,获取反转值

android - 在 Amazon Kindle Fire HD 中通过 adb 截屏

iphone - 录制iPhone应用程序视频(无需模拟器)

c++ - 静态成员函数错误;如何正确书写签名?

c++ - 面向数据的设计;如何优化 C++ 中的数据结构以提高性能?

java - 使用Bitmap ArrayList动态填充ListView

c# - 在 C# 中将原始图像转换为位图

macos - 检测正在进行的屏幕捕获