SetDeviceGammaRamp 函数 (wingdi.h)

SetDeviceGammaRamp 函数在具有支持硬件中可下载伽玛渐变的驱动程序的直接彩色显示板上设置伽玛渐变。

重要

强烈建议不要使用此 API。 使用此 API 存在主要限制:

  • SetDeviceGammaRamp 实现启发式检查提供的坡道是否会导致屏幕不可读。 如果斜坡违反这些启发法,则该函数会无提示地失败, (即返回 TRUE,但它不会设置斜坡) 。 因此,不能指望使用此函数 来设置任何任意 伽玛渐变。 特别是,启发式方法可防止导致几乎所有像素接近单个值 ((如全屏黑/白) )的渐变,因为这可能会阻止用户恢复屏幕。

  • 由于函数的全局性质,系统上的任何其他应用程序可以随时覆盖已设置的任何坡度。 在某些情况下,操作系统本身可能会保留此函数的使用,从而导致覆盖任何现有坡道。 大多数显示事件( (连接/断开监视器的连接、分辨率更改等)) ,伽玛渐变也会重置。 因此,你无法确定你设置的任何坡道是否有效。

  • 此 API 在 HDR 模式下具有未定义的行为。

  • 此 API 与内置和第三方颜色校准解决方案具有未定义的交互。

对于颜色校准,建议创建国际颜色联盟 (ICC) 配置文件,并让 OS 应用配置文件。 对于高级原始设备制造商 (OEM) 方案,可以使用设备驱动程序模型更直接地自定义颜色校准。 有关管理 颜色 配置文件的信息,请参阅 Windows 颜色系统。

对于蓝光筛选,Windows 现在提供名为 “夜光”的内置支持。 建议将用户定向到此功能。

例如,对于颜色适应 (,根据环境光传感器) 调整颜色校准,Windows 现在提供内置支持,我们建议 OEM 使用该支持。

对于自定义筛选器效果,有各种内置的辅助功能 颜色筛选器 来帮助处理一系列情况。

语法

BOOL SetDeviceGammaRamp(
  HDC    hdc,
  LPVOID lpRamp
);

参数

hdc

指定有问题的直接彩色显示板的设备上下文。

lpRamp

指向包含要设置的伽玛渐变的缓冲区的指针。 伽玛渐变在三个数组中指定,每个数组包含 256 个 WORD 元素,其中包含帧缓冲区中的 RGB 值与数字模拟转换器 (DAC ) 值之间的映射。 数组的序列为红色、绿色、蓝色。 RGB 值必须存储在每个 WORD 的最有效位中,以提高 DAC 独立性。

返回值

如果此函数成功,则返回值为 TRUE

如果此函数失败,则返回值为 FALSE

注解

直接颜色显示模式不使用颜色查找表,通常为 16、24 或 32 位。 并非所有直接彩色视频板都支持可加载的伽玛渐变。 SetDeviceGammaRamp 仅针对具有支持硬件中可下载伽玛渐变的驱动程序的设备成功。

注意

执行此 API 可能需要一定的时间。 在某些硬件上返回可能需要长达 200 毫秒的时间。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 wingdi.h
Library Gdi32.lib
DLL Gdi32.dll

另请参阅