Sdílet prostřednictvím


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

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

ID2D1Effect