2014-01-13 69 views
2

GDI32.DLL中用于更改Windows上颜色平衡的功能名称是什么?以编程方式更改屏幕颜色平衡

例如更改设备伽马我需要使用SetDeviceGammaRamp

[DllImport("GDI32.dll")] 
private unsafe static extern bool SetDeviceGammaRamp(Int32 hdc, void* ramp); 

在此先感谢。

+0

颜色平衡你的意思是亮度和修改RGB值,对不对? –

+0

右边(红色,绿色和蓝色),您可以在dccw.exe上的“调整色彩平衡”中修改相同的值。 –

+0

WcsAssociateColorProfileWithDevice() –

回答

0

您可以调整屏幕的RGB值,并改变它的亮度与完全相同的功能,正如你所说:SetDeviceGammaRamp

在这里看到: http://www.nirsoft.net/vc/change_screen_brightness.html

功能的第二个参数,你传递的RGB值:

//Generate the 256-colors array for the specified wBrightness value. 
     WORD GammaArray[3][256]; 

     for (int iIndex = 0; iIndex < 256; iIndex++) 
     { 
      int iArrayValue = iIndex * (wBrightness + 128); 

      if (iArrayValue > 65535) 
       iArrayValue = 65535; 

      GammaArray[0][iIndex] = 
      GammaArray[1][iIndex] = 
      GammaArray[2][iIndex] = (WORD)iArrayValue; 

     } 

     //Set the GammaArray values into the display device context. 
     bReturn = SetDeviceGammaRamp(hGammaDC, GammaArray);