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 crear 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 a 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.

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

Este efecto consume y genera imágenes alfa premultiplicadas. 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 la corrección gamma inversa para obtener los valores de color verdaderos de la imagen. Dado que las imágenes se almacenan normalmente en gamma 2.2, puede usar el efecto de transferencia Gamma con un exponente de (1/2.2) y luego usar la salida de ese efecto.

 

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 y actualización de plataforma para Windows 7 [aplicaciones de escritorio | Aplicaciones de la Tienda Windows]
Servidor mínimo compatible Windows 8 y actualización de plataforma 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