Effet morphologie
Utilisez l’effet morphologie pour mincer ou épaissir les limites de bord dans une image. Cet effet crée un noyau qui est 2 fois les valeurs Width et Height que vous spécifiez. Cet effet centre le noyau sur le pixel qu’il calcule et retourne la valeur maximale dans le noyau (si dilatation) ou la valeur minimale dans le noyau (en cas d’érosion).
Le CLSID pour cet effet est CLSID_D2D1Morphology.
Exemples d’images
Cet exemple montre la sortie de l’effet lors de l’utilisation du mode érodé.
Avant |
---|
![]() |
Après |
![]() |
ComPtr<ID2D1Effect> morphologyEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Morphology, &morphologyEffect);
morphologyEffect->SetInput(0, bitmap);
morphologyEffect->SetValue(D2D1_MORPHOLOGY_PROP_MODE, D2D1_MORPHOLOGY_MODE_ERODE);
morphologyEffect->SetValue(D2D1_MORPHOLOGY_PROP_WIDTH, 14);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(morphologyEffect.Get());
m_d2dContext->EndDraw();
Propriétés d’effet
Nom complet et énumération d’index | Type et valeur par défaut | Description |
---|---|---|
Mode D2D1_MORPHOLOGY_PROP_MODE |
D2D1_MORPHOLOGY_MODE D2D1_MORPHOLOGY_MODE_ERODE |
Mode morphologie. Les modes disponibles sont érodés (aplatis) et dilate (épaissis). Pour plus d’informations, consultez modes Morphologie. |
Largeur D2D1_MORPHOLOGY_PROP_WIDTH |
UINT 1 |
Taille du noyau dans la direction X. Les unités se trouvent dans des ADRESSES IP. Les valeurs doivent être comprises entre 1 et 100 inclus. |
Hauteur D2D1_MORPHOLOGY_PROP_HEIGHT |
UINT 1 |
Taille du noyau dans la direction Y. Les unités se trouvent dans des ADRESSES IP. Les valeurs doivent être comprises entre 1 et 100 inclus. |
Modes de morphologie
Nom | Description |
---|---|
D2D1_MORPHOLOGY_MODE_ERODE | La valeur minimale de chaque canal RVB du noyau est utilisée. |
D2D1_MORPHOLOGY_MODE_DILATE | La valeur maximale de chaque canal RVB dans le noyau est utilisée. |
Bitmap de sortie
Pour le mode DILATE, la taille de la bitmap de sortie augmente :
Exigence | Valeur |
---|---|
Sortie Bitmap Growth X = | INT(FLOAT(Width) * ((User DPI) / 96)) |
Sortie Bitmap Growth Y = | INT(FLOAT(Height) * ((User DPI) / 96)) |
Pour le mode ERODE, la taille de la bitmap de sortie diminue :
Exigence | Valeur |
---|---|
Sortie Bitmap Growth X = | INT(FLOAT(-Width) * ((User DPI) / 96)) |
Sortie Bitmap Growth Y = | INT(FLOAT(-Height) * ((User DPI) / 96)) |
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 |