Efek transfer linier
Gunakan efek transfer linier untuk memetakan intensitas warna gambar menggunakan fungsi linier yang dibuat dari daftar nilai yang Anda sediakan untuk setiap saluran.
CLSID untuk efek ini CLSID_D2D1LinearTransfer.
Contoh gambar
Sebelumnya |
---|
![]() |
Sesudahnya |
![]() |
ComPtr<ID2D1Effect> linearTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LinearTransfer, &linearTransferEffect);
linearTransferEffect->SetInput(0, bitmap);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_SLOPE, 2.5f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE, 5.0f);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(linearTransferEffect.Get());
m_d2dContext->EndDraw();
Fungsi transfer linier dibuat berdasarkan kelereng dan intersepsi y untuk setiap saluran yang Anda tentukan. Intensitas piksel output C dihitung dengan persamaan: C' = mC + B, di mana m adalah kelopak fungsi linier dan B adalah intersepsi Y dari fungsi linier.
Efek ini bekerja pada gambar alfa lurus dan tersimpan sebelumnya. Efek menghasilkan bitmap alfa yang telah ditentukan sebelumnya.
Properti efek
Catatan
Untuk semua saluran properti transfer linier:
- Intersepsi Y tidak terikat dan tidak bersatu.
- Kelopak tidak terikat dan tidak bersatu.
Nama tampilan dan enumerasi indeks | Ketik dan nilai default | Deskripsi |
---|---|---|
RedyIntercept D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT |
FLOAT 0.0f |
Intersepsi Y dari fungsi linier untuk saluran Merah. |
RedSlope D2D1_LINEARTRANSFER_PROP_RED_SLOPE |
FLOAT 1.0f |
Kelopak fungsi linier untuk saluran Merah. |
RedDisable D2D1_LINEARTRANSFER_PROP_RED_DISABLE |
BOOL FALSE |
Jika Anda mengatur ini ke TRUE, efek tidak menerapkan fungsi transfer ke saluran Merah. Jika Anda mengatur ini ke FALSE, efek menerapkan fungsi RedLinearTransfer ke saluran Merah. |
GreenyIntercept D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT |
FLOAT 0.0f |
Intersepsi Y dari fungsi linier untuk saluran Hijau. |
Kelopak Hijau D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE |
FLOAT 1.0f |
Kelopak fungsi linier untuk saluran Hijau. |
GreenDisable D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE |
BOOL FALSE |
Jika Anda mengatur ini ke TRUE, efek tidak menerapkan fungsi transfer ke saluran Hijau. Jika Anda mengatur ini ke FALSE, fungsi GreenLinearTransfer akan diterapkan ke saluran Hijau. |
BlueyIntercept D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT |
FLOAT 0.0f |
Intersepsi Y dari fungsi linier untuk saluran Biru. |
BlueSlope D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE |
FLOAT 1.0f |
Kelopak fungsi linier untuk saluran Biru. |
BlueDisable D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE |
BOOL FALSE |
Jika Anda mengatur ini ke TRUE, efeknya tidak menerapkan fungsi transfer ke saluran Biru. Jika Anda mengatur ini ke FALSE, fungsi BlueLinearTransfer akan diterapkan ke saluran Biru. |
AlphayIntercept D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT |
FLOAT 0.0f |
Intersepsi Y dari fungsi linier untuk saluran Alpha. |
AlfaSlope D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE |
FLOAT 0.0f |
Kelopak fungsi linier untuk saluran Alpha. |
AlphaDisable D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE |
BOOL FALSE |
Jika Anda mengatur ini ke TRUE, efek tidak menerapkan fungsi transfer ke saluran Alpha. Jika Anda mengatur ini ke FALSE, fungsi AlphaLinearTransfer akan diterapkan ke saluran Alpha. |
ClampOutput D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT |
BOOL FALSE |
Apakah efek menjepit nilai warna menjadi 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, efeknya tidak akan menjepit nilai warna, tetapi efek lain dan permukaan output dapat menjepit nilai jika tidak memiliki presisi yang cukup tinggi. |
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