Compartir a través de


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
la imagen antes del efecto.
Después
la imagen después de la transformación.
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 interceptación Y de la función lineal.

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 lineal:

  • La interceptación Y no está limitada y no es unitaria.
  • La pendiente no está limitada y no es unitaria.
Enumeración de índice y nombre para mostrar Tipo y valor predeterminado Descripción
RedYIntercept
D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT
FLOTAR
0.0f
Interceptación Y de la función lineal para el canal Rojo.
RedSlope
D2D1_LINEARTRANSFER_PROP_RED_SLOPE
FLOTAR
1.0f
Pendiente de la función lineal para el canal rojo.
RedDisable
D2D1_LINEARTRANSFER_PROP_RED_DISABLE
BOOL
FALSO
Si establece esta opción 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
FLOTAR
0.0f
Interceptación Y de la función lineal para el canal verde.
GreenSlope
D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE
FLOTAR
1.0f
Pendiente de la función lineal para el canal verde.
GreenDisable
D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE
BOOL
FALSO
Si establece esta opción en TRUE, el efecto no aplica la función de transferencia al canal verde. Si establece esta opción en FALSE, aplica la función GreenLinearTransfer al canal verde.
BlueYIntercept
D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT
FLOTAR
0.0f
Interceptación Y de la función lineal para el canal azul.
BlueSlope
D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE
FLOTAR
1.0f
Pendiente de la función lineal del canal azul.
BlueDisable
D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE
BOOL
FALSO
Si establece esta opción en TRUE, el efecto no aplica la función de transferencia al canal azul. Si establece esta opción en FALSE, aplica la función BlueLinearTransfer al canal azul.
AlphaYIntercept
D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT
FLOTAR
0.0f
Interceptación Y de la función lineal para el canal Alfa.
AlphaSlope
D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE
FLOTAR
0.0f
Pendiente de la función lineal para el canal Alfa.
AlphaDisable
D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE
BOOL
FALSO
Si establece esta opción 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
FALSO
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.

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

ID2D1Effect