zoukankan      html  css  js  c++  java
  • c# DirectShow 通过IAMVideoProcAmp的Set方法 来设置视频图像的Brightness 调整亮度

    以下实现代码 以SDK中的DxSnap下的Capture.cs为基础

    修改部分1.
    //在Capture的构造函数中和SetupGraph函数中
    //            增加亮度传入参数int iBrightness
    private void SetupGraph(DsDevice dev, int iWidth, int iHeight, short iBPP, Control hControl,int iBrightness)
    {
    ...
    }


    修改部分2.
    //在SetupGraph函数的如下位置增加对iBrightness的判断
    if (iHeight + iWidth + iBPP > 0)
    {
         SetConfigParms(pRaw, iWidth, iHeight, iBPP);
    }
    if (iBrightness > 0)
    {
          SetBrightness(capFilter, iBrightness);
    }


    修改部分3.
    //函数实现
    private void SetBrightness(IBaseFilter capFilter, int iBrightness)
    {
        IAMVideoProcAmp videoProcAmp = capFilter as IAMVideoProcAmp;
        int Val;
        DirectShowLib.VideoProcAmpFlags Flags = VideoProcAmpFlags.Auto;
        videoProcAmp.Get(VideoProcAmpProperty.Brightness, out Val, out Flags);
        if (m_brightness != 0)
        {
            videoProcAmp.Set(VideoProcAmpProperty.Brightness, m_brightness, Flags);
        }
        else
        {
            ...
        }
    }
    以上仅做简单实现

  • 相关阅读:
    [BZOJ5015][Snoi2017]礼物
    [BZOJ5016][Snoi2017]一个简单的询问
    [BZOJ4184]shallot
    上传头像
    前端基础之jQuery
    前端之html的查漏补缺
    CSS3圆角、阴影、rgba
    CSS3新增选择器
    前端基础之BOM和DOM
    前端基础之JavaScript
  • 原文地址:https://www.cnblogs.com/freeliver54/p/1312714.html
Copyright © 2011-2022 走看看