Partilhar 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 a partir da interpolação de uma lista de valores fornecida.

O CLSID para este efeito é CLSID_D2D1TableTransfer.

Imagem de exemplo

A imagem aqui mostra a entrada e saída do efeito de transferência de tabela.

Antes
a imagem antes do efeito.
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 é baseada em uma lista de entradas V=(V0,V1,V2,V3, V? ,VN) onde 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, tal 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?)

Este efeito funciona em imagens alfa retas e pré-multiplicadas. O efeito produz bitmaps alfa pré-multiplicados.

Aqui está a aparência do gráfico da função de transferência de tabela se a propriedade table estiver definida como [0.0, 0.25, 1.0].

gráfico 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 unitless e têm um mínimo de 0,0 e um máximo de 1,0.

Nome para exibição e enumeração de índice Tipo e valor padrão Descrição
RedTable
D2D1_TABLETRANSFER_PROP_RED_TABLE
FLUTUAR[]
{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 Red.
Tabela Verde
D2D1_TABLETRANSFER_PROP_GREEN_TABLE
FLUTUAR[]
{0.0f, 1.0f}
A lista de valores usados para definir a função de transferência para o canal verde.
GreenDesativar
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 Green.
Mesa Azul
D2D1_TABLETRANSFER_PROP_BLUE_TABLE
FLUTUAR[]
{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 Blue.
Tabela alfa
D2D1_TABLE_TRANSFER_PROP_ALPHA_TABLE
FLUTUAR[]
{0.0f, 1.0f}
A lista de valores usados para definir a função de transferência para o canal Alpha.
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 para o canal Alpha. Se você definir isso como FALSE, ele aplicará a função AlphaTableTransfer ao canal Alpha.
ClampOutput
D2D1_TABLETRANSFER_PROP_CLAMP_OUTPUT
BOOL
FALSO
Se o efeito fixa os valores de cor entre 0 e 1 antes que o efeito passe os valores para o próximo efeito no gráfico. O efeito fixa os valores antes de pré-multiplicar o alfa.
Se você definir isso como TRUE, o efeito apertará 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 apertar os valores se eles não forem de precisão suficiente.

Requerimentos

Exigência Valor
Cliente mínimo suportado Windows 8 e Atualização da Plataforma para Windows 7 [aplicações de ambiente de trabalho | Aplicações da Loja Windows]
Servidor mínimo suportado Windows 8 e Atualização da Plataforma para Windows 7 [aplicações de ambiente de trabalho | Aplicações da Loja Windows]
Cabeçalho d2d1effects.h
Biblioteca d2d1.lib, dxguid.lib

ID2D1Effect