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 que você fornece para cada canal.
O CLSID para esse efeito é CLSID_D2D1LinearTransfer.
Imagem de exemplo
Antes |
---|
After (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 interceptação y para cada canal que você especificar. A intensidade do pixel de saída C é calculada com a equação: C' = mC + B, em que m é a inclinação da função linear e B é a interceptação Y da função linear.
Esse efeito funciona em imagens alfa retas e pré-multiplicadas. O efeito gera bitmaps alfa pré-multiplicados.
Propriedades do efeito
Observação
Para todos os canais das propriedades de transferência linear:
- A interceptação Y não é limitada e é sem unidade.
- A inclinação não é limitada e é sem unidade.
Nome de exibição e enumeração de índice | Tipo e valor padrão | Descrição |
---|---|---|
RedYIntercept D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT |
FLOAT 0.0f |
A interceptação Y da função linear para o canal Vermelho. |
RedSlope D2D1_LINEARTRANSFER_PROP_RED_SLOPE |
FLOAT 1.0f |
A inclinação da função linear para o canal Vermelho. |
RedDisable D2D1_LINEARTRANSFER_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, o efeito aplicará a função RedLinearTransfer ao canal Vermelho. |
GreenYIntercept D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT |
FLOAT 0.0f |
A interceptação Y da função linear para o canal Verde. |
GreenSlope D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE |
FLOAT 1.0f |
A inclinação da função linear para o canal Verde. |
GreenDisable D2D1_LINEARTRANSFER_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 GreenLinearTransfer ao canal Verde. |
BlueYIntercept D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT |
FLOAT 0.0f |
A interceptação Y da função linear para o canal Azul. |
BlueSlope D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE |
FLOAT 1.0f |
A inclinação da função linear para o canal Azul. |
BlueDisable D2D1_LINEARTRANSFER_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 BlueLinearTransfer ao canal Azul. |
AlphaYIntercept D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT |
FLOAT 0.0f |
A interceptação Y da função linear para o canal Alfa. |
AlphaSlope D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE |
FLOAT 0.0f |
A inclinação da função linear para o canal Alfa. |
AlphaDisable D2D1_LINEARTRANSFER_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 AlphaLinearTransfer ao canal Alfa. |
ClampOutput D2D1_LINEARTRANSFER_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 |