Compartir a través de


Luminancia al efecto alfa

Utilice la luminancia para el efecto alfa para establecer el canal alfa en la luminancia de la imagen y establece los canales de color en 0. Puede usar la salida de este efecto para realizar una superposición semitransparente basada en el brillo de la imagen de entrada. O bien, puede usarlo para crear una máscara de imagen.

Nota

Este efecto no tiene propiedades.

 

El CLSID de este efecto es CLSID_D2D1LuminanceToAlpha.

Imagen de ejemplo

En este ejemplo se muestra la salida de la luminancia en efecto alfa compuesta sobre una superficie blanca para mostrar opacidad.

Antes
la imagen antes del efecto.
Después
la imagen después de la transformación.

 

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 efecto establece el canal alfa de la salida en la luminancia de la imagen de entrada mediante esta matriz de colores.

la matriz de colores que usa el efecto para establecer el canal alfa.

Este efecto consume y genera imágenes alfa premultipadas. El efecto no funcionará en imágenes alfa rectas a menos que sean totalmente opacos.

Nota

Dado que las imágenes se almacenan en un formato compensado gamma, antes de calcular la luminancia de una imagen, primero debe realizar una corrección gamma inversa para obtener los valores de color verdaderos de la imagen. Dado que las imágenes normalmente se almacenan en gamma 2.2, puede usar el efecto de transferencia Gamma con un exponente de (1/2.2) y, a continuación, usar la salida de ese efecto.

 

Requisitos

Requisito Valor
Cliente mínimo admitido Windows 8 y Platform Update para Windows 7 [aplicaciones de escritorio | Aplicaciones de la Tienda Windows]
Servidor mínimo admitido Windows 8 y Platform Update para Windows 7 [aplicaciones de escritorio | Aplicaciones de la Tienda Windows]
Encabezado d2d1effects.h
Biblioteca d2d1.lib, dxguid.lib

 

Mapa de bits de salida

La salida tiene el mismo tamaño que la imagen de entrada.

ID2D1Effect