设置分辨率 ( 积分: 20 )

  • 主题发起人 主题发起人 jin005
  • 开始时间 开始时间
J

jin005

Unregistered / Unconfirmed
GUEST, unregistred user!
本人用的为dspack组件。笔记本接sony DV90E 1394线
我用IAMStreamConfig接口实现的方法,代码如下:


var
VideoStreamConfig : IAMStreamConfig;
AMMEdiaType : PAMMediaType;
begin

FilterGraph.ClearGraph;
FilterGraph.Active := false;
Filter.BaseFilter.Moniker := SysDev.GetMoniker(TMenuItem(Sender).tag);
FilterGraph.Active := true;
with FilterGraph as ICaptureGraphBuilder2do

begin

FindInterface(@look_downstream_only, nil, Filter as IBaseFilter, IID_IAMStreamConfig, VideoStreamConfig);
VideoStreamConfig.GetFormat(AMMEdiaType);
PVideoInfoHeader(AMMEdiaType.pbFormat)^.bmiHeader.biWidth:= 320;
PVideoInfoHeader(AMMEdiaType.pbFormat)^.bmiHeader.biHeight:= 240;
AMMEdiaType.subtype := MEDIASUBTYPE_RGB24;
VideoStreamConfig.SetFormat(AMMEdiaType^);
DeleteMediaType(AMMEdiaType);
RenderStream(@PIN_CATEGORY_PREVIEW, nil, Filter as IBaseFilter, SampleGrabber as IBaseFilter, VideoWindow as IbaseFilter);
end;

FilterGraph.Play;

为什么,我抓拍的图片都是720*576的,即感觉bmiHeader.biHeight的值是默认值(720*576)。为什么设置成功了,但不起作用呢?请问如何在dspack中调节分辨率呢?我想抓到320*240,请问如何设置?
 
本人用的为dspack组件。笔记本接sony DV90E 1394线
我用IAMStreamConfig接口实现的方法,代码如下:


var
VideoStreamConfig : IAMStreamConfig;
AMMEdiaType : PAMMediaType;
begin

FilterGraph.ClearGraph;
FilterGraph.Active := false;
Filter.BaseFilter.Moniker := SysDev.GetMoniker(TMenuItem(Sender).tag);
FilterGraph.Active := true;
with FilterGraph as ICaptureGraphBuilder2do

begin

FindInterface(@look_downstream_only, nil, Filter as IBaseFilter, IID_IAMStreamConfig, VideoStreamConfig);
VideoStreamConfig.GetFormat(AMMEdiaType);
PVideoInfoHeader(AMMEdiaType.pbFormat)^.bmiHeader.biWidth:= 320;
PVideoInfoHeader(AMMEdiaType.pbFormat)^.bmiHeader.biHeight:= 240;
AMMEdiaType.subtype := MEDIASUBTYPE_RGB24;
VideoStreamConfig.SetFormat(AMMEdiaType^);
DeleteMediaType(AMMEdiaType);
RenderStream(@PIN_CATEGORY_PREVIEW, nil, Filter as IBaseFilter, SampleGrabber as IBaseFilter, VideoWindow as IbaseFilter);
end;

FilterGraph.Play;

为什么,我抓拍的图片都是720*576的,即感觉bmiHeader.biHeight的值是默认值(720*576)。为什么设置成功了,但不起作用呢?请问如何在dspack中调节分辨率呢?我想抓到320*240,请问如何设置?
 
我自己先顶一下。
 
真是怪事了,怎么就没有人愿意回答呢?
期待中。。。。。。
 
我不是不愿意,是不会[:(][:(]帮顶等高手
 
本人已经自己解决了。就此结案
 
这么解决的,告诉一声,以后大家可以参考
 
如果有需要的,请提供email.
 
后退
顶部