D3DXColorAdjustSaturation 函数 (D3dx9math.h)

注意

D3DX 实用工具库已弃用。 建议改用 DirectXMath

调整颜色的饱和度值。

语法

D3DXCOLOR* D3DXColorAdjustSaturation(
  _Inout_       D3DXCOLOR *pOut,
  _In_    const D3DXCOLOR *pC,
  _In_          FLOAT     s
);

参数

pOut [in, out]

类型: D3DXCOLOR*

指向作为操作结果的 D3DXCOLOR 结构的指针。

pC [in]

类型: const D3DXCOLOR*

指向源 D3DXCOLOR 结构的指针。

s [in]

类型: FLOAT

饱和度值。 此参数在转换为灰度的颜色与原始颜色 pC 之间线性内插。 对 的值没有限制。 如果 s 为 0,则返回的颜色为灰度颜色。 如果 为 1,则返回的颜色为原始颜色。

返回值

类型: D3DXCOLOR*

此函数返回指向 D3DXCOLOR 结构的指针,该结构是饱和度调整的结果。

备注

输入 alpha 通道被复制(未修改)到输出 alpha 通道。

此函数的返回值与 pOut 参数中返回的值相同。 通过这种方式,可以将此函数用作另一个函数的参数。

此函数在不饱和颜色和颜色之间内插 D3DXCOLOR 结构的红色、绿色和蓝色分量,如以下示例所示。

    // Approximate values for each component's contribution to luminance.
    // Based upon the NTSC standard described in ITU-R Recommendation BT.709.
    FLOAT grey = pC->r * 0.2125f + pC->g * 0.7154f + pC->b * 0.0721f;

    pOut->r = grey + s * (pC->r - grey);

如果 s 大于 0 且小于 1,则饱和度会降低。 如果 s 大于 1,则饱和度增加。

灰度颜色的计算方法如下:

r = g = b = 0.2125*r + 0.7154*g + 0.0721*b

要求

要求
标头
D3dx9math.h

D3dx9.lib

另请参阅

数学函数

D3DXColorAdjustContrast