Compartir a través de


Efecto de desenfoque direccional

El efecto de desenfoque direccional es similar a desenfoque gaussiano, excepto que puede sesgar el desenfoque en una dirección determinada. Puede usar este efecto para hacer que una imagen parezca 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 índice y nombre para mostrar 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 por primera vez 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.
Optimización
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 que se usa 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 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 fija 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 según 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 Valor
Crecimiento de 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 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

ID2D1Effect