Efek matriks warna
Gunakan efek matriks warna untuk mengubah nilai RGBA bitmap.
Anda dapat menggunakan efek ini untuk:
- Menghapus saluran warna dari gambar.
- Kurangi warna dalam gambar.
- Menukar saluran warna.
- Gabungkan saluran warna.
Banyak efek bawaan adalah spesialisasi matriks warna yang dioptimalkan untuk penggunaan efek yang dimaksudkan. Contohnya termasuk saturasi, rona memutar, sepia, dan suhu dan warna.
CLSID untuk efek ini CLSID_D2D1ColorMatrix.
Contoh gambar
Contoh di sini menunjukkan gambar input dan output dari efek matriks warna yang menukar saluran merah dan biru.
Sebelum |
---|
![]() |
Sesudah |
![]() |
ComPtr<ID2D1Effect> colorMatrixEffect;
m_d2dContext->CreateEffect(CLSID_D2D1ColorMatrix, &colorMatrixEffect);
colorMatrixEffect->SetInput(0, bitmap);
D2D1_MATRIX_5X4_F matrix = D2D1::Matrix5x4F(0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0);
colorMatrixEffect->SetValue(D2D1_COLORMATRIX_PROP_COLOR_MATRIX, matrix);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(colorMatrixEffect.Get());
m_d2dContext->EndDraw();
Efek ini mengalikan nilai RGBA gambar dengan matriks utama kolom 5x4, seperti yang ditunjukkan dalam persamaan ini.
Efek ini bekerja pada gambar alfa lurus dan pramulatif.
Properti efek
Nama tampilan dan enumerasi indeks | Deskripsi |
---|---|
ColorMatrix D2D1_COLORMATRIX_PROP_COLOR_MATRIX |
Matriks 5x4 nilai float. Elemen dalam matriks tidak terikat dan tidak bersatu. Defaultnya adalah matriks identitas. Jenisnya D2D1_MATRIX_5X4_F. Nilai defaultnya adalah Matrix5x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0). |
AlphaMode D2D1_COLORMATRIX_PROP_ALPHA_MODE |
Mode alfa output. Lihat mode Alpha untuk informasi selengkapnya. Jenisnya adalah D2D1_COLORMATRIX_ALPHA_MODE. Nilai defaultnya adalah D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED. |
ClampOutput D2D1_COLORMATRIX_PROP_CLAMP_OUTPUT |
Apakah efek menjepit nilai warna ke antara 0 dan 1 sebelum efek meneruskan nilai ke efek berikutnya dalam grafik. Efek menjepit nilai sebelum premultiplies alfa . Jika Anda mengatur ini ke TRUE, efek akan menjepit nilai. Jika Anda mengatur ini ke FALSE, efek tidak akan menjepit nilai warna, tetapi efek lain dan permukaan output dapat menjepit nilai jika tidak memiliki presisi yang cukup tinggi. Jenisnya adalah BOOL. Nilai defaultnya adalah FALSE. |
Mode alfa
Nama | Deskripsi |
---|---|
D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED | Efek membatalkan premultip input, menerapkan matriks warna, dan melakukan premultip output. |
D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT | Efek menerapkan matriks warna langsung ke input, dan tidak melakukan pramultip output. |
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 |