Partager via


Effet de flou gaussien

Utilisez l’effet de flou gaussien pour créer un flou basé sur la fonction gaussienne sur l’ensemble de l’image d’entrée.

Vous pouvez utiliser cet effet pour créer des lueurs et supprimer 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 l’éclairage spéculaire ou l’éclairage diffus , car le canal alpha est également flou et les effets d’éclairage utilisent le canal alpha pour déterminer la géométrie de surface comme carte de hauteur.

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

Le CLSID de cet effet est CLSID_D2D1GaussianBlur.

Exemple d’image

Avant
image avant l’effet.
After
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 d’affichage et énumération d’index Description
StandardDeviation
D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION
Quantité de flou à appliquer à l’image. Vous pouvez calculer le rayon de flou du noyau en multipliant l’écart-type par 3. Les unités de l’écart-type et du rayon de flou sont des DIPs. La valeur 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, soft ou hard. Pour plus d’informations, consultez Modes de 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 à des rayons relativement petits. 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 de grands rayons de flou, où les approximations sont moins susceptibles d’être visibles. Utilise le filtrage triligne.

Modes de bordure

Nom Description
D2D1_BORDER_MODE_SOFT L’effet padpe l’image avec des pixels noirs transparents quand il applique le noyau de flou, ce qui entraîne un bord souple.
D2D1_BORDER_MODE_HARD L’effet attache 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 de flou et du mode bordure. Si le mode de bordure est défini sur D2D1_BORDER_MODE_SOFT la taille de la bitmap de sortie augmente par la taille du noyau de flou, représenté en pixels. Ce tableau fournit une équation que vous pouvez utiliser pour calculer l’image bitmap de sortie.

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

Ainsi, 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 l’angle inférieur droit est à (105, 105).

Spécifications

Condition requise Valeur
Client minimal pris en charge Windows 8 et mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store]
Serveur minimal 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