Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A hisztogrameffektussal hisztogramot hozhat létre a bemeneti bitképhez a megadott számú tároló alapján.
Az effektus CLSID azonosítója CLSID_D2D1Histogram.
- példa
- Effektus tulajdonságai
- csatornaválasztók
- adatkimeneti
- megjegyzések
- követelmények
- Kapcsolódó témakörök
Példa
| Előtt |
|---|
|
| A hisztogram kimeneti adatainak grafikonja |
|
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));
Effektus tulajdonságai
Az alábbi egyenlettel generálhatja a kimenetet.
i kiértékelése 0-ról a dobozok számára történik. Az effektus hisztogramot hoz létre a 0 és 1 közötti képpontértékekhez. A tartományon kívüli értékek a tartományhoz vannak rögzítve. Egy adott gyűjtő tartománya a gyűjtők számától függ. Ez az effektus egyenes bitkép képpontokon működik. A bemeneti bitkép színcsatornái az alfa csatornával vannak elosztva az effektus kiszámításához.
| Név és index számbavételének megjelenítése | Típus és alapértelmezett érték | Leírás |
|---|---|---|
| NumBins D2D1_HISTOGRAM_PROP_NUM_BINS |
UINT32 256 |
Megadja a hisztogramhoz használt tárolók számát. Az adott gyűjtőbe eső intenzitásértékek tartománya a megadott gyűjtők számától függ. |
| ChannelSelect D2D1_HISTOGRAM_PROP_CHANNEL_SELECT |
D2D1_CHANNEL_SELECTOR D2D1_CHANNEL_SELECTOR_R |
Megadja a hisztogram létrehozásához használt csatornát. Ez az effektus egyetlen, a megadott csatornának megfelelő adatkimenettel rendelkezik. További információért lásd csatornaválasztókat. |
| Hisztogramoutput D2D1_HISTOGRAM_PROP_HISTOGRAM_OUTPUT |
FLOAT[] Csak kimeneti tulajdonság. |
A kimeneti tömb. |
Csatornaválasztók
| Felsorolás | Leírás |
|---|---|
| D2D1_CHANNEL_SELECTOR_R | Az effektus a vörös csatorna alapján hozza létre a hisztogram kimenetét. |
| D2D1_CHANNEL_SELECTOR_G | Az effektus a zöld csatorna alapján hozza létre a hisztogram kimenetét. |
| D2D1_CHANNEL_SELECTOR_B | Az effektus a kék csatorna alapján hozza létre a hisztogram kimenetét. |
| D2D1_CHANNEL_SELECTOR_A | Az effektus az alfa csatorna alapján hozza létre a hisztogram kimenetét. |
Adatkimenet
Ez az effektus egy FLOAT[] értéket ad ki, a megadott tárolók számának megfelelő elemek számával. A FLOAT[] minden eleme lebegőpontos. Az elem értéke a tárolóban lévő elemek számának felel meg.
Megjegyzések
Jegyzet
A CreateEffect metódus meghiúsul, ha az eszköz nem támogatja a DirectCompute-t, és HRESULT = D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES ad vissza. Az összes DirectX11- és DirectX10-kártya, amely támogatja a DirectCompute-ot, használhatja az effektust.
Követelmények
| Követelmény | Érték |
|---|---|
| Minimálisan támogatott ügyfél | Windows 8 és Platform Update for Windows 7 [asztali alkalmazások | Windows Áruházbeli alkalmazások] |
| Minimálisan támogatott kiszolgáló | Windows 8 és Platform Update for Windows 7 [asztali alkalmazások | Windows Áruházbeli alkalmazások] |
| Fejléc | d2d1effects.h |
| Könyvtár | d2d1.lib, dxguid.lib |