Efecto de transferencia gamma
Utilice el efecto de transferencia gamma para asignar las intensidades de color de una imagen mediante una función gamma creada mediante una amplitud, exponente y desplazamiento que proporcione para cada canal.
El CLSID de este efecto es CLSID_D2D1GammaTransfer. Para usar este efecto, agregue dxguid.lib a las dependencias del vinculador.
Imagen de ejemplo
Antes |
---|
Después |
ComPtr<ID2D1Effect> gammaTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1GammaTransfer, &gammaTransferEffect);
gammaTransferEffect->SetInput(0, bitmap);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_RED_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT, 0.25f);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(gammaTransferEffect.Get());
m_d2dContext->EndDraw();
Este efecto aplica una función de transferencia gamma basada en la ecuación aquí.
La intensidad del píxel de entrada se representa como C y la intensidad del píxel de salida como C'. C' = Amplitude * CExponent + Offset
Este efecto funciona en imágenes alfa rectas y premultiplicadas. El efecto genera mapas de bits alfa premultiplicados.
Propiedades de efecto
Nota:
Para todos los canales de las propiedades de transferencia gamma:
- El valor de amplitud no está limitado y no tiene unidad.
- El valor del exponente no está limitado y no tiene unidad.
- El valor de desplazamiento no está limitado y no tiene unidad.
Enumeración de nombre para mostrar e índice | Descripción |
---|---|
RedAmplitude D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE |
Amplitud de la función de transferencia gamma para el canal Rojo. El tipo es FLOAT. El valor predeterminado es 1.0f. |
RedExponent D2D1_GAMMATRANSFER_PROP_RED_EXPONENT |
Exponente de la función de transferencia gamma para el canal Rojo. El tipo es FLOAT. El valor predeterminado es 1.0f. |
RedOffset D2D1_GAMMATRANSFER_PROP_RED_OFFSET |
Desplazamiento de la función de transferencia gamma para el canal Rojo. El tipo es FLOAT. El valor predeterminado es 0,0f. |
RedDisable D2D1_GAMMATRANSFER_PROP_RED_DISABLE |
Si se establece en TRUE, no se aplica la función de transferencia al canal rojo. Se usa una función de transferencia de identidad. Si establece esto en FALSE, aplica la función de transferencia gamma al canal rojo. El tipo es BOOL. El valor predeterminado es FALSE. |
GreenAmplitude D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE |
Amplitud de la función de transferencia gamma para el canal verde. El tipo es FLOAT. El valor predeterminado es 1.0f. |
GreenExponent D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT |
Exponente de la función de transferencia gamma para el canal verde. El tipo es FLOAT. El valor predeterminado es 1.0f. |
GreenOffset D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET |
Desplazamiento de la función de transferencia gamma para el canal verde. El tipo es FLOAT. El valor predeterminado es 0,0f. |
GreenDisable D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE |
Si establece esto en TRUE, no aplica la función de transferencia al canal verde. Se usa una función de transferencia de identidad. Si establece esto en FALSE, aplica la función de transferencia gamma al canal verde. El tipo es BOOL. El valor predeterminado es FALSE. |
BlueAmplitude D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE |
Amplitud de la función de transferencia gamma para el canal azul. El tipo es FLOAT. El valor predeterminado es 1.0f. |
BlueExponent D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT |
Exponente de la función de transferencia gamma para el canal Azul. El tipo es FLOAT. El valor predeterminado es 1.0f. |
BlueOffset D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET |
Desplazamiento de la función de transferencia gamma para el canal Azul. El tipo es FLOAT. El valor predeterminado es 0,0f. |
BlueDisable D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE |
Si establece esto en TRUE, no aplica la función de transferencia al canal Azul. Se usa una función de transferencia de identidad. Si establece esto en FALSE, aplica la función de transferencia gamma al canal azul. El tipo es BOOL. El valor predeterminado es FALSE. |
AlfaAmplitude D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE |
Amplitud de la función de transferencia gamma para el canal alfa. El tipo es FLOAT. El valor predeterminado es 1.0f. |
AlphaExponent D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT |
Exponente de la función de transferencia gamma para el canal alfa. El tipo es FLOAT. El valor predeterminado es 1.0f. |
AlphaOffset D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET |
Desplazamiento de la función de transferencia gamma para el canal alfa. El tipo es FLOAT. El valor predeterminado es 0,0f. |
AlphaDisable D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE |
Si se establece en TRUE, no se aplica la función de transferencia al canal alfa. Se usa una función de transferencia de identidad. Si establece esto en FALSE, aplica la función de transferencia gamma al canal alfa. El tipo es BOOL. El valor predeterminado es FALSE. |
ClampOutput D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT |
Si el efecto sujeta los valores de color a entre 0 y 1 antes de que el efecto pase los valores al siguiente efecto del gráfico. El efecto sujeta los valores antes de que premulte el alfa . Si establece esto en TRUE, el efecto restringirá los valores. Si establece esto en FALSE, el efecto no sujetará los valores de color, pero otros efectos y la superficie de salida pueden sujetar los valores si no tienen una precisión lo suficientemente alta. El tipo es BOOL. El valor predeterminado es FALSE. |
Mapa de bits de salida
El tamaño del mapa de bits de salida es el mismo que el tamaño del mapa de bits de entrada.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8 y actualización de plataforma para Windows 7 [aplicaciones de escritorio | Aplicaciones de la Tienda Windows] |
Servidor mínimo compatible | Windows 8 y actualización de plataforma para Windows 7 [aplicaciones de escritorio | Aplicaciones de la Tienda Windows] |
Encabezado | d2d1effects.h |
Biblioteca | d2d1.lib, dxguid.lib |