Compartir a través de


Efecto de desenfoque gaussiano

Use el efecto de desenfoque gaussiano para crear un desenfoque basado en la función gaussiana en toda la imagen de entrada.

Puede usar este efecto para crear brillos y colocar sombras y usar el efecto compuesto para aplicar el resultado a la imagen original. Es útil en el procesamiento de fotos para filtros como resaltados y sombras. Puede usar la salida de este efecto para la entrada en efectos de iluminación, como los efectos de iluminación especular o iluminación difusa , ya que el canal alfa es borroso, también y los efectos de iluminación usan el canal alfa para determinar la geometría de la superficie como un mapa de altura.

Este efecto lo usa el efecto Shadow integrado.

El CLSID de este efecto es CLSID_D2D1GaussianBlur.

Imagen de ejemplo

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

gaussianBlurEffect->SetInput(0, bitmap);
gaussianBlurEffect->SetValue(D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION, 3.0f);

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

Propiedades de efecto

Enumeración de índice y nombre para mostrar Descripción
StandardDeviation
D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION
Cantidad de desenfoque que se va a aplicar a la imagen. Puede calcular el radio de desenfoque del kernel multiplicando la desviación estándar por 3. Las unidades de la desviación estándar y el radio de desenfoque son DIP. Un valor de cero DIP deshabilita este efecto por completo. El tipo es FLOAT.
El valor predeterminado es 3.0f.
Optimization
D2D1_GAUSSIANBLUR_PROP_OPTIMIZATION
Modo de optimización. Consulta Modos de optimización para obtener más información. El tipo es D2D1_GAUSSIANBLUR_OPTIMIZATION.
El valor predeterminado es D2D1_GAUSSIANBLUR_OPTIMIZATION_BALANCED.
BorderMode
D2D1_GAUSSIANBLUR_PROP_BORDER_MODE
Modo utilizado para calcular el borde de la imagen, suave o duro. Consulta Modos de borde para obtener más información.
El tipo es D2D1_GAUSSIANBLUR_BORDER_MODE.
El valor predeterminado es D2D1_BORDER_MODE_SOFT.

Modos de optimización

Nombre Descripción
D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED Aplica optimizaciones internas, como el escalado previo a los radios relativamente pequeños. Usa el filtrado lineal.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED Usa los mismos umbrales de optimización que el modo Velocidad, pero usa el filtrado trilineal.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY Solo usa optimizaciones internas con radios de desenfoque grandes, donde es menos probable que las aproximaciones sean visibles. Usa el filtrado trilineal.

Modos de borde

Nombre Descripción
D2D1_BORDER_MODE_SOFT El efecto rellena la imagen con píxeles negros transparentes, ya que aplica el kernel de desenfoque, lo que da como resultado un borde suave.
D2D1_BORDER_MODE_HARD El efecto sujeta la salida al tamaño de la imagen de entrada. Cuando el efecto aplica el kernel de desenfoque, extiende la imagen de entrada con una transformación de borde de tipo reflejado para muestras fuera de los límites de entrada.

Mapa de bits de salida

La salida de este efecto puede ser mayor que el mapa de bits de entrada en función del radio de desenfoque y el modo de borde. Si el modo de borde se establece en D2D1_BORDER_MODE_SOFT el tamaño del mapa de bits de salida aumenta por el tamaño del kernel de desenfoque, representado en píxeles. Esta tabla proporciona una ecuación que puede usar para calcular el mapa de bits de salida.

Output bitmap growth (X and Y) = StandardDeviation (DIPs)*6*((User DPI)/96)

Por lo tanto, si el tamaño de la imagen aumenta en 10 píxeles en cada dirección, la esquina superior izquierda de la imagen se ubicará en (-5, -5) mientras que la parte inferior derecha estará en (105, 105).

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