Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Usare l'effetto istogramma per generare un istogramma per la bitmap di input in base al numero specificato di bin.
Il CLSID per questo effetto è CLSID_D2D1Histogram.
- esempio di
- proprietà effetto
- selettori del canale
- Output dei dati
- osservazioni
- requisiti
- argomenti correlati
Esempio
| Prima |
|---|
|
| Grafico dei dati di output dell'istogramma |
|
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));
Proprietà dell'effetto
Ecco l'equazione per generare l'output.
viene valutato da 0 al numero di contenitori. L'effetto genera un istogramma per i valori pixel compresi tra 0 e 1. I valori al di fuori di questo intervallo sono bloccati all'intervallo. L'intervallo di un bucket specifico dipende dal numero di bucket. Questo effetto funziona sui pixel bitmap dritti. I canali di colore della bitmap di input sono divisi per il canale alfa per calcolare questo effetto.
| Enumerazione del nome visualizzato e dell'indice | Tipo e valore predefinito | Descrizione |
|---|---|---|
| NumBins D2D1_HISTOGRAM_PROP_NUM_BINS |
UINT32 256 |
Specifica il numero di bin utilizzati per l'istogramma. L'intervallo di valori di intensità che rientrano in un bucket specifico dipende dal numero di bucket specificati. |
| ChannelSelect D2D1_HISTOGRAM_PROP_CHANNEL_SELECT |
D2D1_CHANNEL_SELECTOR D2D1_CHANNEL_SELECTOR_R |
Specifica il canale utilizzato per generare l'istogramma. Questo effetto ha un singolo output di dati corrispondente al canale specificato. Per altre informazioni, vedi selettori di canale. |
| HistogramOutput D2D1_HISTOGRAM_PROP_HISTOGRAM_OUTPUT |
FLOAT[] Solo proprietà di output. |
Matrice di output. |
Selettori di canale
| Enumerazione | Descrizione |
|---|---|
| D2D1_CHANNEL_SELECTOR_R | L'effetto genera l'output dell'istogramma in base al canale rosso. |
| D2D1_CHANNEL_SELECTOR_G | L'effetto genera l'output dell'istogramma in base al canale verde. |
| D2D1_CHANNEL_SELECTOR_B | L'effetto genera l'output dell'istogramma in base al canale blu. |
| D2D1_CHANNEL_SELECTOR_A | L'effetto genera l'output dell'istogramma in base al canale alfa. |
Output dei dati
Questo effetto restituisce float[], con il numero di elementi corrispondenti al numero di bin specificati. Ogni elemento in FLOAT[] è un float. Il valore dell'elemento corrisponde al numero di elementi in tale contenitore.
Osservazioni
Nota
Il metodoCreateEffectha esito negativo se il dispositivo non supporta DirectCompute e restituisce HRESULT = D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES. Tutte le schede DirectX11 e DirectX10 che supportano DirectCompute possono usare l'effetto.
Fabbisogno
| Requisito | Valore |
|---|---|
| Client minimo supportato | Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store] |
| Server minimo supportato | Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store] |
| Intestazione | d2d1effects.h |
| Biblioteca | d2d1.lib, dxguid.lib |