【问题标题】:Changing colors in DirectShow在 DirectShow 中更改颜色
【发布时间】:2013-10-14 14:13:34
【问题描述】:

我最近创建了自己的 DirectShow 电影播放器​​作为 WPF 中使用的控件。这一切都很好,但我的客户想要一个根据他的喜好增强颜色的功能。

根据他使用的一个旧应用程序,他将其定义为三个单独的滑块,每个颜色通道 (RGB) 一个。

当 R 设置为 255 并且其他设置为 0 时,播放视频中的红色将被增强,或者至少“明显更红”。

我已经弄乱了色调、饱和度、对比度、亮度、各种 RGB 到 HSL/HSV 的计算,如维基百科等,但这些都没有真正达到我的预期。

谁能指出我正确的方向?也许我错过了 DirectShow 中的一个公开界面,因为我现在有点无能为力。在 DirectShow 中是否可以默认使用?

【问题讨论】:

    标签: colors directshow rgb


    【解决方案1】:

    你使用 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),但媒体播放器是一个直接显示应用程序。我的理解是 directshow 或多或少是死技术。

    研究 WPF 效果界面,它是一种现代着色器技术,您应该可以更轻松地转换像素颜色或创建诸如此类的效果。
    Pixel Shader Effect Examples

    编辑很少有directshow过滤器相关链接供参考

    【讨论】:

    • 我最终使用了 RGB DirectShow 示例过滤器,感谢您的指点!
    猜你喜欢
    • 1970-01-01
    • 2021-05-28
    • 2013-11-06
    • 2019-04-17
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多