Delen via


Morfologie-effect

Gebruik het morfologie-effect om randen in een afbeelding te dunner of dikker te maken. Met dit effect wordt een kernel gemaakt die 2 keer de waarden Voor breedte en hoogte is die u opgeeft. Dit effect centreert de kernel op de pixel die wordt berekend en retourneert de maximumwaarde in de kernel (indien dilating) of de minimumwaarde in de kernel (indien eroding).

De CLSID voor dit effect is CLSID_D2D1Morphology.

Voorbeeldafbeeldingen

In dit voorbeeld ziet u de uitvoer van het effect wanneer u de erode-modus gebruikt.

Voor
de afbeelding vóór het effect.
Na
de afbeelding na de transformatie.
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(); 

Effecteigenschappen

Weergavenaam en indexenumeratie Type en standaardwaarde Beschrijving
Wijze
D2D1_MORPHOLOGY_PROP_MODE
D2D1_MORPHOLOGY_MODE
D2D1_MORPHOLOGY_MODE_ERODE
De morfologiemodus. De beschikbare modi zijn erode (plat) en dilaat (verdikken).
Zie Morphologiemodi voor meer informatie.
Breedte
D2D1_MORPHOLOGY_PROP_WIDTH
UINT
1
Grootte van de kernel in de X-richting. De eenheden bevinden zich in DIPs. Waarden moeten tussen 1 en 100 inclusief zijn.
Hoogte
D2D1_MORPHOLOGY_PROP_HEIGHT
UINT
1
Grootte van de kernel in de Y-richting. De eenheden bevinden zich in DIPs. Waarden moeten tussen 1 en 100 inclusief zijn.

Morfologiemodi

Naam Beschrijving
D2D1_MORPHOLOGY_MODE_ERODE De minimumwaarde van elk RGB-kanaal in de kernel wordt gebruikt.
D2D1_MORPHOLOGY_MODE_DILATE De maximumwaarde van elk RGB-kanaal in de kernel wordt gebruikt.

Uitvoer bitmap

Voor de DILATE-modus neemt de grootte van de uitvoer bitmap toe:

Eis Waarde
Uitvoer bitmapgroei X = INT(FLOAT(Width) * ((User DPI) / 96))
Uitvoer bitmapgroei Y = INT(FLOAT(Height) * ((User DPI) / 96))

Voor de ERODE-modus verkleint de uitvoer bitmapgrootte:

Eis Waarde
Uitvoer bitmapgroei X = INT(FLOAT(-Width) * ((User DPI) / 96))
Uitvoer bitmapgroei Y = INT(FLOAT(-Height) * ((User DPI) / 96))

Eisen

Eis Waarde
Minimaal ondersteunde client Windows 8 en Platform Update voor Windows 7 [desktop-apps | Windows Store-apps]
Minimaal ondersteunde server Windows 8 en Platform Update voor Windows 7 [desktop-apps | Windows Store-apps]
Rubriek d2d1effects.h
Bibliotheek d2d1.lib, dxguid.lib

ID2D1Effect-