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 matriks konvolve untuk menerapkan kernel 2D arbitrer ke gambar. Anda dapat menggunakan efek ini untuk mengaburkan, mendeteksi tepi, timbul, atau mempertajam gambar.
CLSID untuk efek ini CLSID_D2D1ConvolveMatrix.
Contoh gambar
Contoh di sini menunjukkan input dan output efek matriks convolve dengan kernel 3 x 3.
| Sebelum |
|---|
|
| Sesudah |
|
ComPtr<ID2D1Effect> convolveMatrixEffect;
m_d2dContext->CreateEffect(CLSID_D2D1ConvolveMatrix, &convolveMatrixEffect);
convolveMatrixEffect->SetInput(0, bitmap);
float matrix[9] = {-1, -1, -1, -1, 9, -1, -1, -1, -1};
convolveMatrixEffect->SetValue(D2D1_CONVOLVEMATRIX_PROP_KERNEL_MATRIX, matrix);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(convolveMatrixEffect.Get());
m_d2dContext->EndDraw();
Properti efek
Mode skala
| Enumerasi | Deskripsi |
|---|---|
| D2D1_CONVOLVEMATRIX_SCALE_MODE_NEAREST_NEIGHBOR | Sampel titik tunggal terdekat dan menggunakannya. Mode ini menggunakan lebih sedikit waktu pemrosesan, tetapi menghasilkan gambar kualitas terendah. |
| D2D1_CONVOLVEMATRIX_SCALE_MODE_LINEAR | Menggunakan sampel empat titik dan interpolasi linier. Mode ini menghasilkan gambar berkualitas lebih tinggi daripada mode tetangga terdekat. |
| D2D1_CONVOLVEMATRIX_SCALE_MODE_CUBIC | Menggunakan 16 sampel kernel kubik untuk interpolasi. Mode ini menggunakan waktu pemrosesan terbanyak, tetapi menghasilkan gambar berkualitas lebih tinggi. |
| D2D1_CONVOLVEMATRIX_SCALE_MODE_MULTI_SAMPLE_LINEAR | Menggunakan 4 sampel linier dalam satu piksel untuk anti-aliasing tepi yang baik. Mode ini baik untuk menurunkan skala dengan jumlah kecil pada gambar dengan beberapa piksel. |
| D2D1_CONVOLVEMATRIX_SCALE_MODE_ANISOTROPIC | Menggunakan pemfilteran anisotropic untuk mengambil sampel pola sesuai dengan bentuk bitmap yang diubah. |
| D2D1_CONVOLVEMATRIX_SCALE_MODE_HIGH_QUALITY_CUBIC | Menggunakan ukuran variabel kernel kubik berkualitas tinggi untuk melakukan pra-downscale gambar jika downscaling terlibat dalam matriks transformasi. Kemudian menggunakan mode interpolasi kubik untuk output akhir. |
Nota
Jika Anda tidak memilih mode, efek akan default ke D2D1_CONVOLVEMATRIX_SCALE_MODE_LINEAR.
Mode batas
| Nama | Deskripsi |
|---|---|
| D2D1_BORDER_MODE_SOFT | Efek menyatukan gambar input dengan piksel hitam transparan untuk sampel di luar batas input saat menerapkan kernel konvolusi. Ini menciptakan tepi lembut untuk gambar, dan dalam prosesnya memperluas bitmap output berdasarkan ukuran kernel. |
| D2D1_BORDER_MODE_HARD | Efek memperluas gambar input dengan transformasi batas jenis cermin untuk sampel di luar batas input. Ukuran bitmap output sama dengan ukuran bitmap input. |
Bitmap output
Ukuran output efek tergantung pada ukuran kernel konvolusi, offset kernel, panjang unit kernel, dan pengaturan mode batas.
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 |