Effet d’histogramme
Utilisez l’effet histogramme pour générer un histogramme pour l’image bitmap d’entrée en fonction du nombre spécifié d’emplacements.
Le CLSID de cet effet est CLSID _ D2D1Histogram.
- Exemple
- Propriétés d’effet
- Sélecteurs de canaux
- Sortie des données
- Remarques
- Configuration requise
- Rubriques connexes
Exemple
| Avant |
|---|
![]() |
| Graph des données de sortie de l’histogramme |
![]() |
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));
Propriétés d’effet
Voici l’équation permettant de générer la sortie.

la valeur de i est comprise entre 0 et le nombre d’emplacements. L’effet génère un histogramme pour les valeurs de pixel comprises entre 0 et 1. Les valeurs en dehors de cette plage sont ancrées à la plage. La plage d’un compartiment particulier dépend du nombre de compartiments. Cet effet fonctionne sur des pixels de bitmap droits. Les canaux de couleur de la bitmap d’entrée sont divisés par le canal alpha pour calculer cet effet.
| Nom complet et énumération d’index | Type et valeur par défaut | Description |
|---|---|---|
| NumBins D2D1 de l' _ histogramme _ prop _ nombre d' _ emplacements |
UINT32 256 |
Spécifie le nombre d’emplacements utilisés pour l’histogramme. La plage de valeurs d’intensité qui se trouvent dans un compartiment particulier dépend du nombre de compartiments spécifiés. |
| ChannelSelect _Sélection du _ _ canal _ d2d1 de l’histogramme |
_Sélecteur de canal d2d1 _ _Sélecteur de canal d2d1 _ _ R |
Spécifie le canal utilisé pour générer l’histogramme. Cet effet a une sortie de données unique correspondant au canal spécifié. Pour plus d’informations, consultez sélecteurs de canaux . |
| HistogramOutput Sortie de l’histogramme D2D1 de l' _ histogramme _ _ _ |
DISSOCIÉ[] Propriété de sortie uniquement. |
Tableau de sortie. |
Sélecteurs de canaux
| Énumération | Description |
|---|---|
| _Sélecteur de canal d2d1 _ _ R | L’effet génère la sortie de l’histogramme en fonction du canal rouge. |
| _Sélecteur de canal d2d1 _ _ G | L’effet génère la sortie de l’histogramme en fonction du canal vert. |
| _Sélecteur de canal d2d1 _ _ B | L’effet génère la sortie de l’histogramme en fonction du canal bleu. |
| _ _ Sélecteur de canal d2d1 _ A | L’effet génère la sortie de l’histogramme en fonction du canal alpha. |
Sortie des données
Cet effet génère une valeur FLOAT [ ] , avec le nombre d’éléments correspondant au nombre d’emplacements spécifiés. Chaque élément de la [ ] valeur float est un float. La valeur de l’élément correspond au nombre d’éléments dans cet emplacement.
Notes
Notes
La méthode CreateEffect échoue si l’appareil ne prend pas en charge DirectCompute et retourne HRESULT = D2DERR _ fonctionnalités d’appareil insuffisantes _ _ . Toutes les cartes DirectX11 et DirectX10 qui prennent en charge DirectCompute peuvent utiliser l’effet.
Spécifications
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge | mise à jour Windows 8 et de plateforme pour les applications de bureau Windows 7 Windows les applications du windows [ | Store] |
| Serveur minimal pris en charge | mise à jour Windows 8 et de plateforme pour les applications de bureau Windows 7 Windows les applications du windows [ | Store] |
| En-tête | d2d1effects. h |
| Bibliothèque | d2d1. lib, dxguid. lib |

