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, 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.

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

Berikut adalah contoh lain menggunakan mode default.

Sebelum gambar 1
gambar sumber pertama sebelum efek.
Sebelum gambar 2
gambar kedua sebelum efek.
Sesudah
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
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.

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

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

ID2D1Effect