Efeito de transferência linear
Use o efeito de transferência linear para mapear as intensidades de cor de uma imagem usando uma função linear criada a partir de uma lista de valores fornecidos para cada canal.
O CLSID para este efeito é CLSID_D2D1LinearTransfer.
Imagem de exemplo
Antes |
---|
![]() |
Após |
![]() |
ComPtr<ID2D1Effect> linearTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LinearTransfer, &linearTransferEffect);
linearTransferEffect->SetInput(0, bitmap);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_SLOPE, 2.5f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE, 5.0f);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(linearTransferEffect.Get());
m_d2dContext->EndDraw();
A função de transferência linear é criada com base na inclinação e y-intercept para cada canal que você especificar. A intensidade do pixel de saída C é calculada com a equação: C' = mC + B, onde m é a inclinação da função linear e B é o interceto Y da função linear.
Este efeito funciona em imagens alfa retas e pré-multiplicadas. O efeito produz bitmaps alfa pré-multiplicados.
Propriedades do efeito
Observação
Para todos os canais das propriedades de transferência linear:
- A interceção Y não é limitada e não tem unidade.
- A inclinação não é limitada e é sem unidade.
Nome para exibição e enumeração de índice | Tipo e valor padrão | Descrição |
---|---|---|
RedYIntercept D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT |
FLUTUAR 0,0 f |
A interceção Y da função linear para o canal vermelho. |
Inclinação Vermelha D2D1_LINEARTRANSFER_PROP_RED_SLOPE |
FLUTUAR 1.0f |
A inclinação da função linear para o canal vermelho. |
RedDisable D2D1_LINEARTRANSFER_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 o efeito aplicará a função RedLinearTransfer ao canal Red. |
GreenYIntercept D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT |
FLUTUAR 0,0 f |
A interceção em Y da função linear para o canal verde. |
Encosta Verde D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE |
FLUTUAR 1.0f |
A inclinação da função linear para o canal Verde. |
GreenDesativar D2D1_LINEARTRANSFER_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 GreenLinearTransfer ao canal Green. |
BlueYIntercept D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT |
FLUTUAR 0,0 f |
A interceção Y da função linear para o canal azul. |
Inclinação Azul D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE |
FLUTUAR 1.0f |
A inclinação da função linear para o canal azul. |
BlueDisable D2D1_LINEARTRANSFER_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 BlueLinearTransfer ao canal azul. |
AlphaYIntercept D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT |
FLUTUAR 0,0 f |
O interceto Y da função linear para o canal Alpha. |
Inclinação Alfa D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE |
FLUTUAR 0,0 f |
A inclinação da função linear para o canal Alfa. |
AlphaDisable D2D1_LINEARTRANSFER_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 AlphaLinearTransfer para o canal Alpha. |
ClampOutput D2D1_LINEARTRANSFER_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 |