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
Sebelum |
---|
![]() |
Sesudah |
![]() |
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 * CEksponen + Offset
Efek ini bekerja pada gambar alfa lurus dan pramulatif. Efek menghasilkan bitmap alfa yang telah dikutip sebelumnya.
Properti efek
Nota
Untuk semua saluran properti transfer gamma:
- Nilai amplitude tidak terikat dan tidak bersatu.
- Nilai eksponen tidak terikat dan tidak bersatuan.
- Nilai offset tidak terikat dan tidak bersatuan.
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, maka akan menerapkan fungsi transfer gamma 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 Green. 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, maka akan menerapkan fungsi transfer gamma 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, maka akan menerapkan fungsi transfer gamma ke saluran Biru. Jenisnya adalah BOOL. Nilai defaultnya adalah FALSE. |
AlfaAmplitude 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, maka akan menerapkan fungsi transfer gamma ke saluran alfa. Jenisnya adalah BOOL. Nilai defaultnya adalah FALSE. |
ClampOutput D2D1_GAMMATRANSFER_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. |
Bitmap output
Ukuran bitmap output sama dengan ukuran bitmap input.
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 |