Efecto de brillo

Use el efecto de brillo para controlar el brillo de la imagen.

El CLSID de este efecto es CLSID_D2D1Brightness.

Imagen de ejemplo

Antes
la imagen antes del efecto.
Después
la imagen después de la transformación.
ComPtr<ID2D1Effect> brightnessEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Brightness, &brightnessEffect);

brightnessEffect->SetValue(D2D1_BRIGHTNESS_PROP_BLACK_POINT, D2D1::Vector2F(0.0f, 0.2f));

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(brightnessEffect.Get());
m_d2dContext->EndDraw();

Propiedades de efecto

Nombre para mostrar de la propiedad Tipo y valor predeterminado Descripción
WhitePoint
D2D1_BRIGHTNESS_PROP_WHITE_POINT
D2D1_VECTOR_2F
{1.0f, 1.0f}
Parte superior de la curva de transferencia de brillo. El punto blanco ajusta la apariencia de las partes más brillantes de la imagen. Esta propiedad es para el valor x y el valor y, en ese orden. Cada uno de los valores de esta propiedad está comprendido entre 0 y 1, ambos incluidos.
BlackPoint
D2D1_BRIGHTNESS_PROP_BLACK_POINT
D2D1_VECTOR_2F
{0.0f, 0.0f}
Parte inferior de la curva de transferencia de brillo. El punto negro ajusta la apariencia de las partes más oscuras de la imagen. Esta propiedad es para el valor x y el valor y, en ese orden. Cada uno de los valores de esta propiedad está comprendido entre 0 y 1, ambos incluidos.

Este efecto usa los puntos blanco y negro especificados para generar una función de transferencia utilizada para ajustar el mapa de bits. La siguiente ecuación describe la función de transferencia. La densidad de entrada se define entre 0 y 1.

algoritmo de brillo

El algoritmo de efecto implementa una ecuación que crea la función de transferencia. Usamos esta función para ajustar los píxeles de la imagen. Los valores x e y del punto negro y el punto blanco son las coordenadas en dos dimensiones conectadas para formar la transformación. Cada parte de la ecuación de salida final:

  1. Convierte los datos de imagen del espacio lineal en un espacio no lineal mediante esta ecuación:helper función 1

  2. Ajusta la imagen según estos valores:

    • input es los valores de intensidad de píxeles de imagen de entrada de 0 a 1.

    • *Blanco Pt. (x, y)*la ubicación de la curva de transformación para las densidades de píxeles más brillantes.

    • Pt negro. (x, y) es la ubicación de la curva de transformación para las intensidades de píxeles dimmer.

  3. Convierte los datos de imagen de nuevo en espacio lineal mediante esta ecuación: función auxiliar 2

Aquí se muestran la ecuación de salida final y las partes del componente.

los cálculos completos para el ajuste de brillo

Mapa de bits de salida

El tamaño del mapa de bits de salida es el mismo que el tamaño del mapa de bits de entrada.

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

ID2D1Effect