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
- vlastnosti efektu
- režimy optimalizace
- režimy ohraničení
- výstupní rastrový obrázek
- požadavky na
- související témata
Příklad obrázku
Před |
---|
![]() |
Po |
![]() |
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 |