[MFC] 웹캠 영상 위에 도형이나 선 그리는 문제입니다.

글쓴이: 익명 사용자 / 작성시간: 수, 2011/10/12 - 4:01오후
안녕하세요
오랜만에 방문하네요.
사용환경은 VC 6.0 이구요.
MFC를 사용합니다.
#include "vfw.h" #include "Cameo.h" BOOL CNumber_DecodeDlg::OnInitDialog() { m_capwnd = capCreateCaptureWindow( "Capture Window",WS_CHILD | WS_VISIBLE,10, 10,352,288, this->m_hWnd, NULL); } void CNumber_DecodeDlg::OnBtnCameraview() { if(m_VCon) { capDriverDisconnect(m_capwnd); UpdateData(FALSE); GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE); m_VCon = FALSE; return; } m_VCon = capDriverConnect(m_capwnd, 0); if(!m_VCon){ AfxMessageBox("캠이 연결되지 않았습니다."); return; } GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE); capGetVideoFormat(m_capwnd, &m_capbmp, sizeof(BITMAPINFO)); m_bmprect = m_caprect; m_bmprect.top = m_capbmp.bmiHeader.biHeight + 10; capPreviewRate(m_capwnd, 60 capPreview(m_capwnd, TRUE); }
간단히 요약한 소스는 위와 같은데, 위의 소스는 캠의 영상을
다이얼로그에 띄어주는겁니다.
영상을 띄어주고 캠을 켜고, 끄는것까지는 했는데,
그 영상위에 도형이나 선을 그려주고싶습니다.
OnPaint()함수에서 Line을 쓰니 영상 밑에 들어가서 가려져 버리더라구요.
물론 순서도 바꾸어 보았습니다. 영상을 먼저 띄어주고 Line을 그려주어도
결과는 같았습니다.
어떠한 방법으로 그려줘야 할까요??
Forums:
아마도
선'을 영상 자체에 그려주어야 할거 같습니다.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
방법이있긴한데여..
그 영상을 띄워주는 윈도우의 자식윈도우가 되었든 뭐 관계의 윈도우든 .. 그윈도우위에 윈도우를 하나만들어주고 거기에 그림그려주면됩니다.
그런데 , 이제 그 윈도우위에 뜨는 윈도우에는 당연히 titlebar 라던가 기타 테두리및 뭐 그런걸 옵션에서 없애주고 띄워줘야하겠죠..
그럼 두번째 문제는 뭐냐.. 그윈도우로 인해 해당 영상의 영역이 가려진다는거죠..
이건 어떻게 해결하냐하면 그 위에뜬윈도우를 투명하게 해서 영상이 비춰보이도록 하는건데요..
결론적으로 윈도우가 2개있어야한다는거예요..
아마 뭐 다른 방법이 또 있겟지만.. 전 지금은 이방법이 생각나네여..
썩 좋은 방법은아니에요.. 아마 영상속도가 좀 느려지고 어쩌면 버벅거릴수도있는데,, 이런건 뭐 다른 부가적인 기법을 사용해서 줄일수야있겠지만..
더좋은 방법이있긴할거에요.. 하지만 제가말한방법으로 하셔도 되긴될거에요..
댓글 달기