Efek komposit
Gunakan efek komposit untuk menggabungkan 2 gambar atau lebih. Efek ini memiliki 13 mode komposit yang berbeda. T
Efek komposit menerima 2 input atau lebih. Saat Anda menentukan 2 gambar, tujuan adalah input pertama (indeks 0) dan sumbernya adalah input kedua (indeks 1). Jika Anda menentukan lebih dari 2 input, gambar dikomposisikan dimulai dengan input pertama dan yang kedua dan sebagainya.
Efek ini mengimplementasikan semua mode menggunakan unit campuran unit pemrosesan grafis (GPU).
CLSID untuk efek ini CLSID_D2D1Composite.
Contoh gambar
Gambar di sini menunjukkan 2 persegi panjang bulat dengan ukuran yang sama yang tumpang tindih. Persegi panjang biru adalah sumber dan persegi panjang merah adalah tujuannya. Gambar-gambar tersebut terdiri dari mode Source Over.
Berikut adalah contoh lain menggunakan mode default.
Sebelum gambar 1 |
---|
![]() |
Sebelum gambar 2 |
![]() |
Sesudah |
![]() |
ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);
compositeEffect->SetInput(0, bitmap);
compositeEffect->SetInput(1, bitmapTwo);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(compositeEffect.Get());
m_d2dContext->EndDraw();
Properti efek
Nama tampilan dan enumerasi indeks | Ketik dan nilai default | Deskripsi |
---|---|---|
Modus D2D1_COMPOSITE_PROP_MODE |
D2D1_COMPOSITE_MODE D2D1_COMPOSITE_MODE_SOURCE_OVER |
Mode yang digunakan untuk efek. |
Jenis mode
Tabel di sini memperlihatkan mode efek ini. Persamaan yang tercantum dalam tabel menggunakan elemen-elemen ini:
- O = Output
- S = Sumber
- SA = Alfa Sumber
- D = Tujuan
- DA = Alfa Tujuan
Enumerasi | Persamaan | Ukuran Bitmap Output |
---|---|---|
D2D1_COMPOSITE_MODE_SOURCE_OVER | O = S + (1 SA) * D | Penyatuan bitmap sumber dan tujuan |
D2D1_COMPOSITE_MODE_DESTINATION_OVER | O = (1 DA) * S + D | Penyatuan bitmap sumber dan tujuan |
D2D1_COMPOSITE_MODE_SOURCE_IN | O = DA * S | Persimpangan bitmap sumber dan tujuan |
D2D1_COMPOSITE_MODE_DESTINATION_IN | O = SA * D | Persimpangan bitmap sumber dan tujuan |
D2D1_COMPOSITE_MODE_SOURCE_OUT | O = (1 - DA) * S | Wilayah bitmap sumber |
D2D1_COMPOSITE_MODE_DESTINATION_OUT | O = (1 - SA) * D | Wilayah bitmap tujuan |
D2D1_COMPOSITE_MODE_SOURCE_ATOP | O = DA * S + (1 - SA) * D | Wilayah bitmap tujuan |
D2D1_COMPOSITE_MODE_DESTINATION_ATOP | O = (1 - DA) * S + SA * D | Wilayah bitmap sumber |
D2D1_COMPOSITE_MODE_XOR | O = (1 - DA) * S + (1 - SA) * D | Penyatuan bitmap sumber dan tujuan |
D2D1_COMPOSITE_MODE_PLUS | O = S + D | Penyatuan bitmap sumber dan tujuan |
D2D1_COMPOSITE_MODE_SOURCE_COPY | O = S | Wilayah bitmap sumber |
D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY | O = S (hanya di mana sumber ada) | Penyatuan bitmap sumber dan tujuan. Tujuan tidak ditimpa di mana sumber tidak ada. |
D2D1_COMPOSITE_MODE_MASK_INVERT | O = (1 D) * S + (1 SA) * D | Penyatuan bitmap sumber dan tujuan. Nilai alfa tidak berubah. |
Gambar di sini menunjukkan contoh masing-masing mode dengan gambar yang memiliki keburaman 1,0 atau 0,5.
Kode sampel
Untuk contoh efek ini, unduh sampel mode efek komposit Direct2D.
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 |