使用 SetDeviceGammaRamp 调整屏幕亮度

原创 2017年08月01日 10:13:57

SetDeviceGammaRamp 的MSDN帮助文档  


//hDC DC句柄,如果为NULL时使用整个屏幕

//wR wG wB 0~255, 默认128

  BOOL SetBrightness(HDC hDC, int wR, int wG, int wB)
  {
    BOOL bRet = FALSE;

    HDC hGammDC = hDC? hDC: ::GetDC(NULL);
  
   #pragma pack(push, 8)
    typedef struct _tagD3dGammaramp_t
    {
      WORD                red  [256];
      WORD                green[256];
      WORD                blue [256];
    }_D3DGAMMARAMP, *LP_D3DGAMMARAMP;
   #pragma pack(pop)

    _D3DGAMMARAMP mGamRamp;
    memset(&mGamRamp, 0, sizeof(mGamRamp));

    for (int iIndex = 0; iIndex < 256; iIndex++)
    {
      mGamRamp.red[iIndex] = min(65535, iIndex * (wR + 128));
      mGamRamp.green[iIndex] = min(65535, iIndex * (wG + 128));
      mGamRamp.blue[iIndex] = min(65535, iIndex * (wB + 128));
    }

    LPVOID lpRamp = &mGamRamp;

    bRet = SetDeviceGammaRamp(hGammDC, lpRamp);

    if(hDC == NULL && hGammDC)
    {
      ::ReleaseDC(NULL, hGammDC);
    }

    return bRet;
  }


相关文章推荐

setDeviceGammaRamp调节 gamma ramp用法

C++代码: CSDN版本:  代码:API函数原形如下():BOOL WINAPI GetDeviceGammaRamp(  HDC hDC,  LPVOID lpRamp); BOOL WINAP...

通过伽马矫正改变计算机屏幕亮度封装代码示例

有些显卡允许你通过程序修改其自身伽玛矫正值,因此你可以使用此特点来改变整个屏幕的亮度。 该SetDeviceGammaRamp API函数接受256个RGB值的数组,在这个数组增加值会让你的...
  • bjtbjt
  • bjtbjt
  • 2013年11月25日 17:08
  • 3893

自动调整屏幕亮度

  • 2014年01月24日 13:46
  • 558KB
  • 下载

AOC_iMenu屏幕亮度调整

  • 2014年04月24日 10:09
  • 1.66MB
  • 下载

如何在 Linux 上自动调整屏幕亮度保护眼睛

当你开始在计算机前花费大量时间的时候,问题自然开始显现。这健康吗?怎样才能舒缓我眼睛的压力呢?为什么光线灼烧着我?尽管解答这些问题的研究仍然在不断进行着,许多程序员已经采用了一些应用来改变他们的日常习...

Swift屏幕亮度调整

  • 2017年10月25日 10:27
  • 143KB
  • 下载

AMD调整屏幕亮度

  • 2016年04月06日 09:49
  • 327KB
  • 下载

解决ubuntu无法调整和保存屏幕亮度的问题

1. 问题发现ubuntu无法调整屏幕亮度,对笔记本来说很耗电,同时也很刺眼,因为它是默认以最大亮度来工作的。所谓的调整,方法为下面的其中一种: Fn+左右的快捷键,亮度没有变化 在亮度与锁屏中拉动进...
  • gatieme
  • gatieme
  • 2016年07月17日 23:04
  • 9785

在Unity中调整安卓当前窗口屏幕亮度的实现(无需导出工程或制作插件)

由于我要在程序中实现改变屏幕亮度,可是在网上一找,全是要先导出为安卓工程,或者是创建插件,这些都太烦了。 其实Unity提供了一个很好的和安卓交互的接口,根本不需要另作设置。理论上,只要有安卓代码,...

android屏幕亮度调整

android屏幕亮度调整   /** * 获得当前屏幕亮度的模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCRE...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用 SetDeviceGammaRamp 调整屏幕亮度
举报原因:
原因补充:

(最多只允许输入30个字)