Luminância para efeito alfa
Use a luminância para efeito 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á-la para criar uma máscara de imagem.
Observação
Esse efeito não tem propriedades.
O CLSID para esse efeito é CLSID_D2D1LuminanceToAlpha.
Imagem de exemplo
Este exemplo mostra a saída da luminância para efeito alfa composto sobre uma superfície branca para mostrar opacidade.
Antes |
---|
After (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();
Esse efeito define o canal alfa da saída como a luminância da imagem de entrada usando essa matriz de cores.
Esse efeito consome e gera imagens alfa pré-multiplicadas. O efeito não funcionará em imagens alfa retas, a menos que 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, primeiro você deve executar a correção gama inversa para obter os valores de cor verdadeiros para a imagem. Como as imagens normalmente são armazenadas em gama 2.2, você pode usar o efeito de transferência gama com um expoente de (1/2.2) e, em seguida, usar a saída desse efeito.
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 |
Bitmap de saída
A saída tem o mesmo tamanho que a imagem de entrada.
Tópicos relacionados