Efeito de transferência de tabela
Use o efeito de transferência de tabela para mapear as intensidades de cor de uma imagem usando uma função de transferência criada com base na interpolação de uma lista de valores que você fornece.
O CLSID para esse efeito é CLSID_D2D1TableTransfer.
- de imagem de exemplo
- propriedades do efeito
- requisitos de
- tópicos relacionados
Imagem de exemplo
A imagem aqui mostra a entrada e a saída do efeito de transferência da tabela.
Antes |
---|
![]() |
Depois |
![]() |
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();
A função de transferência é baseada em uma lista de entradas V=(V0,V1,V2,V3, V? ,VN) em que N é o número de elementos – 1.
A intensidade do pixel de entrada é representada como C. A intensidade do pixel de saída, C pode ser calculada com a equação.
Para um valor C, escolha um valor k, de modo que: k/N = C < (k+1)/N
A saída C é calculada usando a seguinte equação: C' = V? + (C - k/N) * N * (V??? 1? - V?)
Esse efeito funciona em imagens alfa retos e pré-multiplicadas. O efeito gera bitmaps alfa pré-multiplicados.
Veja a aparência do grafo da função de transferência de tabela se a propriedade da tabela estiver definida como [0.0, 0.25, 1.0]
.
Propriedades de efeito
Nota
Os valores de todos os canais das propriedades de transferência de tabela são sem unidade e têm um mínimo de 0,0 e um máximo de 1,0.
Nome de exibição e enumeração de índice | Tipo e valor padrão | Descrição |
---|---|---|
RedTable D2D1_TABLETRANSFER_PROP_RED_TABLE |
FLOAT[] {0.0f, 1.0f} |
A lista de valores usados para definir a função de transferência para o canal Vermelho. |
RedDisable D2D1_TABLETRANSFER_PROP_RED_DISABLE |
BOOL FALSO |
Se você definir isso como TRUE, o efeito não aplicará a função de transferência ao canal Vermelho. Se você definir isso como FALSE, ele aplicará a função RedTableTransfer ao canal Vermelho. |
GreenTable D2D1_TABLETRANSFER_PROP_GREEN_TABLE |
FLOAT[] {0.0f, 1.0f} |
A lista de valores usados para definir a função de transferência para o canal Verde. |
GreenDisable D2D1_TABLETRANSFER_PROP_GREEN_DISABLE |
BOOL FALSO |
Se você definir isso como TRUE, o efeito não aplicará a função de transferência ao canal Verde. Se você definir isso como FALSE, ele aplicará a função GreenTableTransfer ao canal Verde. |
BlueTable D2D1_TABLETRANSFER_PROP_BLUE_TABLE |
FLOAT[] {0.0f, 1.0f} |
A lista de valores usados para definir a função de transferência para o canal Azul. |
BlueDisable D2D1_TABLETRANSFER_PROP_BLUE_DISABLE |
BOOL FALSO |
Se você definir isso como TRUE, o efeito não aplicará a função de transferência ao canal Azul. Se você definir isso como FALSE, ele aplicará a função BlueTableTransfer ao canal Azul. |
AlphaTable D2D1_TABLE_TRANSFER_PROP_ALPHA_TABLE |
FLOAT[] {0.0f, 1.0f} |
A lista de valores usados para definir a função de transferência para o canal Alfa. |
AlphaDisable D2D1_TABLETRANSFER_PROP_ALPHA_DISABLE |
BOOL FALSO |
Se você definir isso como TRUE, o efeito não aplicará a função de transferência ao canal Alfa. Se você definir isso como FALSE, ele aplicará a função AlphaTableTransfer ao canal Alfa. |
ClampOutput D2D1_TABLETRANSFER_PROP_CLAMP_OUTPUT |
BOOL FALSO |
Se o efeito fixa valores de cor entre 0 e 1 antes que o efeito passe os valores para o próximo efeito no grafo. O efeito fixa os valores antes que ele premultiplie o alfa. Se você definir isso como TRUE, o efeito fixará os valores. Se você definir isso como FALSE, o efeito não fixará os valores de cor, mas outros efeitos e a superfície de saída poderão fixar os valores se eles não forem de precisão alta o suficiente. |
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 e Platform Update para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store] |
Servidor mínimo com suporte | Windows 8 e Platform Update para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store] |
Cabeçalho | d2d1effects.h |
Biblioteca | d2d1.lib, dxguid.lib |