Bitmap::GetHistogram-Methode (gdiplusheaders.h)

Die Bitmap::GetHistogram-Methode gibt mindestens ein Histogramm für die angegebenen Farbkanäle dieses Bitmap-Objekts zurück.

Syntax

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

Parameter

[in] format

Typ: HistogramFormat

Element der HistogramFormat-Enumeration , das die Kanäle angibt, für die Histogramme erstellt werden.

[in] NumberOfEntries

Typ: UINT

Eine ganze Zahl, die die Anzahl der Elemente (vom Typ UINT) in jedem der Arrays angibt, auf die von channel0, channel1, channel2 und channel3 verwiesen wird. Sie müssen Arbeitsspeicher für diese Arrays zuordnen, bevor Sie Bitmap::GetHistogram aufrufen. Um die erforderliche Anzahl von Elementen zu bestimmen, rufen Sie Bitmap::GetHistogramSize auf.

[out] channel0

Typ: UINT*

Zeiger auf ein Array von UINTs, das das erste Histogramm empfängt.

[out] channel1

Typ: UINT*

Zeiger auf ein Array von UINTs, das das zweite Histogramm empfängt, wenn ein zweites Histogramm vorhanden ist. Übergeben Sie NULL , wenn kein zweites Histogramm vorhanden ist.

[out] channel2

Typ: UINT*

Zeiger auf ein Array von UINTs, das das dritte Histogramm empfängt, wenn ein drittes Histogramm vorhanden ist. Übergeben Sie NULL , wenn kein drittes Histogramm vorhanden ist.

[out] channel3

Typ: UINT*

Zeiger auf ein Array von UINTs, das das vierte Histogramm empfängt, wenn ein viertes Histogramm vorhanden ist. Übergeben Sie NULL , wenn kein viertes Histogramm vorhanden ist.

Rückgabewert

Typ: Status

Wenn die Methode erfolgreich ist, gibt sie OK zurück, ein Element der Status-Enumeration .

Wenn die Methode fehlschlägt, wird eines der anderen Elemente der Status-Enumeration zurückgegeben.

Hinweise

Die Anzahl der zurückgegebenen Histogramme hängt vom HistogramFormat-Enumerationselement ab, das an den format-Parameter übergeben wird. Wenn das Format z. B. histogramFormatRGB entspricht, werden drei Histogramme zurückgegeben: jeweils eins für die roten, grünen und blauen Kanäle. In diesem Fall zeigt channel0 auf das Array, das das rotkanalige Histogramm empfängt, channel1 verweist auf das Array, das das Grünkanalhisttogramm empfängt, und channel2 auf das Array, das das blaue Kanalhistogramm empfängt. Für HistogrammFormatRGB muss channel3 auf NULL festgelegt werden, da kein viertes Histogramm vorhanden ist. Weitere Informationen finden Sie in der HistogramFormat-Enumeration .

Beispiele

Im folgenden Beispiel wird ein Bitmap-Objekt aus einer BMP-Datei erstellt. Der Code ruft drei Histogramme aus der Bitmap ab: jeweils eines für die roten, grünen und blauen Kanäle. Notieren Sie sich die Reihenfolge von RGB im Namen des Enumerationselements HistogramFormatRGB. R steht an erster Stelle, daher entspricht es ch0. Grün ist zweiter, entspricht also ch1. Blau ist dritter, entspricht also ch2. Der letzte an Bitmap::GetHistogram übergebene Parameter ist NULL , da kein viertes Histogramm vorhanden ist.

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;

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile gdiplusheaders.h (include Gdiplus.h)
Bibliothek Gdiplus.lib
DLL Gdiplus.dll

Weitere Informationen

Bitmap