Luminância ao efeito alfa
Use o efeito luminância para alfa para definir o canal alfa para a luminância da imagem e define os canais de cor como 0. Você pode usar a saída desse efeito para fazer uma sobreposição semitransparente com base no brilho da imagem de entrada. Ou você pode usá-lo para fazer uma máscara de imagem.
Observação
Este efeito não tem propriedades.
O CLSID para este efeito é CLSID_D2D1LuminanceToAlpha.
Imagem de exemplo
Este exemplo mostra a saída do efeito de luminância para alfa composto sobre uma superfície branca para mostrar opacidade.
Antes |
---|
![]() |
Após |
![]() |
ComPtr<ID2D1Effect> luminanceToAlphaEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LuminanceToAlpha, &luminanceToAlphaEffect);
luminanceToAlphaEffect->SetInput(0, bitmap);
// LuminanceToAlpha result is composited on top of a white surface to show opacity.
ComPtr<ID2D1Effect> floodEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Flood, &floodEffect);
floodEffect->SetValue(D2D1_FLOOD_PROP_COLOR, D2D1::Vector4F(1.0f, 1.0f, 1.0f, 1.0f));
ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);
compositeEffect->SetInputEffect(0, floodEffect.Get());
compositeEffect->SetInputEffect(1, luminanceToAlphaEffect.Get());
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(compositeEffect.Get());
m_d2dContext->EndDraw();
Este efeito define o canal alfa da saída para a luminância da imagem de entrada usando esta matriz de cores.
Este efeito consome e produz imagens alfa pré-multiplicadas. O efeito não funcionará em imagens alfa retas, a menos que elas sejam totalmente opacas.
Observação
Como as imagens são armazenadas em um formato compensado por gama, antes de calcular a luminância de uma imagem, você deve primeiro executar a correção de gama inversa para obter os valores de cor verdadeiros para a imagem. Como as imagens são normalmente armazenadas em 2,2 gama, você pode usar o efeito de transferência Gamma com um expoente de (1/2.2) e, em seguida, usar a saída desse efeito.
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 |
Bitmap de saída
A saída é do mesmo tamanho que a imagem de entrada.
Tópicos relacionados