Udostępnij za pośrednictwem


Efekt rozmycia kierunkowego

Efekt rozmycia kierunkowego jest podobny do rozmycie Gaussian, z wyjątkiem tego, że można wypaczyć rozmycie w określonym kierunku. Możesz użyć tego efektu, aby obraz wyglądał tak, jakby był w ruchu lub aby podkreślić animowany obraz.

Identyfikator CLSID dla tego efektu jest CLSID_D2D1DirectionalBlur.

Przykładowy obraz

Przed
obraz przed efektem.
Po
obraz po przekształceniu.
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();

Właściwości efektu

Nazwa wyświetlana i wyliczenie indeksu Opis
Eksmisji w warstwie Standardowa
D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION
Ilość rozmycia, która ma zostać zastosowana do obrazu. Promień rozmycia jądra można obliczyć, mnożąc odchylenie standardowe przez 3. Jednostki zarówno odchylenia standardowego, jak i promienia rozmycia to DIPs. Wartość 0 DIPs wyłącza ten efekt. Typ to FLOAT.
Wartość domyślna to 3.0f.
Kąt
D2D1_DIRECTIONALBLUR_PROP_ANGLE
Kąt rozmycia względem osi x w kierunku odwrotnym. Jednostki są określone w stopniach.
Jądro rozmycia jest najpierw generowane przy użyciu tego samego procesu co w przypadku rozmycia gaussańskiego efektu. Wartości jądra są następnie przekształcane zgodnie z kątem rozmycia.
Typ to FLOAT.
Wartość domyślna to 0,0f.
Optymalizacja
D2D1_DIRECTIONALBLUR_PROP_OPTIMIZATION
Tryb optymalizacji. Aby uzyskać więcej informacji, zobacz Tryby optymalizacji.
Typ jest D2D1_DIRECTIONALBLUR_OPTIMIZATION.
Wartość domyślna to D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED.
BorderMode
D2D1_DIRECTIONALBLUR_PROP_BORDER_MODE
Tryb używany do obliczania obramowania obrazu, miękkiego lub twardego. Aby uzyskać więcej informacji, zobacz Tryby obramowania.
Typ to D2D1_BORDER_MODE.
Wartość domyślna to D2D1_BORDER_MODE_SOFT.

Tryby optymalizacji

Nazwa Opis
D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED Stosuje optymalizacje wewnętrzne, takie jak wstępne skalowanie na stosunkowo małym promieniu. Używa filtrowania liniowego.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED Używa tych samych progów optymalizacji co tryb szybkości, ale używa filtrowania trójliniowego.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY Używa tylko optymalizacji wewnętrznych z dużym promieniem rozmycia, gdzie przybliżenia są mniej prawdopodobne, aby być widoczne. Używa filtrowania trójliniowego.

Tryby obramowania

Nazwa Opis
D2D1_BORDER_MODE_SOFT Efekt podpełnia obraz przezroczystymi czarnymi pikselami, ponieważ stosuje jądro rozmycia, co powoduje miękką krawędź.
D2D1_BORDER_MODE_HARD Efekt zaciska dane wyjściowe do rozmiaru obrazu wejściowego. Gdy efekt stosuje jądro rozmycia, rozszerza obraz wejściowy za pomocą przekształcenia obramowania typu dublowanego dla próbek poza granicami wejściowymi.

Mapa bitowa wyjściowa

Rozmiar wyjściowej mapy bitowej zwiększa się na podstawie odchylenia standardowego, kąta efektu i trybu obramowania. Jeśli tryb obramowania jest ustawiony na D2D1_BORDER_MODE_SOFT rozmiar wyjściowej mapy bitowej zwiększa się o rozmiar jądra rozmycia, reprezentowany w pikselach. Te równania mogą służyć do obliczania rozmiaru wyjściowej mapy bitowej.

Wymaganie Wartość
Wzrost mapy bitowej danych wyjściowych X StandardowaDeviation (DIPs) * 6 * ((User DPI) / 96) * cos(Angle))
Wzrost mapy bitowej danych wyjściowych Y StandardowaDeviation (DIPs) * 6 * ((User DPI) / 96) * sin(Angle))

Wymagania

Wymaganie Wartość
Minimalny obsługiwany klient Windows 8 i aktualizacja platformy dla systemu Windows 7 [aplikacje klasyczne | Aplikacje ze Sklepu Windows]
Minimalny obsługiwany serwer Windows 8 i aktualizacja platformy dla systemu Windows 7 [aplikacje klasyczne | Aplikacje ze Sklepu Windows]
Nagłówek d2d1effects.h
Biblioteka d2d1.lib, dxguid.lib

ID2D1Effect