我最近创建了自己的DirectShow电影播放器,作为在WPF中使用的控件。这一切都很好,但我的客户希望根据他的喜好来增加颜色。
根据他使用的旧应用程序,他将其定义为三个单独的滑块,每个颜色通道一个(RGB)。
当R设置为255,其他设置为零时,播放视频中的红色会被提升,或者至少“显着更红”。
我已经在维基百科上找到了Hue,饱和度,对比度,亮度,各种RGB到HSL / HSV计算,但这些都没有真正按照我的预期进行。
有人能指出我正确的方向吗?也许我错过了DirectShow中暴露的界面,因为我现在有点无能为力。甚至可以在DirectShow中默认使用吗?
答案 0 :(得分:0)
您使用oldskool directshow graphfilter接口吗?
IID_IAMVideoProcAmp:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd376033%28v=vs.85%29.aspx
这个界面有亮度,对比度,色调,饱和度,清晰度,伽玛等。设置器和吸气剂。
变换滤镜
http://msdn.microsoft.com/en-us/library/windows/desktop/dd391015%28v=vs.85%29.aspx
如果您从头开始创建所有内容,则可能不会单击“单击它”工作任务。转换过滤器可以创建在运行时更改视频缓冲区像素的中间过滤器。
您使用C#,C ++还是其他语言?
您确实说过使用Windows Presentation Framework(WPF),但是mediaplayer是一个directshow应用程序。我的理解是指导或多或少死技术。
研究WPF效果界面,它是一个现代着色器技术,你应该更容易转换像素颜色或创建什么效果。
Pixel Shader Effect Examples
编辑很少有directshow过滤相关链接供参考