Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Gunakan efek bayangan untuk menghasilkan bayangan dari saluran alfa gambar. Bayangan lebih buram untuk nilai alfa yang lebih tinggi dan lebih transparan untuk nilai alfa yang lebih rendah. Anda dapat mengatur jumlah kabur dan warna bayangan.
CLSID untuk efek ini CLSID_D2D1Shadow.
Contoh gambar
Contoh di sini menunjukkan output efek bayangan yang diterjemahkan ke bawah dan kanan dengan gambar sumber yang disusun di atasnya di lokasi asli. Efek bayangan hanya menghasilkan bayangan.
| Sebelum |
|---|
|
| Sesudah |
|
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();
Properti efek
| Nama tampilan dan enumerasi indeks | Deskripsi |
|---|---|
| BlurStandardDeviation D2D1_SHADOW_PROP_BLUR_STANDARD_DEVIATION |
Jumlah kabur yang akan diterapkan ke saluran alfa gambar. Anda dapat menghitung radius kabur kernel dengan mengalikan simpantan standar dengan 3. Unit penyimpangan standar dan radius kabur adalah DIP. Properti ini sama dengan properti penyimpangan standar Gaussian Blur. Jenisnya adalah FLOAT. Nilai defaultnya adalah 3,0f. |
| Warna D2D1_SHADOW_PROP_COLOR |
Warna bayangan jatuh. Properti ini adalah D2D1_VECTOR_4F yang didefinisikan sebagai: (R, G, B, A). Anda harus menentukan warna ini dalam alfa lurus. Jenisnya D2D1_VECTOR_4F. Nilai defaultnya adalah {0.0f, 0.0f, 0.0f, 1.0f}. |
| Optimasi D2D1_SHADOW_PROP_OPTIMIZATION |
Tingkat pengoptimalan performa. Jenisnya D2D1_SHADOW_OPTIMIZATION. Nilai defaultnya adalah D2D1_SHADOW_OPTIMIZATION_BALANCED. |
Mode pengoptimalan
| Nama | Deskripsi |
|---|---|
| D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED | Menerapkan pengoptimalan internal seperti pra-penskalaan pada radii yang relatif kecil. Menggunakan pemfilteran linier. |
| D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED | Menggunakan ambang pengoptimalan yang sama dengan mode Kecepatan, tetapi menggunakan pemfilteran trilinear. |
| D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY | Hanya menggunakan pengoptimalan internal dengan radii kabur besar, di mana perkiraan cenderung tidak terlihat. Menggunakan pemfilteran trilinear. |
Bitmap output
Ukuran bitmap output adalah ukuran output kabur. Jumlah pertumbuhan bitmap output relatif terhadap bitmap asli dapat dihitung menggunakan persamaan berikut:
Pertumbuhan Bitmap Output (X dan Y) = BlurStandardDeviation (piksel independen perangkat (DIP))*6*(DPI Pengguna)/96
Output meningkat sama ke segala arah, jadi misalnya jika ukuran meningkat 10 piksel di setiap arah, sudut kiri atas bitmap terletak di (-5, -5) dan kanan bawah akan berada di (105, 105) seperti yang ditunjukkan pada diagram di sini.
Persyaratan
| Syarat | Nilai |
|---|---|
| Klien minimum yang didukung | Pembaruan Windows 8 dan Platform untuk Windows 7 [aplikasi desktop | Aplikasi Bursa Windows] |
| Server minimum yang didukung | Pembaruan Windows 8 dan Platform untuk Windows 7 [aplikasi desktop | Aplikasi Bursa Windows] |
| Header | d2d1effects.h |
| Perpustakaan | d2d1.lib, dxguid.lib |