Efek histogram
Gunakan efek histogram untuk menghasilkan histogram untuk bitmap input berdasarkan jumlah bin yang ditentukan.
CLSID untuk efek ini CLSID_D2D1Histogram.
Contoh
Sebelumnya |
---|
![]() |
Grafik data output histogram |
![]() |
ComPtr<ID2D1Effect> histogramEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Histogram, &histogramEffect);
histogramEffect->SetInputEffect(0, m_2DAffineTransformEffectRight.Get());
histogramEffect->SetValue(D2D1_HISTOGRAM_PROP_CHANNEL_SELECT, D2D1_CHANNEL_SELECTOR_G);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(histogramEffect.Get());
m_d2dContext->EndDraw();
// The histogram data is only available once the effect has been 'drawn'.
int histogramBinCount;
HRESULT hr = histogramEffect->GetValue(D2D1_HISTOGRAM_PROP_NUM_BINS, &histogramBinCount);
float *histogramData = new float[histogramBinCount];
hr = histogramEffect->GetValue(D2D1_HISTOGRAM_PROP_HISTOGRAM_OUTPUT,
reinterpret_cast<BYTE*>(histogramData),
histogramBinCount * sizeof(float));
Properti efek
Berikut adalah persamaan untuk menghasilkan output.
i dievaluasi dari 0 hingga jumlah bin. Efek menghasilkan histogram untuk nilai piksel antara 0 dan 1. Nilai di luar rentang ini dijepit ke rentang. Rentang wadah tertentu tergantung pada jumlah wadah. Efek ini bekerja pada piksel bitmap lurus. Saluran warna bitmap input dibagi dengan saluran alfa untuk menghitung efek ini.
Nama tampilan dan enumerasi indeks | Ketik dan nilai default | Deskripsi |
---|---|---|
NumBins D2D1_HISTOGRAM_PROP_NUM_BINS |
UINT32 256 |
Menentukan jumlah bin yang digunakan untuk histogram. Rentang nilai intensitas yang termasuk dalam wadah tertentu bergantung pada jumlah wadah yang ditentukan. |
Pilihan Saluran D2D1_HISTOGRAM_PROP_CHANNEL_SELECT |
D2D1_CHANNEL_SELECTOR D2D1_CHANNEL_SELECTOR_R |
Menentukan saluran yang digunakan untuk menghasilkan histogram. Efek ini memiliki output data tunggal yang sesuai dengan saluran yang ditentukan. Lihat Pemilih saluran untuk informasi selengkapnya. |
HistogramOutput D2D1_HISTOGRAM_PROP_HISTOGRAM_OUTPUT |
FLOAT[] Properti output saja. |
Array output. |
Pemilih saluran
Enumeration | Deskripsi |
---|---|
D2D1_CHANNEL_SELECTOR_R | Efek menghasilkan output histogram berdasarkan saluran merah. |
D2D1_CHANNEL_SELECTOR_G | Efek menghasilkan output histogram berdasarkan saluran hijau. |
D2D1_CHANNEL_SELECTOR_B | Efek menghasilkan output histogram berdasarkan saluran biru. |
D2D1_CHANNEL_SELECTOR_A | Efek menghasilkan output histogram berdasarkan saluran alfa. |
Output data
Efek ini menghasilkan FLOAT[], dengan jumlah elemen yang sesuai dengan jumlah bin yang ditentukan. Setiap elemen dalam FLOAT[] adalah float. Nilai elemen sesuai dengan jumlah elemen dalam bin tersebut.
Keterangan
Catatan
Metode CreateEffect gagal jika perangkat tidak mendukung DirectCompute dan mengembalikan HRESULT = D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES. Semua kartu DirectX11 dan kartu DirectX10 yang mendukung DirectCompute dapat menggunakan efeknya.
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