Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Użyj efektu mapy przemieszczania, aby przesiąść piksele obrazu wejściowego przez wartości intensywności drugiego obrazu wejściowego.
Identyfikator CLSID dla tego efektu jest CLSID_D2D1DisplacementMap.
- przykładowy obraz
- właściwości Efekt
- kanałów Color
- wyjściowych map bitowych
- wymagania dotyczące
- Tematy pokrewne
Przykładowy obraz
| Przed |
|---|
|
| Po |
|
ComPtr<ID2D1Effect> displacementMapEffect;
m_d2dContext->CreateEffect(CLSID_D2D1DisplacementMap, &displacementMapEffect);
displacementMapEffect->SetInput(0, bitmap);
displacementMapEffect->SetValue(D2D1_DISPLACEMENTMAP_PROP_SCALE, 100.0f);
// The second input of the displacement effect determines how the input image is transformed.
// For this example, we will use a turbulence effect as the second input to randomly distort the image.
ComPtr<ID2D1Effect> turbulenceEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Turbulence, &turbulenceEffect);
displacementMapEffect->SetInputEffect(1, turbulenceEffect.Get());
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(displacementMapEffect.Get());
m_d2dContext->EndDraw();
Lokalizacje pikseli w danych wyjściowych są określane przy użyciu następującej formuły:
C' (x,y)=C(x+ scale*(XChannelSelector(Mapa bitowa przemieszczania (x,y))-0,5),y+ scale*(YChannelSelector(Mapa bitowa przemieszczania (x,y)-0,5))
Gdzie:
-
C (x, y) to piksel wyjściowy (x, y).
C (x, y) jest pikselem wejściowym (x, y).
mapa bitowa przemieszczenia (x, y) jest intensywnością pikseli przemieszczenia na określonych współrzędnych
XChannelSelector intensywność wybranego kanału RGBA z mapy bitowej przemieszczenia, która wypiera obraz wejściowy w kierunku X.
YChannelSelector intensywność wybranego kanału RGBA z mapy bitowej przemieszczenia, która wypiera obraz wejściowy w kierunku Y.
Efekt zmienia próbkę obrazu wejściowego zgodnie z właściwością scale i intensywnością obrazu przemieszczenia. Używa interpolacji dwuliniowej, jeśli próbkowanie z między pikselami w obrazie wejściowym.
Ten efekt działa na prostych i premultiplied obrazów alfa. Format alfa danych wyjściowych jest taki sam jak format wejściowy.
Właściwości efektu
| Nazwa wyświetlana i wyliczenie indeksu | Typ i wartość domyślna | Opis |
|---|---|---|
| Skala D2D1_DISPLACEMENTMAP_PROP_SCALE |
SPŁAWIK 0.0f |
Mnoży intensywność wybranego kanału z obrazu przemieszczenia. Im wyższa właściwość zostanie ustawiona, tym więcej efektu powoduje przesunięcie pikseli |
| XChannelSelect D2D1_DISPLACEMENTMAP_PROP_X_CHANNEL_SELECT |
D2D1_CHANNEL_SELECTOR D2D1_CHANNEL_SELECTOR_A |
Efekt wyodrębnia intensywność z tego kanału kolorów i używa go do przestrzennego przesiedlania obrazu w kierunku X. Aby uzyskać więcej informacji, zobacz Kanały kolorów. |
| YChannelSelect D2D1_DISPLACEMENTMAP_PROP_Y_CHANNEL_SELECT |
D2D1_CHANNEL_SELECTOR D2D1_CHANNEL_SELECTOR_A |
Efekt wyodrębnia intensywność z tego kanału kolorów i używa go do przestrzennego wypierania obrazu w kierunku Y. Aby uzyskać więcej informacji, zobacz Kanały kolorów. |
Kanały kolorów
| Wyliczenie | Opis |
|---|---|
| D2D1_CHANNEL_SELECTOR_R | Efekt wyodrębnia dane wyjściowe intensywności z czerwonego kanału. |
| D2D1_CHANNEL_SELECTOR_G | Efekt wyodrębnia dane wyjściowe intensywności z zielonego kanału. |
| D2D1_CHANNEL_SELECTOR_B | Efekt wyodrębnia dane wyjściowe intensywności z niebieskiego kanału. |
| D2D1_CHANNEL_SELECTOR_A | Efekt wyodrębnia dane wyjściowe intensywności z kanału alfa. |
Mapa bitowa danych wyjściowych
Możesz określić maksymalny rozmiar mapy bitowej danych wyjściowych przy użyciu następujących równań:
Mapa bitowa danych wyjściowych? Pixel=(Rozmiar mapy bitowej wejściowej?( DIPs)+Scale)*(User DPI/96)
Output Bitmapy Pixel=(Rozmiar mapy bitowej wejściowejy(DIPs) + Scale)*(User DPI/96)
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 |