Aracılığıyla paylaş


Gölge efekti

Görüntünün alfa kanalından gölge oluşturmak için gölge efektini kullanın. Gölge, daha yüksek alfa değerleri için daha opak ve daha düşük alfa değerleri için daha saydamdır. Bulanıklık miktarını ve gölgenin rengini ayarlayabilirsiniz.

Bu etki için CLSID CLSID_D2D1Shadow.

Örnek resim

Buradaki örnekte, özgün konumda üzerinde birleştirilmiş kaynak görüntüyle aşağı ve sağa çevrilmiş gölge efektinin çıkışı gösterilmektedir. Gölge efekti yalnızca gölgeyi oluşturur.

Önce
Efektin önüne görüntüyü .
Sonra
Dönüştürmeden sonra görüntüyü .
ComPtr<ID2D1Effect> shadowEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Shadow, &shadowEffect);

shadowEffect->SetInput(0, bitmap);

// Shadow is composited on top of a white surface to show opacity.
ComPtr<ID2D1Effect> floodEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Flood, &floodEffect);

floodEffect->SetValue(D2D1_FLOOD_PROP_COLOR, D2D1::Vector4F(1.0f, 1.0f, 1.0f, 1.0f));

ComPtr<ID2D1Effect> affineTransformEffect;
m_d2dContext->CreateEffect(CLSID_D2D12DAffineTransform, &affineTransformEffect);

affineTransformEffect->SetInputEffect(0, shadowEffect.Get());

D2D1_MATRIX_3X2_F matrix = D2D1::Matrix3x2F::Translation(20, 20));

affineTransformEffect->SetValue(D2D1_2DAFFINETRANSFORM_PROP_TRANSFORM_MATRIX, matrix);

ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);

compositeEffect->SetInputEffect(0, floodEffect.Get());
compositeEffect->SetInputEffect(1, affineTransformEffect.Get());
compositeEffect->SetInput(2, bitmap);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(compositeEffect.Get());
m_d2dContext->EndDraw();

Efekt özellikleri

Görünen ad ve dizin numaralandırması Açıklama
BlurStandardDeviation
D2D1_SHADOW_PROP_BLUR_STANDARD_DEVIATION
Görüntünün alfa kanalına uygulanacak bulanıklık miktarı. Standart sapması 3 ile çarparak çekirdeğin bulanıklık yarıçapını hesaplayabilirsiniz. Hem standart sapma hem de bulanıklaştırma yarıçapının birimleri DIP'lerdir.
Bu özellik, Gauss Bulanıklaştırma standart sapma özelliğiyle aynıdır.
Tür FLOAT'dır.
Varsayılan değer 3,0f'dir.
Renk
D2D1_SHADOW_PROP_COLOR
Gölgenin rengi. Bu özellik şu şekilde tanımlanan bir D2D1_VECTOR_4F: (R, G, B, A). Bu rengi düz alfa olarak belirtmelisiniz.
Türü D2D1_VECTOR_4F.
Varsayılan değer: {0.0f, 0.0f, 0.0f, 1.0f}.
Optimizasyon
D2D1_SHADOW_PROP_OPTIMIZATION
Performans iyileştirme düzeyi.
Tür D2D1_SHADOW_OPTIMIZATION.
Varsayılan değer D2D1_SHADOW_OPTIMIZATION_BALANCED.

İyileştirme modları

Ad Açıklama
D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED Görece küçük yarıçaplarda önceden ölçeklendirme gibi iç iyileştirmeler uygular. Doğrusal filtreleme kullanır.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED Hız moduyla aynı iyileştirme eşiklerini kullanır, ancak üç çizgili filtreleme kullanır.
D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY Yalnızca, yaklaşık değerlerin görünür olma olasılığının daha az olduğu büyük bulanıklık yarıçapıyla iç iyileştirmeleri kullanır. Üç satırlı filtreleme kullanır.

Çıktı bit eşlemi

Çıktı bit eşleminin boyutu, bulanıklaştırma çıkışının boyutudur. Çıktı bit eşleminin özgün bit eşleme göre büyümesi miktarı aşağıdaki denklem kullanılarak hesaplanabilir:

Çıktı Bit Eşlem Büyümesi (X ve Y) = BlurStandardDeviation (cihazdan bağımsız pikseller (DIPs))*6*(Kullanıcı DPI'sı)/96

Çıkış her yönde eşit olarak artar, bu nedenle örneğin boyut her yönde 10 piksel artarsa bit eşlemin sol üst köşesi (-5, -5) konumunda bulunur ve sağ alt köşe buradaki diyagramda gösterildiği gibi (105, 105) olur.

gölge efekti çıkış boyutu büyüme diyagramı.

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

ID2D1Fefek