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 |
---|
![]() |
Na |
![]() |
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 |