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.
Imagem de exemplo
A imagem aqui mostra a entrada e a saída do efeito de transferência de tabela.
Antes |
---|
After (após) |
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 baseia-se 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 retas 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 table estiver definida [0.0, 0.25, 1.0]
como .
Propriedades do efeito
Observação
Os valores de todos os canais das propriedades de transferência de tabela são unitários 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 FALSE |
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, ela 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 FALSE |
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, ela 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 FALSE |
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, ela 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 FALSE |
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, ela aplicará a função AlphaTableTransfer ao canal Alfa. |
ClampOutput D2D1_TABLETRANSFER_PROP_CLAMP_OUTPUT |
BOOL FALSE |
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 de pré-multiplicar 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 Atualização de Plataforma para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store] |
Servidor mínimo com suporte | Windows 8 e Atualização de Plataforma para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store] |
Cabeçalho | d2d1effects.h |
Biblioteca | d2d1.lib, dxguid.lib |