Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Giriş görüntüsünün piksellerini ikinci bir giriş görüntüsünün yoğunluk değerlerine göre değiştirmek için yer değiştirme eşleme efektini kullanın.
Bu etki için CLSID CLSID_D2D1DisplacementMap.
- Örnek görüntü
- Efekt özellikleri
- Renk kanalları
- Çıktı Bit Eşlem
- Gereksinimleri
- İlgili konular
Örnek resim
| Önce |
|---|
Efektin önüne görüntüyü ![]() |
| Sonra |
Dönüştürmeden sonra görüntüyü ![]() |
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();
Çıktıdaki piksellerin konumları şu formül kullanılarak belirlenir:
C' (x,y)=C(x+ ölçeği*(XChannelSelector(Yer Değiştirme Bit Eşlemi (x,y))-0,5),y+ ölçek*(YChannelSelector(Yer Değiştirme Bit Eşlemi (x,y))-0,5))
Nerede:
-
C (x, y) (x, y) çıkış pikselidir.
C (x, y) (x, y) giriş pikselidir.
Yer Değiştirme Bit Eşlemi (x, y) belirtilen koordinatlarda yer değiştirme piksel yoğunluğudur
XChannelSelector, seçilen RGBA kanalının giriş görüntüsünü X yönünde yer değiştiren yer değiştirme bit eşleminden yoğunluğunu.
YChannelSelector, giriş görüntüsünü Y yönünde değiştiren yer değiştirme bit eşleminden seçilen RGBA kanalının yoğunluğunu.
Efekt, giriş görüntüsünü ölçek özelliğine ve yer değiştirme görüntüsünün yoğunluğuna göre yeniden örneklenir. Giriş görüntüsündeki pikseller arasında örnekleme varsa bilinear ilişkilendirme kullanır.
Bu etki düz ve önceden yüklenmiş alfa görüntülerinde çalışır. Çıktı alfa biçimi, giriş biçimiyle aynıdır.
Efekt özellikleri
| Görünen ad ve dizin numaralandırması | Tür ve varsayılan değer | Açıklama |
|---|---|---|
| Ölçeklemek D2D1_DISPLACEMENTMAP_PROP_SCALE |
YÜZMEK 0,0f |
Yer değiştirme görüntüsünden seçilen kanalın yoğunluğunu çarpar. Bu özelliği ne kadar yüksek ayarlarsanız, efekt pikselleri o kadar fazla yerinden eder |
| XChannelSelect D2D1_DISPLACEMENTMAP_PROP_X_CHANNEL_SELECT |
D2D1_CHANNEL_SELECTOR D2D1_CHANNEL_SELECTOR_A |
Efekt, bu renk kanalındaki yoğunluğu ayıklar ve görüntüyü X yönünde uzamsal olarak yer değiştirmek için kullanır. Daha fazla bilgi için bkz. Color channels. |
| YChannelSelect D2D1_DISPLACEMENTMAP_PROP_Y_CHANNEL_SELECT |
D2D1_CHANNEL_SELECTOR D2D1_CHANNEL_SELECTOR_A |
Efekt, bu renk kanalındaki yoğunluğu ayıklar ve görüntüyü uzamsal olarak Y yönünde yer değiştirmek için kullanır. Daha fazla bilgi için bkz. Color channels. |
Renk kanalları
| Sayım | Açıklama |
|---|---|
| D2D1_CHANNEL_SELECTOR_R | Etki, kırmızı kanaldan yoğunluk çıkışını ayıklar. |
| D2D1_CHANNEL_SELECTOR_G | Etki, yeşil kanaldan yoğunluk çıkışını ayıklar. |
| D2D1_CHANNEL_SELECTOR_B | Efekt, mavi kanaldan yoğunluk çıkışını ayıklar. |
| D2D1_CHANNEL_SELECTOR_A | Etkisi alfa kanalından yoğunluk çıkışını ayıklar. |
Çıktı Bit Eşlemi
Çıktı bit eşleminin en büyük boyutunu şu denklemlerle belirleyebilirsiniz:
Bit Eşlem çıktısı mı? Piksel=(Giriş Bit Eşlem Boyutu?( DIP'ler)+Ölçek)*(Kullanıcı DPI'sı/96)
Çıktı Bit Eşlemiy Piksel=(Giriş Bit Eşlem Boyutuy(DIPs) + Ölçek)*(Kullanıcı DPI/96)
Gereksinim -leri
| Gereksinim | Değer |
|---|---|
| Desteklenen en düşük istemci | Windows 7 için Windows 8 ve Platform Güncelleştirmesi [masaüstü uygulamaları | Windows Mağazası uygulamaları] |
| Desteklenen en düşük sunucu | Windows 7 için Windows 8 ve Platform Güncelleştirmesi [masaüstü uygulamaları | Windows Mağazası uygulamaları] |
| Üstbilgi | d2d1effects.h |
| Kütüphane | d2d1.lib, dxguid.lib |

