2012-06-13 41 views
0

enter image description here如何放大DirectShow窗口的特定区域?

我试图放大标记A和标记B(它是一个RangeBar)之间的DirectShow窗口区域,它代表了视频窗口的宽度。 我试过使用SetWindowPosition,但所做的只是移动视频窗口。

我是新来的DirectShow,请帮忙!

谢谢!

回答

2

您可以使用渲染器的IVMRMixerControl界面放大到视频的一部分。

你需要切换过滤器“混合模式”,通过调用IVMRFilterConfig::SetNumberOfStreams(你连接过滤器前)(2)。连接渲染器。现在您可以通过拨打IVMRMixerControl::SetOutputRect来设置您想要显示的矩形。你需要提供你想看到的正规化值。这意味着,如果你想放大,你将设置{-0.5, -0.5, 1.5, 1.5},如果你想放大,你会设置{0, 0, 1, 1}

+0

非常感谢!我花了一个星期的时间试图弄清楚。此外,[示例](http://social.msdn.microsoft.com/Forums/en-US/windowsdirectshowdevelopment/thread/b54bfa3d-bfd9-4159-a178-1c921ae20f0d)也帮助我。 – CharlesBryan