Udostępnij za pośrednictwem


Efekt morfologii

Użyj efektu morfologii do cienkich lub zagęszczanych granic krawędzi na obrazie. Ten efekt tworzy jądro, które jest 2 razy krotnie określone wartości Width (Szerokość) i Height (Wysokość). Ten efekt wyśrodkuje jądro na pikselach, które oblicza i zwraca maksymalną wartość w jądrze (jeśli jest rozszerzana) lub minimalna wartość w jądrze (jeśli eroduje).

Identyfikator CLSID dla tego efektu jest CLSID_D2D1Morphology.

Przykładowe obrazy

W tym przykładzie przedstawiono dane wyjściowe efektu podczas korzystania z trybu erode.

Przed
obraz przed efektem.
Po
obraz po przekształceniu.
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(); 

Właściwości efektu

Nazwa wyświetlana i wyliczenie indeksu Typ i wartość domyślna Opis
Tryb
D2D1_MORPHOLOGY_PROP_MODE
D2D1_MORPHOLOGY_MODE
D2D1_MORPHOLOGY_MODE_ERODE
Tryb morfologii. Dostępne tryby są erode (spłaszczone) i rozgrubione (grubsze).
Aby uzyskać więcej informacji, zobacz tryby morfologii .
Szerokość
D2D1_MORPHOLOGY_PROP_WIDTH
UINT
1
Rozmiar jądra w kierunku X. Jednostki znajdują się w adresach IP. Wartości muszą należeć do zakresu od 1 do 100 włącznie.
Wysokość
D2D1_MORPHOLOGY_PROP_HEIGHT
UINT
1
Rozmiar jądra w kierunku Y. Jednostki znajdują się w adresach IP. Wartości muszą należeć do zakresu od 1 do 100 włącznie.

Tryby morfologii

Nazwa Opis
D2D1_MORPHOLOGY_MODE_ERODE Używana jest minimalna wartość z każdego kanału RGB w jądrze.
D2D1_MORPHOLOGY_MODE_DILATE Jest używana maksymalna wartość z każdego kanału RGB w jądrze.

Mapa bitowa wyjściowa

W przypadku trybu DILATE rozmiar mapy bitowej danych wyjściowych rośnie:

Wymaganie Wartość
Wzrost mapy bitowej wyjściowej X = INT(FLOAT(Width) * ((User DPI) / 96))
Wzrost mapy bitowej danych wyjściowych Y = INT(FLOAT(Height) * ((User DPI) / 96))

W przypadku trybu ERODE rozmiar mapy bitowej danych wyjściowych zmniejsza się:

Wymaganie Wartość
Wzrost mapy bitowej wyjściowej X = INT(FLOAT(-Width) * ((DPI użytkownika) / 96))
Wzrost mapy bitowej danych wyjściowych Y = INT(FLOAT(-Height) * ((DPI użytkownika) / 96))

Wymagania

Wymaganie Wartość
Minimalny obsługiwany klient Windows 8 i aktualizacja platformy dla systemu Windows 7 [aplikacje klasyczne | Aplikacje ze Sklepu Windows]
Minimalny obsługiwany serwer Windows 8 i aktualizacja platformy dla systemu Windows 7 [aplikacje klasyczne | Aplikacje ze Sklepu Windows]
Nagłówek d2d1effects.h
Biblioteka d2d1.lib, dxguid.lib

ID2D1Effect