Efecto de transferencia de tabla

Use el efecto de transferencia de tabla para asignar las densidades de color de una imagen mediante una función de transferencia creada a partir de la interpolación de una lista de valores que proporcione.

El CLSID de este efecto es CLSID_D2D1TableTransfer.

Imagen de ejemplo

La imagen aquí muestra la entrada y salida del efecto de transferencia de tabla.

Antes
la imagen antes del efecto.
Después
la imagen después de la transformación.
ComPtr<ID2D1Effect> tableTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1TableTransfer, &tableTransferEffect);

tableTransferEffect->SetInput(0, bitmap);

float table[2] = {0.75f, 1.0f};
tableTransferEffect->SetValue(D2D1_TABLETRANSFER_PROP_BLUE_TABLE, table);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(tableTransferEffect.Get());
m_d2dContext->EndDraw();

La función de transferencia se basa en una lista de entradas V=(V0,V1,V2,V3, V? ,VN), donde N es el número de elementos - 1.

La intensidad del píxel de entrada se representa como C. La intensidad del píxel de salida, C se puede calcular con la ecuación.

Para un valor C, elija un valor k, de modo que: k/N = C < (k+1)/N

La salida C se calcula con la siguiente ecuación: C' = V? + (C - k/N) * N * (V??? 1? - V?)

Este efecto funciona en imágenes alfa rectas y premultiplicadas. El efecto genera mapas de bits alfa premultiplicados.

Este es el aspecto del gráfico de la función de transferencia de tabla si la propiedad table está establecida [0.0, 0.25, 1.0]en .

gráfico de intensidad de píxeles para la función de transferencia de tabla.

Propiedades de efecto

Nota:

Los valores de todos los canales de las propiedades de transferencia de tabla no son unitarios y tienen un mínimo de 0,0 y un máximo de 1,0.

Enumeración de nombre para mostrar e índice Tipo y valor predeterminado Descripción
RedTable
D2D1_TABLETRANSFER_PROP_RED_TABLE
FLOAT[]
{0.0f, 1.0f}
Lista de valores usados para definir la función de transferencia para el canal rojo.
RedDisable
D2D1_TABLETRANSFER_PROP_RED_DISABLE
BOOL
FALSE
Si establece esto en TRUE, el efecto no aplica la función de transferencia al canal rojo. Si establece esta opción en FALSE, aplica la función RedTableTransfer al canal rojo.
GreenTable
D2D1_TABLETRANSFER_PROP_GREEN_TABLE
FLOAT[]
{0.0f, 1.0f}
Lista de valores usados para definir la función de transferencia para el canal verde.
GreenDisable
D2D1_TABLETRANSFER_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 GreenTableTransfer al canal verde.
BlueTable
D2D1_TABLETRANSFER_PROP_BLUE_TABLE
FLOAT[]
{0.0f, 1.0f}
Lista de valores usados para definir la función de transferencia para el canal Azul.
BlueDisable
D2D1_TABLETRANSFER_PROP_BLUE_DISABLE
BOOL
FALSE
Si establece esto en TRUE, el efecto no aplica la función de transferencia al canal azul. Si establece esto en FALSE, aplica la función BlueTableTransfer al canal azul.
AlphaTable
D2D1_TABLE_TRANSFER_PROP_ALPHA_TABLE
FLOAT[]
{0.0f, 1.0f}
Lista de valores usados para definir la función de transferencia para el canal Alfa.
AlphaDisable
D2D1_TABLETRANSFER_PROP_ALPHA_DISABLE
BOOL
FALSE
Si establece esto en TRUE, el efecto no aplica la función de transferencia al canal Alfa. Si se establece en FALSE, se aplica la función AlphaTableTransfer al canal Alfa.
ClampOutput
D2D1_TABLETRANSFER_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

ID2D1Effect