Dela via


Morfologieffekt

Använd morfologieffekten för att tunna eller förtjocka kantgränser i en bild. Den här effekten skapar en kernel som är 2 gånger högre än de värden för bredd och höjd som du anger. Den här effekten centrerar kerneln på den pixel som den beräknar och returnerar det maximala värdet i kerneln (om den är dilaterande) eller minimivärdet i kerneln (om den urholkas).

CLSID för den här effekten är CLSID_D2D1Morphology.

Exempelbilder

Det här exemplet visar effektens utdata när du använder eroderingsläget.

Före
bilden före effekten.
Efter
bilden efter transformen.
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(); 

Effektegenskaper

Visningsnamn och indexuppräkning Typ- och standardvärde Beskrivning
Läge
D2D1_MORPHOLOGY_PROP_MODE
D2D1_MORPHOLOGY_MODE
D2D1_MORPHOLOGY_MODE_ERODE
Morfologiläget. De tillgängliga lägena urholkas (plattas ut) och vidgas (förtjockas).
Mer information finns i morfologilägen.
Bredd
D2D1_MORPHOLOGY_PROP_WIDTH
UINT
1
Storleken på kerneln i X-riktningen. Enheterna finns i DIP:er. Värdena måste vara mellan 1 och 100 inklusive.
Höjd
D2D1_MORPHOLOGY_PROP_HEIGHT
UINT
1
Storleken på kerneln i Y-riktningen. Enheterna finns i DIP:er. Värdena måste vara mellan 1 och 100 inklusive.

Morfologilägen

Namn Beskrivning
D2D1_MORPHOLOGY_MODE_ERODE Minimivärdet från varje RGB-kanal i kerneln används.
D2D1_MORPHOLOGY_MODE_DILATE Det maximala värdet från varje RGB-kanal i kerneln används.

Utdatabitmapp

För DILATE-läge växer storleken på utdatabitmappen:

Krav Värde
Utdata bitmappstillväxt X = INT(FLOAT(Width) * ((User DPI) / 96))
Utdata bitmappstillväxt Y = INT(FLOAT(Height) * ((User DPI) / 96))

För ERODE-läge krymper storleken på utdatabitmappen:

Krav Värde
Utdata bitmappstillväxt X = INT(FLOAT(-Width) * ((User DPI) / 96))
Utdata bitmappstillväxt Y = INT(FLOAT(-Height) * ((User DPI) / 96))

Krav

Krav Värde
Lägsta klient som stöds Windows 8 och Platform Update för Windows 7 [skrivbordsappar | Windows Store-appar]
Lägsta server som stöds Windows 8 och Platform Update för Windows 7 [skrivbordsappar | Windows Store-appar]
Rubrik d2d1effects.h
Bibliotek d2d1.lib, dxguid.lib

ID2D1Effect