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
- propiedades Effect
- requisitos de
- temas relacionados
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 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 |