Partager via


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
l’image avant l’effet.
Après
l’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 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

ID2D1Effect