Partager via


Effet flou gaussien

Utilisez l’effet flou gaussien pour créer un flou basé sur la fonction Gaussian sur l’image d’entrée entière.

Vous pouvez utiliser cet effet pour créer des lumières et déposer des ombres et utiliser l’effet composite pour appliquer le résultat à l’image d’origine. Il est utile dans le traitement photo pour les filtres tels que les surbrillances et les ombres. Vous pouvez utiliser la sortie de cet effet pour l’entrée dans les effets d’éclairage, comme le éclairage spéculaire ou effets d’éclairage diffuse, car le canal alpha est flou, également et les effets d’éclairage utilisent le canal alpha pour déterminer la géométrie de la surface en tant que carte de hauteur.

Cet effet est utilisé par l’effet Shadow intégré.

Le CLSID pour cet effet est CLSID_D2D1GaussianBlur.

Exemple d’image

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

Propriétés d’effet

Nom complet et énumération d’index Description
StandardDeviation
D2D1_GAUSSIANBLUR_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 zéro DIPs désactive entièrement cet effet. Le type est FLOAT.
La valeur par défaut est 3.0f.
Optimisation
D2D1_GAUSSIANBLUR_PROP_OPTIMIZATION
Mode d’optimisation. Pour plus d’informations, consultez modes d’optimisation. Le type est D2D1_GAUSSIANBLUR_OPTIMIZATION.
La valeur par défaut est D2D1_GAUSSIANBLUR_OPTIMIZATION_BALANCED.
BorderMode
D2D1_GAUSSIANBLUR_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_GAUSSIANBLUR_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 sortie de cet effet peut être supérieure à la bitmap d’entrée en fonction du rayon flou 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. Ce tableau fournit une équation que vous pouvez utiliser pour calculer la bitmap de sortie.

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

Par conséquent, si la taille de l’image augmente de 10 pixels dans chaque direction, le coin supérieur gauche de l’image se trouve à (-5, -5) tandis que la partie inférieure droite est à (105, 105).

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