Sdílet prostřednictvím


Gaussian rozostření efektu

Pomocí efektu gaussovské rozostření můžete vytvořit rozostření na základě gaussovské funkce na celém vstupním obrázku.

Pomocí tohoto efektu můžete vytvořit záře a stíny a použít složený efekt k použití výsledku na původní obrázek. Je užitečné při zpracování fotek pro filtry, jako jsou zvýraznění a stíny. Výstup tohoto efektu můžete použít pro vstup do světelných efektů, jako je Specular Lighting nebo Difuzní osvětlení efekty, protože alfa kanál je také rozmazaný a efekty osvětlení používají alfa kanál k určení geometrie povrchu jako mapy výšky.

Tento efekt používá integrovaný efekt stínu.

CLSID pro tento efekt je CLSID_D2D1GaussianBlur.

Příklad obrázku

Před
obrázek před efektem.
Po
obrázek po transformaci.
ComPtr<ID2D1Effect> gaussianBlurEffect;
m_d2dContext->CreateEffect(CLSID_D2D1GaussianBlur, &gaussianBlurEffect);

gaussianBlurEffect->SetInput(0, bitmap);
gaussianBlurEffect->SetValue(D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION, 3.0f);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(gaussianBlurEffect.Get());
m_d2dContext->EndDraw();

Vlastnosti efektu

Zobrazovaný název a výčet indexu Popis
StandardDeviation
D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION
Velikost rozostření, která se má na obrázek použít. Poloměr rozostření jádra můžete vypočítat vynásobením směrodatné odchylky číslem 3. Jednotky směrodatné odchylky a rozostření poloměru jsou DIP. Hodnota nulových ps zakáže tento účinek zcela. Typ je FLOAT.
Výchozí hodnota je 3,0f.
Optimalizace
D2D1_GAUSSIANBLUR_PROP_OPTIMIZATION
Režim optimalizace. Další informace najdete v režimech optimalizace. Typ je D2D1_GAUSSIANBLUR_OPTIMIZATION.
Výchozí hodnota je D2D1_GAUSSIANBLUR_OPTIMIZATION_BALANCED.
BorderMode
D2D1_GAUSSIANBLUR_PROP_BORDER_MODE
Režim použitý k výpočtu ohraničení obrázku, měkkého nebo pevného. Další informace najdete v režimech ohraničení.
Typ je D2D1_GAUSSIANBLUR_BORDER_MODE.
Výchozí hodnota je D2D1_BORDER_MODE_SOFT.

Režimy optimalizace

Jméno Popis
D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED Používá interní optimalizace, jako je například předběžné škálování v relativně malém radii. Používá lineární filtrování.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED Používá stejné prahové hodnoty optimalizace jako režim rychlosti, ale používá trilineární filtrování.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY Používá pouze interní optimalizace s velkým rozostřením radii, kde jsou aproximace méně pravděpodobné, že budou viditelné. Používá trilineární filtrování.

Režimy ohraničení

Jméno Popis
D2D1_BORDER_MODE_SOFT Efekt vycpává obrázek průhlednými černými pixely, protože používá rozostření jádra, což vede k měkkému okraji.
D2D1_BORDER_MODE_HARD Efekt uchytá výstup na velikost vstupního obrázku. Když efekt použije rozostření jádra, rozšíří vstupní obrázek o transformaci ohraničení zrcadlového typu pro vzorky mimo vstupní hranice.

Výstupní rastrový obrázek

Výstup tohoto efektu může být větší než vstupní rastrový obrázek založený na rozostření poloměru a režimu ohraničení. Pokud je režim ohraničení nastavený na D2D1_BORDER_MODE_SOFT velikost výstupního rastrového obrázku se zvětšuje o velikost rozostření jádra, znázorněné v pixelech. Tato tabulka obsahuje rovnici, kterou můžete použít k výpočtu výstupního rastrového obrázku.

Output bitmap growth (X and Y) = StandardDeviation (DIPs)*6*((User DPI)/96)

Pokud se tedy velikost obrázku zvýší o 10 pixelů v každém směru, bude levý horní roh obrázku umístěn v umístění (-5, -5), zatímco vpravo dole bude (105, 105).

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