2013-10-14 77 views
0

我最近創建了自己的DirectShow電影播放器​​作爲在WPF中使用的控件。這一切都可以正常工作,但我的客戶希望某個功能根據他的偏好來提升顏色。在DirectShow中更改顏色

基於他使用的舊應用程序,他將其定義爲三個獨立滑塊,每個顏色通道(RGB)一個滑塊。

當R將設置爲255,其他設置爲0時,播放視頻中的紅色將被提升,或至少「明顯更多紅色」。

我已經與色調,飽和度,對比度,亮度,各種RGB到HSL/HSV計算搞砸維基百科以及諸如發現,但沒有那些真正做我的期望。

任何人都可以指向正確的方向嗎?也許DirectShow中一個暴露的接口我錯過了,因爲我現在有點無知。在DirectShow中,它甚至可以默認使用嗎?

回答

0

你使用oldskool directshow graphfilter接口嗎?

IID_IAMVideoProcAmp:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd376033%28v=vs.85%29.aspx
此界面具有亮度,對比度,色調,飽和度,銳度,γ等。setter和getter。

變換過濾
http://msdn.microsoft.com/en-us/library/windows/desktop/dd391015%28v=vs.85%29.aspx
這可能不是點擊點擊它,工作任務,如果你創造一切從頭開始。轉換濾鏡是一種創建中間濾鏡的功能,可在運行時更改視頻緩衝區像素。

您是否使用C#,C++或其他語言?

你確實說過使用Windows Presentation Framework(WPF),但是然後mediaplayer是一個directshow應用程序。我的理解是directshow或多或少都是死技術。

研究WPF Effects界面,它是一個現代着色器技術,您應該更容易地轉換像素顏色或創建什麼效果。參考
Pixel Shader Effect Examples

編輯很少DirectShow過濾器相關的鏈接

+0

我結束了使用RGB DirectShow示例過濾器,感謝指針! –