<p style="margin:0px 0px 1em;padding:0px .2em;font-family:Verdana, Geneva, sans-serif;"><span style="font-family:dotum;font-size:9pt;">작업환경 : </span><span style="font-family:dotum;font-size:9pt;">C++Builder XE2, DiretShow 2007</span></p><span style="font-family:dotum;">한줄요약 : DirectShow의 IVideoWinodow에 저장된 왭캠 화면을 직접 불러와 이미지 형태로 저장하고 싶습니다.</span> <div> <div style="font-family:dotum;">한줄 요약 코드 : <span style="font-size:9pt;">pSampleGrabber->GetCurrentBuffer(&nBufferSize, pBuffer);</span></div> <div style="font-family:dotum;"></div> <div style="font-family:dotum;"><span style="font-size:9pt;">상세내용 :</span></div> <div style="font-family:dotum;"><span style="font-size:9pt;">pVidWin에서 </span><span style="font-size:9pt;">화면에 뿌려주기 전에 </span><span style="font-size:9pt;">pVidWin의 미디어 정보를 캡쳐해서 이미지 형태로 저장하고 싶습니다.</span></div> <div style="font-family:dotum;"><span style="font-size:9pt;">그래서 SampleGrabber가 이에 적합하다 듣고 이리저리 해봤는대 결국은 구현에 실패했습니다.</span></div> <div style="font-family:dotum;">pSampleGrabber->GetCurrentBuffer(&nBufferSize, pBuffer); 이 부분이 자꾸 에러가 나서 그런것 같은대</div> <div style="font-family:dotum;"> <p style="margin:0px 0px 1em;padding:0px .2em;"><span style="font-size:9pt;">어떻게 해야 좋을까요?</span></p></div> <div style="font-family:dotum;"></div> <div> <p style="font-family:dotum;margin:0px 0px 1em;padding:0px .2em;">일부코드 :</p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><span style="white-space:pre;"> </span>hr = CoCreateInstance(CLSID_SampleGrabber, NULL, CLSCTX_INPROC_SERVER,</font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><span style="white-space:pre;"> </span>IID_IBaseFilter, (void **)&pSampleGrabberFilter);</font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><span style="white-space:pre;"> </span>Check_hr("CoCreateInstance pSampleGrabberFilter");</font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><br></font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><span style="white-space:pre;"> </span>hr = pSampleGrabberFilter->QueryInterface(IID_ISampleGrabber,</font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><span style="white-space:pre;"> </span>(LPVOID*)&pSampleGrabber);</font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><span style="white-space:pre;"> </span>Check_hr("QueryInterface pSampleGrabber");</font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><br></font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><span style="white-space:pre;"> </span>// 버퍼를 준비</font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><span style="white-space:pre;"> </span>pSampleGrabber->SetBufferSamples(TRUE);</font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><span style="white-space:pre;"> </span>long nBufferSize = MediaType.lSampleSize;</font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><span style="white-space:pre;"> </span>long *pBuffer = (long *)malloc(nBufferSize);</font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><br></font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><span style="white-space:pre;"> </span>// 현재 표시되고 있는 영상을 정지화면으로서 취득</font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><span style="white-space:pre;"> </span>hr = pSampleGrabber->GetCurrentBuffer(&nBufferSize, pBuffer);</font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><font face="dotum"><span style="white-space:pre;"> </span>Check_hr("GetCurrentBuffer pBuffer");</font></p> <p style="margin:0px 0px 1em;padding:0px .2em;"></p> <p style="margin:0px 0px 1em;padding:0px .2em;"><span style="font-family:dotum;font-size:9pt;">전체코드 : 링크에 첨부파일 참조</span></p></div></div> <div style="font-family:dotum;"> <p style="margin:0px 0px 1em;padding:0px .2em;"><a target="_blank" href="http://blog.naver.com/hss9205/221156888101" target="_blank">http://blog.naver.com/hss9205/221156888101</a><br></p></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.