📄 subject_61722.htm
字号:
<p>
序号:61722 发表者:nbm 发表日期:2003-11-21 12:12:45
<br>主题:帮帮我:如何从正在播放MPEG的窗口中抓图?
<br>内容:我下载的例子用的是SetCapture(),经常抓不到图,我看论坛上说用DirectX来做,可我没有接触过DirectX,无从下手,请大家多多指点,给我一个思路。操作系统win2000
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:色盲 回复日期:2003-11-21 14:27:28
<br>内容:o
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:唐特 回复日期:2003-11-21 14:30:31
<br>内容:首先初始化IBasicVideo接口<BR>在头文件里定义:<BR>IGraphBuilder *pigb;<BR>IBasicVideo *pibv;<BR><BR>然后在函数里面编写抓图程序,你可以参考一下我的这段程序,能够实现抓图:<BR><BR>void EditDlg::OnCaptureImage()<BR>{ <BR>HRESULT hr;<BR><BR>hr=CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pigb);<BR><BR> if(SUCCEEDED(hr))<BR> {<BR> pigb->QueryInterface(IID_IBasicVideo, (void **)&pibv);<BR> }<BR>long size; <BR>long* image = NULL; <BR><BR>long lWidth, lHeight; <BR><BR>pibv->GetVideoSize(&lWidth, &lHeight); <BR><BR>// determine size <BR>pibv->GetCurrentImage(&size,image); <BR><BR>char* buffer = new char[size]; <BR><BR>hr = pibv->GetCurrentImage(&size,(long*)buffer); <BR><BR><BR>LPBITMAPINFOHEADER lpbi; <BR><BR>lpbi = (LPBITMAPINFOHEADER)buffer; <BR><BR>HDRAWDIB hdd;<BR>HDC hdc;<BR>CClientDC ClientDC(this); <BR> <BR>hdc=ClientDC.GetSafeHdc();<BR>hdd=DrawDibOpen();<BR>DrawDibDraw(hdd,hdc,350,90,110,110,lpbi,(LPVOID)buffer,0,0,lWidth,lHeight,DDF_BACKGROUNDPAL);<BR>}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:nbm 回复日期:2003-11-21 15:00:22
<br>内容:谢谢谢谢,可是这个IBasicVideo接口怎么初始化呀?IGraphBuilder 要不要初始化?你有没有这方面的中文资料?我现在头都大了!<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:唐特 回复日期:2003-11-21 15:30:52
<br>内容:hr=CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pigb);<BR><BR> if(SUCCEEDED(hr))<BR> {<BR> pigb->QueryInterface(IID_IBasicVideo, (void **)&pibv);<BR> }<BR>这段程序就是在初始化啊.sorry,是我没说清楚.<BR>还有,我的那段程序没有把截到的图保存成文件,只是把它粘到了窗口的某个位置上了.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:fsdfsfsdfsfsdfsdf 回复日期:2003-11-21 16:22:43
<br>内容:那我要想保存成文件<BR>应如何做呢<BR>请指点<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -