Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Belirtilen bölme sayısına göre giriş bit eşlemi için histogram oluşturmak için histogram efektini kullanın.
Bu etki için CLSID CLSID_D2D1Histogram.
Örnek
| Önce |
|---|
Efektin önüne görüntüyü ![]() |
| Histogram çıktı verilerinin grafiği |
Dönüştürmeden sonra görüntüyü ![]() |
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));
Efekt özellikleri
Çıktıyı oluşturmak için denklem aşağıdadır.
Histogram efektinin çıkışını oluşturmak için denklemi 
i 0'dan bölme sayısına kadar değerlendirilir. Bu etki, 0 ile 1 arasındaki piksel değerleri için bir histogram oluşturur. Bu aralığın dışındaki değerler aralığa sıkıştırılır. Belirli bir demetin aralığı, demet sayısına bağlıdır. Bu efekt düz bit eşlem piksellerinde çalışır. Bu etkiyi hesaplamak için giriş bit eşleminin renk kanalları alfa kanalına bölünür.
| Görünen ad ve dizin numaralandırması | Tür ve varsayılan değer | Açıklama |
|---|---|---|
| NumBins D2D1_HISTOGRAM_PROP_NUM_BINS |
UINT32 256 |
Histogram için kullanılan bölme sayısını belirtir. Belirli bir demete düşen yoğunluk değerleri aralığı, belirtilen demetlerin sayısına bağlıdır. |
| ChannelSelect D2D1_HISTOGRAM_PROP_CHANNEL_SELECT |
D2D1_CHANNEL_SELECTOR D2D1_CHANNEL_SELECTOR_R |
Histogramı oluşturmak için kullanılan kanalı belirtir. Bu etki, belirtilen kanala karşılık gelen tek bir veri çıkışına sahiptir. Daha fazla bilgi için bkz. Kanal seçicileri. |
| HistogramOutput D2D1_HISTOGRAM_PROP_HISTOGRAM_OUTPUT |
FLOAT[] Yalnızca output özelliği. |
Çıkış dizisi. |
Kanal seçicileri
| Sayım | Açıklama |
|---|---|
| D2D1_CHANNEL_SELECTOR_R | Etki, kırmızı kanala göre histogram çıkışını oluşturur. |
| D2D1_CHANNEL_SELECTOR_G | Bu etki, yeşil kanala göre histogram çıkışını oluşturur. |
| D2D1_CHANNEL_SELECTOR_B | Bu etki, mavi kanalı temel alan histogram çıkışını oluşturur. |
| D2D1_CHANNEL_SELECTOR_A | Etki, alfa kanalını temel alan histogram çıkışını oluşturur. |
Veri çıkışı
Bu efekt, belirtilen bölme sayısına karşılık gelen öğe sayısıyla birlikte float[] çıkışını verir. FLOAT[] içindeki her öğe bir float'dır. öğesinin değeri, bu bölmedeki öğelerin sayısına karşılık gelir.
Açıklamalar
Not
Cihaz DirectCompute'u desteklemez ve HRESULT = D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES döndürürse CreateEffect yöntemi başarısız olur. DirectCompute'ı destekleyen tüm DirectX11 kartları ve DirectX10 kartları efekti kullanabilir.
Gereksinim -leri
| Gereksinim | Değer |
|---|---|
| Desteklenen en düşük istemci | Windows 7 için Windows 8 ve Platform Güncelleştirmesi [masaüstü uygulamaları | Windows Mağazası uygulamaları] |
| Desteklenen en düşük sunucu | Windows 7 için Windows 8 ve Platform Güncelleştirmesi [masaüstü uygulamaları | Windows Mağazası uygulamaları] |
| Üstbilgi | d2d1effects.h |
| Kütüphane | d2d1.lib, dxguid.lib |

