Partager via


Effet de flou directionnel

L’effet de flou directionnel est similaire à flou gaussian, sauf que vous pouvez fausser le flou dans une direction particulière. Vous pouvez utiliser cet effet pour faire ressembler une image comme si elle est en mouvement ou pour mettre en évidence une image animée.

Le CLSID pour cet effet est CLSID_D2D1DirectionalBlur.

Exemple d’image

Avant
l’image avant l’effet.
Après
l’image après la transformation.
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();

Propriétés d’effet

Nom complet et énumération d’index Description
StandardDeviation
D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION
Quantité de flou à appliquer à l’image. Vous pouvez calculer le rayon flou du noyau en multipliant l’écart type par 3. Les unités de l’écart type et du rayon de flou sont des ADRESSES IP. Une valeur de 0 ADRESSES IP désactive cet effet. Le type est FLOAT.
La valeur par défaut est 3.0f.
Angle
D2D1_DIRECTIONALBLUR_PROP_ANGLE
Angle du flou par rapport à l’axe x, dans le sens inverse. Les unités sont spécifiées en degrés.
Le noyau flou est d’abord généré à l’aide du même processus que pour le flou Gaussian effet. Les valeurs du noyau sont ensuite transformées en fonction de l’angle flou.
Le type est FLOAT.
La valeur par défaut est 0.0f.
Optimisation
D2D1_DIRECTIONALBLUR_PROP_OPTIMIZATION
Mode d’optimisation. Pour plus d’informations, consultez modes d’optimisation.
Le type est D2D1_DIRECTIONALBLUR_OPTIMIZATION.
La valeur par défaut est D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED.
BorderMode
D2D1_DIRECTIONALBLUR_PROP_BORDER_MODE
Mode utilisé pour calculer la bordure de l’image, douce ou dure. Pour plus d’informations, consultez modes bordure.
Le type est D2D1_BORDER_MODE.
La valeur par défaut est D2D1_BORDER_MODE_SOFT.

Modes d’optimisation

Nom Description
D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED Applique des optimisations internes telles que la pré-mise à l’échelle à un rayon relativement petit. Utilise le filtrage linéaire.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED Utilise les mêmes seuils d’optimisation que le mode Vitesse, mais utilise le filtrage triligne.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY Utilise uniquement des optimisations internes avec des rayons flous volumineux, où les approximations sont moins susceptibles d’être visibles. Utilise le filtrage triligne.

Modes de bordure

Nom Description
D2D1_BORDER_MODE_SOFT L’effet place l’image en pixels noirs transparents, car elle applique le noyau flou, ce qui entraîne un bord doux.
D2D1_BORDER_MODE_HARD L’effet bloque la sortie à la taille de l’image d’entrée. Lorsque l’effet applique le noyau flou, il étend l’image d’entrée avec une transformation de bordure de type miroir pour les exemples en dehors des limites d’entrée.

Bitmap de sortie

La taille de la bitmap de sortie augmente en fonction de l’écart type, de l’angle de l’effet et du mode bordure. Si le mode bordure est défini sur D2D1_BORDER_MODE_SOFT la taille de la bitmap de sortie augmente par la taille du noyau flou, représentée en pixels. Ces équations peuvent être utilisées pour calculer la taille de la bitmap de sortie.

Exigence Valeur
Sortie Bitmap Growth X StandardDeviation (DIPs) * 6 * ((User DPI) / 96) * cos(Angle))
Sortie bitmap croissance Y StandardDeviation (DIPs) * 6 * ((User DPI) / 96) * sin(Angle))

Exigences

Exigence Valeur
Client minimum pris en charge Windows 8 et Mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store]
Serveur minimum pris en charge Windows 8 et Mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store]
En-tête d2d1effects.h
Bibliothèque d2d1.lib, dxguid.lib

ID2D1Effect