Efecto de desenfoque direccional

El efecto de desenfoque direccional es similar al desenfoque gaussiano, excepto que se puede sesgar el desenfoque en una dirección determinada. Puedes usar este efecto para hacer que una imagen se vea como si estuviera en movimiento o para resaltar una imagen animada.

El CLSID de este efecto es CLSID_D2D1DirectionalBlur.

Imagen de ejemplo

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

directionalBlurEffect->SetInput(0, bitmap);
directionalBlurEffect->SetValue(D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION, 7.0f);

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

Propiedades de efecto

Enumeración de nombre para mostrar e índice Descripción
StandardDeviation
D2D1_DIRECTIONALBLUR_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 en 3. Las unidades de la desviación estándar y el radio de desenfoque son DIP. Un valor de 0 DIP deshabilita este efecto. El tipo es FLOAT.
El valor predeterminado es 3.0f.
Ángulo
D2D1_DIRECTIONALBLUR_PROP_ANGLE
Ángulo del desenfoque relativo al eje X, en la dirección en sentido contrario a las agujas del reloj. Las unidades se especifican en grados.
El kernel de desenfoque se genera primero con el mismo proceso que para el efecto de desenfoque gaussiano . A continuación, los valores del kernel se transforman según el ángulo de desenfoque.
El tipo es FLOAT.
El valor predeterminado es 0,0f.
Optimization
D2D1_DIRECTIONALBLUR_PROP_OPTIMIZATION
Modo de optimización. Consulta Modos de optimización para obtener más información.
El tipo es D2D1_DIRECTIONALBLUR_OPTIMIZATION.
El valor predeterminado es D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED.
BorderMode
D2D1_DIRECTIONALBLUR_PROP_BORDER_MODE
Modo utilizado para calcular el borde de la imagen, suave o dura. Consulta Modos de borde para obtener más información.
El tipo es D2D1_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 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 grandes radios de desenfoque, 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 lugar a 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

El tamaño del mapa de bits de salida aumenta en función de la desviación estándar, el ángulo del efecto 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. Estas ecuaciones se pueden usar para calcular el tamaño del mapa de bits de salida.

Requisito Value
Crecimiento del mapa de bits de salida X StandardDeviation (DIPs) * 6 * ((User PPP) / 96) * cos(Angle))
Crecimiento del mapa de bits de salida Y StandardDeviation (DIPs) * 6 * ((User PPP) / 96) * sin(Angle))

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