none
摄像头采集的图像被抓取后显示在一个特定地方 RRS feed

  • 常规讨论

  • 我我想在摄像头拍摄的时候,进行抓取一帧图片数据,然后直接显示在对话框的一个地方,怎么做,我查找了很多,试了很多,都没有结果。下面是我的回调函数的代码:

    LRESULT CALLBACK FrameCallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr)
    {
     capGrabFrameNoStop(hWnd);
     capEditCopy(hWnd);
     HDC hdcDes;
     HDC hDC = ::GetDC(hWnd);
     HBITMAP hBmp;
     CRect rectR;
     
     GetClientRect(GetDlgItem(hWnd, IDC_STA1), &rectR);
     
     if(IsClipboardFormatAvailable(CF_BITMAP))
     {
      hdcDes = CreateCompatibleDC(hDC);
      if (hdcDes != NULL)
      {
       hBmp = (HBITMAP)GetClipboardData(CF_BITMAP);
       SelectObject(hdcDes, hBmp);
       //   StretchBlt(hDC,rectR.left,rectR.top, rectR.Width(), rectR.Height(),hdcDes,0,0, 20,20, SRCCOPY);
       StretchBlt(hDC,0,0,50,50,hdcDes,0,0, 20,20, SRCCOPY);
       TRACE("BITMAP");
       CloseClipboard();
      }
      DeleteDC(hdcDes);
     }
    return (LRESULT)TRUE;

    }

    回调函数注册:capSetCallbackOnFrame(m_hVideoWnd, FrameCallbackProc);

    开始抓取函数:capGrabFrame(m_hVideoWnd);(在一个按钮事件中),

    请高手无论如何要帮帮我呀

    2010年3月21日 6:22