Směrový efekt rozostření
Směrový efekt rozostření je podobný Gaussian rozostření, s výjimkou toho, že můžete rozostřit v určitém směru. Pomocí tohoto efektu můžete vytvořit vzhled obrázku, jako by byl pohybový, nebo zdůraznit animovaný obrázek.
CLSID pro tento efekt je CLSID_D2D1DirectionalBlur.
- 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> directionalBlurEffect;
m_d2dContext->CreateEffect(CLSID_D2D1DirectionalBlur, &directionalBlurEffect);
directionalBlurEffect->SetInput(0, bitmap);
directionalBlurEffect->SetValue(D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION, 7.0f);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(directionalBlurEffect.Get());
m_d2dContext->EndDraw();
Vlastnosti efektu
Zobrazovaný název a výčet indexu | Popis |
---|---|
StandardDeviation D2D1_DIRECTIONALBLUR_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 0 0 BODŮ OCHRANY tento účinek zakáže. Typ je FLOAT. Výchozí hodnota je 3,0f. |
Úhel D2D1_DIRECTIONALBLUR_PROP_ANGLE |
Úhel rozostření vzhledem k ose x ve směru proti směru hodinových ručiček. Jednotky jsou zadané ve stupních. Rozostření jádra je nejprve generováno stejným postupem jako pro Gaussian rozostření efekt. Hodnoty jádra se pak transformují podle úhlu rozostření. Typ je FLOAT. Výchozí hodnota je 0,0f. |
Optimalizace D2D1_DIRECTIONALBLUR_PROP_OPTIMIZATION |
Režim optimalizace. Další informace najdete v režimech optimalizace. Typ je D2D1_DIRECTIONALBLUR_OPTIMIZATION. Výchozí hodnota je D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED. |
BorderMode D2D1_DIRECTIONALBLUR_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_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
Velikost výstupního rastrového obrázku se zvyšuje na základě směrodatné odchylky, úhlu efektu 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, která je znázorněna v pixelech. Tyto rovnice lze použít k výpočtu velikosti výstupního rastrového obrázku.
Požadavek | Hodnota |
---|---|
Výstupní rastrový obrázek – růst X | StandardDeviation (DIPs) * 6 * ((User DPI) / 96) * cos(Úhel)) |
Výstupní rastrový obrázek Růst Y | StandardDeviation (DIPs) * 6 * ((User DPI) / 96) * sin(úhel)) |
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 |