我正在尝试创建一个小项目,我需要捕获/读取视频帧缓冲区并计算屏幕的平均RGB值。
我不需要在屏幕上写任何东西。我在windows中这样做。
任何人都可以帮助我使用任何可以读取视频帧缓冲区并计算平均RGB值的Windows API吗?
我所知道的是我需要编写一个内核驱动程序,它可以访问读取帧缓冲区 这是唯一的解决方案吗? 2.还有其他方法可以读取帧缓冲区吗? 3.是否有算法从帧缓冲区数据中计算RGB值?
答案 0 :(得分:1)
如果你想要非常好的性能,你可能必须使用directx并将后备缓冲区捕获到纹理。使用mipmap,它将自动创建缩减采样一直到1X1。只需抓住1个像素的颜色就可以了。
祝你好运。在我们发言时,我正在努力实现这一点。我正在为我的房间创建环境光控制。我使用设备上下文和StretchBLT获得了大约15FPS。如果我用GetPixel()抓取1个像素,那只会得到不错的表现。这是i5 3570K @ 4.5GHz
但是使用directx方法,技术上每秒可以获得数百帧甚至数千帧。 (当我制作一个旋转的三角形时,我的660得到大约24,000 FPS。它不会太慢,减去CPU调用。)