Compartilhar via


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
a imagem antes do efeito.
After (após)
a imagem após a transformação.
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 .

grafo de intensidade de pixel para a função de transferência de tabela.

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

ID2D1Effect