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 enlazador.
- imagen de ejemplo
- propiedades Effect
- de mapa de bits de salida
- requisitos de
- temas relacionados
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 * CExponente + Desplazamiento
Este efecto funciona en imágenes alfa rectas y premultiplicadas. El efecto genera mapas de bits alfa premultipados.
Propiedades de efecto
Nota
Para todos los canales de las propiedades de transferencia gamma:
- El valor de amplitud no está limitado y no es unitaria.
- 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 índice y nombre para mostrar | 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 establece esta opción en TRUE, no aplica la función de transferencia al canal rojo. Se usa una función de transferencia de identidad. Si establece esta opción 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 esta opción en TRUE, no aplica la función de transferencia al canal verde. Se usa una función de transferencia de identidad. Si establece esta opción 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 esta opción en TRUE, no aplica la función de transferencia al canal azul. Se usa una función de transferencia de identidad. Si establece esta opción en FALSE, aplica la función de transferencia gamma al canal azul. El tipo es BOOL. El valor predeterminado es FALSE. |
AlphaAmplitude 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 establece esta opción en TRUE, no aplica la función de transferencia al canal alfa. Se usa una función de transferencia de identidad. Si establece esta opción 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 fija 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 fija los valores antes de que premultipe el alfa . Si establece esto en TRUE, el efecto fijará los valores. Si se establece en FALSE, el efecto no sujetará los valores de color, pero otros efectos y la superficie de salida pueden sujetar los valores si no son de precisión suficiente. 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 | Valor |
---|---|
Cliente mínimo admitido | Windows 8 y Platform Update para Windows 7 [aplicaciones de escritorio | Aplicaciones de la Tienda Windows] |
Servidor mínimo admitido | Windows 8 y Platform Update para Windows 7 [aplicaciones de escritorio | Aplicaciones de la Tienda Windows] |
Encabezado | d2d1effects.h |
Biblioteca | d2d1.lib, dxguid.lib |