Efek transfer tabel
Gunakan efek transfer tabel untuk memetakan intensitas warna gambar menggunakan fungsi transfer yang dibuat dari menginterpolasi daftar nilai yang Anda berikan.
CLSID untuk efek ini CLSID_D2D1TableTransfer.
Contoh gambar
Gambar di sini menunjukkan input dan output efek transfer tabel.
Sebelumnya |
---|
![]() |
Sesudahnya |
![]() |
ComPtr<ID2D1Effect> tableTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1TableTransfer, &tableTransferEffect);
tableTransferEffect->SetInput(0, bitmap);
float table[2] = {0.75f, 1.0f};
tableTransferEffect->SetValue(D2D1_TABLETRANSFER_PROP_BLUE_TABLE, table);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(tableTransferEffect.Get());
m_d2dContext->EndDraw();
Fungsi transfer didasarkan pada daftar input V=(V0,V1,V2,V3, V? ,VN) di mana N adalah jumlah elemen - 1.
Intensitas piksel input direpresentasikan sebagai C. Intensitas piksel output, C dapat dihitung dengan persamaan.
Untuk nilai C, pilih nilai k, sehingga: k/N = C < (k+1)/N
Output C dihitung menggunakan persamaan berikut: C' = V? + (C - k/N) * N * (V??? 1? - V?)
Efek ini bekerja pada gambar alfa lurus dan tersimpan sebelumnya. Efek menghasilkan bitmap alfa yang telah ditentukan sebelumnya.
Berikut adalah tampilan grafik fungsi transfer tabel jika properti tabel diatur ke [0.0, 0.25, 1.0]
.
Properti efek
Catatan
Nilai semua saluran properti transfer tabel tidak bersatu dan memiliki minimal 0,0 dan maksimum 1,0.
Nama tampilan dan enumerasi indeks | Ketik dan nilai default | Deskripsi |
---|---|---|
RedTable D2D1_TABLETRANSFER_PROP_RED_TABLE |
FLOAT[] {0.0f, 1.0f} |
Daftar nilai yang digunakan untuk menentukan fungsi transfer untuk saluran Merah. |
RedDisable D2D1_TABLETRANSFER_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, fungsi RedTableTransfer akan diterapkan ke saluran Merah. |
GreenTable D2D1_TABLETRANSFER_PROP_GREEN_TABLE |
FLOAT[] {0.0f, 1.0f} |
Daftar nilai yang digunakan untuk menentukan fungsi transfer untuk saluran Hijau. |
GreenDisable D2D1_TABLETRANSFER_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 GreenTableTransfer akan diterapkan ke saluran Hijau. |
BlueTable D2D1_TABLETRANSFER_PROP_BLUE_TABLE |
FLOAT[] {0.0f, 1.0f} |
Daftar nilai yang digunakan untuk menentukan fungsi transfer untuk saluran Biru. |
BlueDisable D2D1_TABLETRANSFER_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 BlueTableTransfer akan diterapkan ke saluran Biru. |
AlphaTable D2D1_TABLE_TRANSFER_PROP_ALPHA_TABLE |
FLOAT[] {0.0f, 1.0f} |
Daftar nilai yang digunakan untuk menentukan fungsi transfer untuk saluran Alpha. |
AlphaDisable D2D1_TABLETRANSFER_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 AlphaTableTransfer akan diterapkan ke saluran Alpha. |
ClampOutput D2D1_TABLETRANSFER_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