Bagikan melalui


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, tujuannya 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 dikomposisikan dengan mode Source Over.

contoh gambar yang menunjukkan 2 persegi panjang bulat dengan ukuran yang sama yang tumpang tindih menggunakan mode sumber di atas.

Berikut adalah contoh lain menggunakan mode default.

Sebelum gambar 1
gambar sumber pertama sebelum efek.
Sebelum gambar 2
gambar kedua sebelum efek.
Sesudahnya
gambar setelah transformasi.
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
Mode
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
Enumeration 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 tingkat keburaman 1,0 atau 0,5.

contoh gambar masing-masing mode dengan opasitas diatur ke 1,0 atau 0,5.

Kode sampel

Untuk contoh efek ini, unduh sampel mode efek komposit Direct2D.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 dan Pembaruan Platform untuk Windows 7 [aplikasi desktop | Aplikasi Bursa Windows]
Server minimum yang didukung Windows 8 dan Pembaruan Platform untuk Windows 7 [aplikasi desktop | Aplikasi Bursa Windows]
Header d2d1effects.h
Pustaka d2d1.lib, dxguid.lib

ID2D1Effect