Efek transfer Gamma
Gunakan efek transfer gamma untuk memetakan intensitas warna gambar menggunakan fungsi gamma yang dibuat menggunakan amplitudo, eksponen, dan offset yang Anda sediakan untuk setiap saluran.
CLSID untuk efek ini CLSID_D2D1GammaTransfer. Untuk menggunakan efek ini, tambahkan dxguid.lib ke dependensi linker.
Contoh gambar
Sebelumnya |
---|
Sesudahnya |
ComPtr<ID2D1Effect> gammaTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1GammaTransfer, &gammaTransferEffect);
gammaTransferEffect->SetInput(0, bitmap);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_RED_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT, 0.25f);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(gammaTransferEffect.Get());
m_d2dContext->EndDraw();
Efek ini menerapkan fungsi transfer gamma berdasarkan persamaan di sini.
Intensitas piksel input direpresentasikan sebagai C dan intensitas piksel output sebagai C'. C' = Amplitude *C Exponent + Offset
Efek ini bekerja pada gambar alfa lurus dan pramultip. Efek menghasilkan bitmap alfa yang telah dikutip sebelumnya.
Properti efek
Catatan
Untuk semua saluran properti transfer gamma:
- Nilai amplitude tidak terikat dan tidak bersatu.
- Nilai eksponen tidak dibatasi dan tidak bersatu.
- Nilai offset tidak terikat dan tidak bersatu.
Nama tampilan dan enumerasi indeks | Deskripsi |
---|---|
RedAmplitude D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE |
Amplitude fungsi transfer gamma untuk saluran Merah. Jenisnya adalah FLOAT. Nilai defaultnya adalah 1,0f. |
RedExponent D2D1_GAMMATRANSFER_PROP_RED_EXPONENT |
Eksponen fungsi transfer gamma untuk saluran Merah. Jenisnya adalah FLOAT. Nilai defaultnya adalah 1,0f. |
RedOffset D2D1_GAMMATRANSFER_PROP_RED_OFFSET |
Offset fungsi transfer gamma untuk saluran Merah. Jenisnya adalah FLOAT. Nilai defaultnya adalah 0,0f. |
RedDisable D2D1_GAMMATRANSFER_PROP_RED_DISABLE |
Jika Anda mengatur ini ke TRUE, itu tidak menerapkan fungsi transfer ke saluran Merah. Fungsi transfer identitas digunakan. Jika Anda mengatur ini ke FALSE, fungsi transfer gamma akan diterapkan ke saluran Merah. Jenisnya adalah BOOL. Nilai defaultnya adalah FALSE. |
GreenAmplitude D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE |
Amplitude fungsi transfer gamma untuk saluran Hijau. Jenisnya adalah FLOAT. Nilai defaultnya adalah 1,0f. |
GreenExponent D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT |
Eksponen fungsi transfer gamma untuk saluran Hijau. Jenisnya adalah FLOAT. Nilai defaultnya adalah 1,0f. |
GreenOffset D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET |
Offset fungsi transfer gamma untuk saluran Hijau. Jenisnya adalah FLOAT. Nilai defaultnya adalah 0,0f. |
GreenDisable D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE |
Jika Anda mengatur ini ke TRUE, itu tidak menerapkan fungsi transfer ke saluran Hijau. Fungsi transfer identitas digunakan. Jika Anda mengatur ini ke FALSE, fungsi transfer gamma akan diterapkan ke saluran Hijau. Jenisnya adalah BOOL. Nilai defaultnya adalah FALSE. |
BlueAmplitude D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE |
Amplitude fungsi transfer gamma untuk saluran Biru. Jenisnya adalah FLOAT. Nilai defaultnya adalah 1,0f. |
BlueExponent D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT |
Eksponen fungsi transfer gamma untuk saluran Biru. Jenisnya adalah FLOAT. Nilai defaultnya adalah 1,0f. |
BlueOffset D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET |
Offset fungsi transfer gamma untuk saluran Biru. Jenisnya adalah FLOAT. Nilai defaultnya adalah 0,0f. |
BlueDisable D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE |
Jika Anda mengatur ini ke TRUE, itu tidak menerapkan fungsi transfer ke saluran Biru. Fungsi transfer identitas digunakan. Jika Anda mengatur ini ke FALSE, fungsi transfer gamma akan diterapkan ke saluran Biru. Jenisnya adalah BOOL. Nilai defaultnya adalah FALSE. |
AlphaAmplitude D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE |
Amplitude fungsi transfer gamma untuk saluran alfa. Jenisnya adalah FLOAT. Nilai defaultnya adalah 1,0f. |
AlphaExponent D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT |
Eksponen fungsi transfer gamma untuk saluran alfa. Jenisnya adalah FLOAT. Nilai defaultnya adalah 1,0f. |
AlphaOffset D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET |
Offset fungsi transfer gamma untuk saluran alfa. Jenisnya adalah FLOAT. Nilai defaultnya adalah 0,0f. |
AlphaDisable D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE |
Jika Anda mengatur ini ke TRUE, itu tidak menerapkan fungsi transfer ke saluran alfa. Fungsi transfer identitas digunakan. Jika Anda mengatur ini ke FALSE, fungsi transfer gamma akan diterapkan ke saluran alfa. Jenisnya adalah BOOL. Nilai defaultnya adalah FALSE. |
ClampOutput D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT |
Apakah efek menjepit nilai warna menjadi antara 0 dan 1 sebelum efek meneruskan nilai ke efek berikutnya dalam grafik. Efek menjepit nilai sebelum mendahului alfa . Jika Anda mengatur ini ke TRUE, efek akan menjepit nilai. Jika Anda mengatur ini ke FALSE, efeknya 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. |
Bitmap output
Ukuran bitmap output sama dengan ukuran bitmap input.
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 |
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk