Partager via


Effet de morphologie

L’effet de morphologie permet de diminuer ou d’épaissir les délimitations d’une image. Cet effet crée un noyau qui correspond au double des valeurs de largeur et de hauteur que vous spécifiez. Cet effet centre le noyau sur le pixel qu’il calcule et renvoie la valeur maximale dans le noyau (dans le cas de la dilatation) ou la valeur minimale dans le noyau (dans le cas de l’érosion).

Le CLSID pour cet effet est CLSID_D2D1Morphology.

Exemples d’images

Cet exemple montre le résultat de l’effet lors de l’utilisation du mode érosion.

Avant
image avant l’effet.
Après
image après la transformation.
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 de l’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
Le mode de morphologie. Les modes disponibles sont érosion (aplati) et dilatation (épaissi).
Pour plus d’informations, consultez Modes de morphologie.
Width
D2D1_MORPHOLOGY_PROP_WIDTH
UINT
1
Taille du noyau dans la direction X. Les unités sont dans des DIP. Les valeurs doivent être comprises entre 1 et 100.
Height
D2D1_MORPHOLOGY_PROP_HEIGHT
UINT
1
Taille du noyau dans la direction Y. Les unités sont dans des DIP. Les valeurs doivent être comprises entre 1 et 100.

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 bitmap de sortie augmente :

Exigence Valeur
Croissance de bitmap de sortie X = INT(FLOAT(Largeur) x ((ppp utilisateur) / 96))
Croissance de bitmap de sortie Y = INT(FLOAT(Hauteur) x ((ppp utilisateur) / 96))

Pour le mode ERODE, la taille de bitmap de sortie diminue :

Exigence Valeur
Croissance de bitmap de sortie X = INT(FLOAT(-Largeur) x ((ppp utilisateur) / 96))
Croissance de bitmap de sortie Y = INT(FLOAT(-Hauteur) x ((ppp utilisateur) / 96))

Spécifications

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

ID2D1Effect