Bagikan melalui


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

Sebelum
gambar sebelum efek.
Sesudah
gambar setelah transformasi.
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 pramulatif. Efek menghasilkan bitmap alfa yang telah dikutip sebelumnya.

Properti efek

Nota

Untuk semua saluran properti transfer linier:

  • Intersepsi Y tidak terikat dan tidak bersatu.
  • Kelereng tidak terikat dan tidak bersatu.
Nama tampilan dan enumerasi indeks Ketik dan nilai default Deskripsi
RedyIntercept
D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT
MENGAPUNG
0.0f
Intersepsi Y dari fungsi linier untuk saluran Merah.
Kelopak Merah
D2D1_LINEARTRANSFER_PROP_RED_SLOPE
MENGAPUNG
1.0f
Kelereng fungsi linier untuk saluran Merah.
RedDisable
D2D1_LINEARTRANSFER_PROP_RED_DISABLE
BOOL
PALSU
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
MENGAPUNG
0.0f
Intersepsi Y dari fungsi linier untuk saluran Hijau.
Kelopak Hijau
D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE
MENGAPUNG
1.0f
Kelereng fungsi linier untuk saluran Hijau.
GreenDisable
D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE
BOOL
PALSU
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
MENGAPUNG
0.0f
Intersepsi Y dari fungsi linier untuk saluran Biru.
BlueSlope
D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE
MENGAPUNG
1.0f
Kelereng fungsi linier untuk saluran Biru.
BlueDisable
D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE
BOOL
PALSU
Jika Anda mengatur ini ke TRUE, efek tidak menerapkan fungsi transfer ke saluran Biru. Jika Anda mengatur ini ke FALSE, ini akan menerapkan fungsi BlueLinearTransfer ke saluran Biru.
AlphayIntercept
D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT
MENGAPUNG
0.0f
Intersepsi Y dari fungsi linier untuk saluran Alpha.
AlfaSlope
D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE
MENGAPUNG
0.0f
Kelereng fungsi linier untuk saluran Alpha.
AlphaDisable
D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE
BOOL
PALSU
Jika Anda mengatur ini ke TRUE, efek tidak menerapkan fungsi transfer ke saluran Alpha. Jika Anda mengatur ini ke FALSE, maka akan menerapkan fungsi AlphaLinearTransfer ke saluran Alpha.
ClampOutput
D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT
BOOL
PALSU
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.

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