Partager via


Bitmap::GetHistogram, méthode (gdiplusheaders.h)

La méthode Bitmap::GetHistogram retourne un ou plusieurs histogrammes pour les canaux de couleurs spécifiés de cet objet Bitmap .

Syntaxe

Status GetHistogram(
  [in]  HistogramFormat format,
  [in]  UINT            NumberOfEntries,
  [out] UINT            *channel0,
  [out] UINT            *channel1,
  [out] UINT            *channel2,
  [out] UINT            *channel3
);

Paramètres

[in] format

Type : HistogramFormat

Élément de l’énumération HistogramFormat qui spécifie les canaux pour lesquels les histogrammes seront créés.

[in] NumberOfEntries

Type : UINT

Entier qui spécifie le nombre d’éléments (de type UINT) dans chacun des tableaux pointés par channel0, channel1, channel2 et channel3. Vous devez allouer de la mémoire à ces tableaux avant d’appeler Bitmap::GetHistogram. Pour déterminer le nombre d’éléments requis, appelez Bitmap::GetHistogramSize.

[out] channel0

Type : UINT*

Pointeur vers un tableau de UINTqui reçoit le premier histogramme.

[out] channel1

Type : UINT*

Pointeur vers un tableau de UINTqui reçoit le deuxième histogramme s’il existe un deuxième histogramme. Passez null s’il n’y a pas de deuxième histogramme.

[out] channel2

Type : UINT*

Pointeur vers un tableau de UINTqui reçoit le troisième histogramme s’il existe un troisième histogramme. Passez null s’il n’y a pas de troisième histogramme.

[out] channel3

Type : UINT*

Pointeur vers un tableau de UINTqui reçoit le quatrième histogramme s’il existe un quatrième histogramme. Passez null s’il n’y a pas de quatrième histogramme.

Valeur retournée

Type : État

Si la méthode réussit, elle retourne Ok, qui est un élément de l’énumération Status .

Si la méthode échoue, elle retourne l’un des autres éléments de l’énumération Status .

Notes

Le nombre d’histogrammes retournés dépend de l’élément d’énumération HistogramFormat passé au paramètre de format . Par exemple, si le format est égal à HistogramFormatRGB, trois histogrammes sont retournés : un chacun pour les canaux rouge, vert et bleu. Dans ce cas, channel0 pointe vers le tableau qui reçoit l’histogramme de canal rouge, channel1 pointe vers le tableau qui reçoit l’histogramme de canal vert et channel2 pointe vers le tableau qui reçoit l’histogramme de canal bleu. Pour HistogramFormatRGB, channel3 doit être défini sur NULL , car il n’y a pas de quatrième histogramme. Pour plus d’informations, consultez l’énumération HistogramFormat .

Exemples

L’exemple suivant construit un objet Bitmap à partir d’un fichier BMP. Le code récupère trois histogrammes de la bitmap : un pour les canaux rouge, vert et bleu. Notez l’ordre RVB dans le nom de l’élément d’énumération HistogramFormatRGB. R est le premier, donc il correspond à ch0. Le vert est le deuxième, donc il correspond à ch1. Le bleu est troisième, donc il correspond à ch2. Le paramètre final passé à Bitmap::GetHistogram est NULL , car il n’y a pas de quatrième histogramme.

Bitmap myBitmap(L"Picture.bmp");

UINT numEntries;
myBitmap.GetHistogramSize(HistogramFormatRGB, &numEntries);

UINT* ch0 = new UINT[numEntries];
UINT* ch1 = new UINT[numEntries];
UINT* ch2 = new UINT[numEntries];

myBitmap.GetHistogram(HistogramFormatRGB, numEntries, ch0, ch1, ch2, NULL);

// Print the histogram values for the three channels: red, green, blue.
for(UINT j = 0; j < numEntries; ++j)
{
   printf("%u\t%u\t%u\t%u\n", j, ch0[j], ch1[j], ch2[j]);
}

delete ch0;
delete ch1;
delete ch2;

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête gdiplusheaders.h (inclure Gdiplus.h)
Bibliothèque Gdiplus.lib
DLL Gdiplus.dll

Voir aussi

Bitmap