- 6
- 0
- 约 12页
- 2015-10-15 发布于重庆
- 举报
DShow中实现抓图的几种方法
DShow中实现抓图的几种方法1.加入Sample Grabber Filter
当我们加入Sample Grabber Filter的时候,我们可以直接调用其接口(interface)ISampleGrabber。该接口可以获取经过该Filter的单独的Media Samples。详情请参见DXSDK。
1.1 派生出自己的Sample Grabber
从ISampleGrabberCB中派生出自己的类,然后实现其虚函数,详情请参见SDK中的示例程序(DXSDK ROOT\Samples\C++\DirectShow\Editing\GrabBitmaps)。
1.2 直接调用Sample Grabber Filter的接口
如果我们在播放的过程中动态的加入Filter的话,操作和效率都不乐观。所以我采用下面的方法:
该方法传递的是时间,不是在播放的时候动态加入Filter然后截图,而是另外打开源文件进行操作。
A)。申明以下接口:
A)。申明以下接口:
#001 IGraphBuilder *pGraph = NULL; //for graph builder
#002 IMediaControl *pControl = NULL; //media control
#003 IMediaSeeking *pSeeking = NULL; //media seeking
#004 IMediaEventEx *pEvent = NULL; //media envent
#005 IBaseFilter *pNullFilter =NULL;//for holding the Sample grabber Filter
B)。初始化接口:
#001 JIF(CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC,
#002 IID_IGraphBuilder, (void **)pGraph));
#003
#004 JIF(CoCreateInstance(CLSID_NullRenderer, NULL, CLSCTX_INPROC,
#005 IID_IBaseFilter, (void **)pNullFilter));
#006 JIF(pGraph-QueryInterface(IID_IMediaControl,(void **)pControl));
#007 JIF(pGraph-QueryInterface(IID_IMediaSeeking, (void **)pSeeking));
#008 JIF(pGraph-QueryInterface(IID_IMediaEvent, (void **)pEvent));
C)。创建Sample Grabber
#001 // Create the Sample Grabber.
#002 IBaseFilter *pGrabberF = NULL;
#003 JIF(CoCreateInstance(CLSID_SampleGrabber,NULL, CLSCTX_INPROC_SERVER,
#004 IID_IBaseFilter, (void**)pGrabberF));
#005
#006 JIF(pGraph-AddFilter(pGrabberF, LSample Grabber));
#007 JIF(pGraph-AddFilter(pNullFilter, LNull Render Filter));
#008
#009 ISampleGrabber *pGrabber;
#010 JIF(pGrabberF-QueryInterface(IID_ISampleGrabber, (void**)pGrabber));
设置Sample Grabber的媒体格式:调用SetMediaType,该函数接受一个AM_MEDIA_TYPE的结构,主要是设置该结构中的majortype,和subtype域。
D)。添加Source Filter:
#001 IBaseFilter *pSrc;
#002 JIF(pGraph-AddSourceFilter(T2W(m_szFile), LSource, pSrc));
E)。连接Grabber 和 NullRender两个Filter:
#001 IPin *pOutPin;
#002 hr = GetPin(pG
您可能关注的文档
- (三)信息管理与医院运行监测统计指标.doc
- (同步练习)加减法的简便计算.doc
- (抗感染用药--话术).ppt
- (蒋)解析几何-----直线与直线、直线与圆等运用重在常规运算、直线与椭圆、直线与抛物线(学案).doc
- (语文S版)四年级语文课件 蒲公英的梦.ppt
- ABO反定型的必要性.ppt
- AECOPD治疗策略.doc
- AHP方法对三种车型综合评估.doc
- ATM存取款一休机操作人员介面英汉对照(全w).doc
- ArrayList的使用方法.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)