Effet d’ombre
Utilisez l’effet d’ombre pour générer une ombre à partir du canal alpha d’une image. L’ombre est plus opaque pour les valeurs alpha supérieures et plus transparente pour les valeurs alpha inférieures. Vous pouvez définir la quantité de flou et la couleur de l’ombre.
- Exemple d’image
- Propriétés d’effet
- Modes d’optimisation
- Bitmap de sortie
- Configuration requise
- Rubriques connexes
Le CLSID de cet effet est CLSID _ D2D1Shadow.
Exemple d’image
L’exemple ci-dessous montre la sortie de l’effet d’ombre qui est traduite par l’image source composite au niveau de l’emplacement d’origine. L’effet d’ombre génère uniquement l’ombre.
| Avant |
|---|
![]() |
| After |
![]() |
ComPtr<ID2D1Effect> shadowEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Shadow, &shadowEffect);
shadowEffect->SetInput(0, bitmap);
// Shadow is composited on top of a white surface to show opacity.
ComPtr<ID2D1Effect> floodEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Flood, &floodEffect);
floodEffect->SetValue(D2D1_FLOOD_PROP_COLOR, D2D1::Vector4F(1.0f, 1.0f, 1.0f, 1.0f));
ComPtr<ID2D1Effect> affineTransformEffect;
m_d2dContext->CreateEffect(CLSID_D2D12DAffineTransform, &affineTransformEffect);
affineTransformEffect->SetInputEffect(0, shadowEffect.Get());
D2D1_MATRIX_3X2_F matrix = D2D1::Matrix3x2F::Translation(20, 20));
affineTransformEffect->SetValue(D2D1_2DAFFINETRANSFORM_PROP_TRANSFORM_MATRIX, matrix);
ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);
compositeEffect->SetInputEffect(0, floodEffect.Get());
compositeEffect->SetInputEffect(1, affineTransformEffect.Get());
compositeEffect->SetInput(2, bitmap);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(compositeEffect.Get());
m_d2dContext->EndDraw();
Propriétés d’effet
| Nom complet et énumération d’index | Description |
|---|---|
| BlurStandardDeviation _ _ _ Écart type de flou _ _ de l’ombre d2d1 |
Quantité de flou à appliquer au canal alpha de 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 DIP. Cette propriété est la même que la propriété d’écart type flou gaussien . Le type est FLOAT. La valeur par défaut est 3.0 f. |
| Couleur Couleur de l' _ ombre d2d1 _ _ |
Couleur de l'ombre portée. Cette propriété est un _ vecteur d2d1 _ 4F défini en tant que : (R, G, B, a). Vous devez spécifier cette couleur dans l’alpha simple. Le type est D2D1 _ Vector _ 4F. La valeur par défaut est {0.0 f, 0.0 f, 0.0 f, 1.0 f}. |
| Optimization Optimisation de la D2D1 des _ clichés instantanés _ _ |
Niveau d’optimisation des performances. Le type est D2D1 _ Shadow _ Optimization. La valeur par défaut est D2D1 l’optimisation de l' _ ombre Shadow _ _ . |
Modes d’optimisation
| Nom | Description |
|---|---|
| Vitesse d’optimisation de D2D1 _ DIRECTIONALBLUR _ _ | 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 trilinéaire. |
| Qualité de l’optimisation de D2D1 _ DIRECTIONALBLUR _ _ | Utilise uniquement des optimisations internes avec de grands rayons de flou, où les approximations sont moins susceptibles d’être visibles. Utilise le filtrage trilinéaire. |
Bitmap de sortie
La taille de la bitmap de sortie est la taille de la sortie de flou. L’importance de la croissance de la bitmap de sortie par rapport à la bitmap d’origine peut être calculée à l’aide de l’équation suivante :
Croissance des bitmaps en sortie (X et Y) = BlurStandardDeviation (DIP (Device-Independent Pixel)) * 6 * (dpi utilisateur)/96
La sortie augmente uniformément dans tout le sens, par exemple si la taille augmente de 10 pixels dans chaque direction, l’angle supérieur gauche de la bitmap se trouve à (-5,-5) et le coin inférieur droit est (105, 105) comme indiqué dans le diagramme ici.

Spécifications
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge | mise à jour Windows 8 et de plateforme pour les applications de bureau Windows 7 Windows les applications du windows [ | Store] |
| Serveur minimal pris en charge | mise à jour Windows 8 et de plateforme pour les applications de bureau Windows 7 Windows les applications du windows [ | Store] |
| En-tête | d2d1effects. h |
| Bibliothèque | d2d1. lib, dxguid. lib |

