Sdílet prostřednictvím


Efekt morfologie

Efekt morfologie slouží k tenkému nebo zahuštěnému ohraničení okrajů na obrázku. Tento efekt vytvoří jádro, které je 2 krát hodnoty Width a Height, které zadáte. Tento efekt zacentruje jádro na pixel, který počítá, a vrátí maximální hodnotu v jádru (pokud dilating) nebo minimální hodnotu v jádru (pokud jerodující).

CLSID pro tento efekt je CLSID_D2D1Morphology.

Ukázkové obrázky

Tento příklad ukazuje výstup efektu při použití režimu erode.

Před
obrázek před efektem.
Po
obrázek po transformaci.
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(); 

Vlastnosti efektu

Zobrazovaný název a výčet indexu Typ a výchozí hodnota Popis
Režim
D2D1_MORPHOLOGY_PROP_MODE
D2D1_MORPHOLOGY_MODE
D2D1_MORPHOLOGY_MODE_ERODE
Režim morfologie. Dostupné režimy jsou erode (zploštělé) a dilate (zahuštěné).
Další informace najdete v režimech morfologie.
Šířka
D2D1_MORPHOLOGY_PROP_WIDTH
UINT
1
Velikost jádra ve směru X. Jednotky jsou v jednotkách DIP. Hodnoty musí být v rozsahu 1 až 100 včetně.
Výška
D2D1_MORPHOLOGY_PROP_HEIGHT
UINT
1
Velikost jádra ve směru Y. Jednotky jsou v jednotkách DIP. Hodnoty musí být v rozsahu 1 až 100 včetně.

Režimy morfologie

Jméno Popis
D2D1_MORPHOLOGY_MODE_ERODE Použije se minimální hodnota z každého kanálu RGB v jádru.
D2D1_MORPHOLOGY_MODE_DILATE Použije se maximální hodnota z každého kanálu RGB v jádru.

Výstupní rastrový obrázek

U režimu DILATE roste velikost výstupního rastrového obrázku:

Požadavek Hodnota
Výstupní rastrový obrázek X = INT(FLOAT(šířka) * ((DPI uživatele) / 96))
Výstupní rastrový obrázek Růst Y = INT(FLOAT(výška) * ((DPI uživatele) / 96))

V režimu ERODE se velikost výstupního rastrového obrázku zmenší:

Požadavek Hodnota
Výstupní rastrový obrázek X = INT(FLOAT(-Width) * ((DPI uživatele) / 96))
Výstupní rastrový obrázek Růst Y = INT(FLOAT(-Height) * ((DPI uživatele) / 96))

Požadavky

Požadavek Hodnota
Minimální podporovaný klient Windows 8 a Aktualizace platformy pro Windows 7 [desktopové aplikace | Aplikace pro Windows Store]
Minimální podporovaný server Windows 8 a Aktualizace platformy pro Windows 7 [desktopové aplikace | Aplikace pro Windows Store]
Záhlaví d2d1effects.h
Knihovna d2d1.lib, dxguid.lib

ID2D1Effect