Partilhar via


Função D3DXColorAdjustSaturation (D3dx9math.h)

Observação

A biblioteca de utilitários D3DX foi preterida. Em vez disso, recomendamos que você use DirectXMath .

Ajusta o valor de saturação de uma cor.

Sintaxe

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

Parâmetros

pOut [in, out]

Tipo: D3DXCOLOR*

Ponteiro para uma estrutura D3DXCOLOR que é o resultado da operação.

pC [in]

Tipo: const D3DXCOLOR*

Ponteiro para uma estrutura D3DXCOLOR de origem.

s [in]

Tipo: FLOAT

Valor de saturação. Esse parâmetro interpola linearmente entre a cor convertida em escala de cinza e a cor original, pC. Não há limites para o valor de s. Se s for 0, a cor retornada será a cor de escala de cinza. Se s for 1, a cor retornada será a cor original.

Valor retornado

Tipo: D3DXCOLOR*

Essa função retorna um ponteiro para uma estrutura D3DXCOLOR que é o resultado do ajuste de saturação.

Comentários

O canal alfa de entrada é copiado, não modificado, para o canal alfa de saída.

O valor retornado para essa função é o mesmo valor retornado no parâmetro pOut. Dessa forma, essa função pode ser usada como um parâmetro para outra função.

Essa função interpola os componentes de cor vermelho, verde e azul de uma estrutura D3DXCOLOR entre uma cor insaturada e uma cor, conforme mostrado no exemplo a seguir.

    // 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);

Se s for maior que 0 e menor que 1, a saturação será reduzida. Se s for maior que 1, a saturação será aumentada.

A cor de escala de cinza é computada como:

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

Requisitos

Requisito Valor
parâmetro
D3dx9math.h
Biblioteca
D3dx9.lib

Confira também

Funções Matemáticas

D3DXColorAdjustContrast