2012-06-13 43 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