视频卡会提供API或者用VFW实现单帧捕获。将单帧捕获得到的数据按照你的要求处理,再放到一个BMP或DIB结构里显示出来即刻。

解决方案 »

  1.   

    谢谢efm(簌簌过儿)!
    我有一个设想不知是否能够实现。
    视频卡采集的视频流应该在输出到窗口之前放在缓冲区中,不知道是否能够直接在缓冲区里修改后播放出来啊?
    不过,直接修改得化同步控制不知道能否实现。
      

  2.   

    direct show,去ms下个directx sdk,里面有sample, 我做过的是对摄像头进来的视频进行处理。你可以利用一个回调函数,在系统每收到一帧时来调用你的函数,你可以对缓冲中的数据进行处理。
      

  3.   

    谢谢hooligan(风)!能否说得再详细些呢?用那个回调函数呢?
      

  4.   

    不是一两句话能说请的,你先看看directx sdk中一个截取静态图片的例子,我就是在它上面改的,有问题再说。
      

  5.   

    我在想,是不是这样做啊:
    先用BOOL capSetCallbackOnFrame(hwnd, fpProc );设置回调函数。
    再编写自己的函数  LRESULT PASCAL FrameCallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr);
    其中lpVHdr结构中有指向DDB的指针。我便可以处理了吧?
      

  6.   

    谢谢hooligan(风)!
    其实,我对DirectX 一无所知,是不是很难啊?
      

  7.   

    还是建议看看sample吧,不是很难的