Efecto de transferencia lineal
Use el efecto de transferencia lineal para asignar las densidades de color de una imagen mediante una función lineal creada a partir de una lista de valores que proporcione para cada canal.
El CLSID de este efecto es CLSID_D2D1LinearTransfer.
Imagen de ejemplo
Antes |
---|
Después |
ComPtr<ID2D1Effect> linearTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LinearTransfer, &linearTransferEffect);
linearTransferEffect->SetInput(0, bitmap);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_SLOPE, 2.5f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE, 5.0f);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(linearTransferEffect.Get());
m_d2dContext->EndDraw();
La función de transferencia lineal se crea en función de la pendiente e interceptación Y para cada canal que especifique. La intensidad del píxel de salida C se calcula con la ecuación: C' = mC + B, donde m es la pendiente de la función lineal y B es la intersección Y de la función lineal.
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 lineal:
- La interceptación Y no está limitada y no es unitaria.
- La pendiente no está limitada y no tiene unidad.
Enumeración de nombre para mostrar e índice | Tipo y valor predeterminado | Descripción |
---|---|---|
RedYIntercept D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT |
FLOAT 0.0f |
Interceptación Y de la función lineal para el canal Rojo. |
RedSlope D2D1_LINEARTRANSFER_PROP_RED_SLOPE |
FLOAT 1.0f |
Pendiente de la función lineal para el canal Rojo. |
RedDisable D2D1_LINEARTRANSFER_PROP_RED_DISABLE |
BOOL FALSE |
Si establece esto en TRUE, el efecto no aplica la función de transferencia al canal rojo. Si establece esto en FALSE, el efecto aplica la función RedLinearTransfer al canal rojo. |
GreenYIntercept D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT |
FLOAT 0.0f |
Interceptación Y de la función lineal para el canal verde. |
GreenSlope D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE |
FLOAT 1.0f |
Pendiente de la función lineal para el canal verde. |
GreenDisable D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE |
BOOL FALSE |
Si establece esto en TRUE, el efecto no aplica la función de transferencia al canal verde. Si se establece en FALSE, se aplica la función GreenLinearTransfer al canal verde. |
BlueYIntercept D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT |
FLOAT 0.0f |
Interceptación Y de la función lineal para el canal azul. |
BlueSlope D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE |
FLOAT 1.0f |
Pendiente de la función lineal para el canal azul. |
BlueDisable D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE |
BOOL FALSE |
Si establece esto en TRUE, el efecto no aplica la función de transferencia al canal azul. Si se establece en FALSE, se aplica la función BlueLinearTransfer al canal azul. |
AlphaYIntercept D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT |
FLOAT 0.0f |
Interceptación Y de la función lineal para el canal Alfa. |
AlphaSlope D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE |
FLOAT 0.0f |
Pendiente de la función lineal para el canal Alfa. |
AlphaDisable D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE |
BOOL FALSE |
Si establece esto en TRUE, el efecto no aplica la función de transferencia al canal Alfa. Si establece esto en FALSE, aplica la función AlphaLinearTransfer al canal Alfa. |
ClampOutput D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT |
BOOL FALSE |
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. |
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 |