작업환경 : C++Builder XE2, DiretShow 2007
한줄요약 : DirectShow의 IVideoWinodow에 저장된 왭캠 화면을 직접 불러와 이미지 형태로 저장하고 싶습니다.어떻게 해야 좋을까요?
일부코드 :
hr = CoCreateInstance(CLSID_SampleGrabber, NULL, CLSCTX_INPROC_SERVER,
IID_IBaseFilter, (void **)&pSampleGrabberFilter);
Check_hr("CoCreateInstance pSampleGrabberFilter");
hr = pSampleGrabberFilter->QueryInterface(IID_ISampleGrabber,
(LPVOID*)&pSampleGrabber);
Check_hr("QueryInterface pSampleGrabber");
// 버퍼를 준비
pSampleGrabber->SetBufferSamples(TRUE);
long nBufferSize = MediaType.lSampleSize;
long *pBuffer = (long *)malloc(nBufferSize);
// 현재 표시되고 있는 영상을 정지화면으로서 취득
hr = pSampleGrabber->GetCurrentBuffer(&nBufferSize, pBuffer);
Check_hr("GetCurrentBuffer pBuffer");
전체코드 : 링크에 첨부파일 참조