Bitmap::Metode GetHistogram (gdiplusheaders.h)

Metode Bitmap::GetHistogram mengembalikan satu atau beberapa histogram untuk saluran warna tertentu dari objek Bitmap ini.

Sintaks

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

Parameter

[in] format

Jenis: HistogramFormat

Elemen enumerasi HistogramFormat yang menentukan saluran yang histogramnya akan dibuat.

[in] NumberOfEntries

Jenis: UINT

Bilangan bulat yang menentukan jumlah elemen (jenis UINT) di setiap array yang diarahkan oleh channel0, channel1, channel2, dan channel3. Anda harus mengalokasikan memori untuk array tersebut sebelum memanggil Bitmap::GetHistogram. Untuk menentukan jumlah elemen yang diperlukan, panggil Bitmap::GetHistogramSize.

[out] channel0

Jenis: UINT*

Penunjuk ke array UINTyang menerima histogram pertama.

[out] channel1

Jenis: UINT*

Pointer ke array UINTyang menerima histogram kedua jika ada histogram kedua. Lulus NULL jika tidak ada histogram kedua.

[out] channel2

Jenis: UINT*

Penunjuk ke array UINTyang menerima histogram ketiga jika ada histogram ketiga. Lulus NULL jika tidak ada histogram ketiga.

[out] channel3

Jenis: UINT*

Penunjuk ke array UINTyang menerima histogram keempat jika ada histogram keempat. Lulus NULL jika tidak ada histogram keempat.

Menampilkan nilai

Jenis: Status

Jika metode berhasil, metode mengembalikan Ok, yang merupakan elemen dari enumerasi Status .

Jika metode gagal, metode mengembalikan salah satu elemen lain dari enumerasi Status .

Keterangan

Jumlah histogram yang dikembalikan tergantung pada elemen enumerasi HistogramFormat yang diteruskan ke parameter format . Misalnya, jika format sama dengan HistogramFormatRGB, maka tiga histogram dikembalikan: masing-masing satu untuk saluran merah, hijau, dan biru. Dalam hal ini, channel0 menunjuk ke array yang menerima histogram saluran merah, channel1 menunjuk ke array yang menerima histogram saluran hijau, dan channel2 menunjuk ke array yang menerima histogram blue-channel. Untuk HistogramFormatRGB, channel3 harus diatur ke NULL karena tidak ada histogram keempat. Untuk detail selengkapnya, lihat enumerasi HistogramFormat .

Contoh

Contoh berikut membuat objek Bitmap dari file BMP. Kode ini mengambil tiga histogram dari bitmap: masing-masing satu untuk saluran merah, hijau, dan biru. Perhatikan urutan RGB atas nama elemen enumerasi HistogramFormatRGB. R adalah yang pertama, sehingga sesuai dengan ch0. Hijau adalah yang kedua, sehingga sesuai dengan ch1. Biru adalah yang ketiga, sehingga sesuai dengan ch2. Parameter akhir yang diteruskan ke Bitmap::GetHistogram adalah NULL karena tidak ada histogram keempat.

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;

Persyaratan

   
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header gdiplusheaders.h (termasuk Gdiplus.h)
Pustaka Gdiplus.lib
DLL Gdiplus.dll

Lihat juga

Bitmap