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 |