다음을 통해 공유


Bitmap::GetHistogram 메서드(gdiplusheaders.h)

Bitmap::GetHistogram 메서드는 이 Bitmap 개체의 지정된 색 채널에 대해 하나 이상의 히스토그램을 반환합니다.

구문

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

매개 변수

[in] format

형식: HistogramFormat

히스토그램을 만들 채널을 지정하는 HistogramFormat 열거형의 요소입니다.

[in] NumberOfEntries

형식: UINT

channel0, channel1, channel2channel3에서 가리키는 각 배열의 요소 수(UINT 형식)를 지정하는 정수입니다. Bitmap::GetHistogram을 호출하기 전에 해당 배열에 대한 메모리를 할당해야 합니다. 필요한 요소 수를 확인하려면 Bitmap::GetHistogramSize를 호출합니다.

[out] channel0

형식: UINT*

첫 번째 히스토그램을 수신하는 UINT배열에 대한 포인터입니다.

[out] channel1

형식: UINT*

두 번째 히스토그램이 있는 경우 두 번째 히스토그램을 수신하는 UINT배열에 대한 포인터입니다. 두 번째 히스토그램이 없으면 NULL 을 전달합니다.

[out] channel2

형식: UINT*

세 번째 히스토그램이 있는 경우 세 번째 히스토그램을 수신하는 UINT배열에 대한 포인터입니다. 세 번째 히스토그램이 없으면 NULL 을 전달합니다.

[out] channel3

형식: UINT*

네 번째 히스토그램이 있는 경우 네 번째 히스토그램을 수신하는 UINT배열에 대한 포인터입니다. 네 번째 히스토그램이 없는 경우 NULL 을 전달합니다.

반환 값

형식: 상태

메서드가 성공하면 Status 열거형의 요소인 확인을 반환합니다.

메서드가 실패하면 Status 열거형의 다른 요소 중 하나를 반환합니다.

설명

반환되는 히스토그램 수는 format 매개 변수에 전달된 HistogramFormat 열거형 요소에 따라 달라집니다. 예를 들어 형식HistogramFormatRGB와 같으면 빨강, 녹색 및 파랑 채널에 각각 하나씩 세 개의 히스토그램이 반환됩니다. 이 경우 channel0 은 빨간색 채널 히스토그램을 수신하는 배열을 가리키고 channel1 은 녹색 채널 히스토그램을 수신하는 배열을 가리키고 channel2 는 파란색 채널 히스토그램을 수신하는 배열을 가리킵니다. HistogramFormatRGB의 경우 네 번째 히스토그램이 없으므로 channel3NULL로 설정해야 합니다. 자세한 내용은 HistogramFormat 열거형을 참조하세요.

예제

다음 예제에서는 BMP 파일에서 Bitmap 개체를 생성합니다. 코드는 비트맵에서 각각 빨간색, 녹색 및 파란색 채널에 대해 하나씩 세 개의 히스토그램을 검색합니다. 열거형 요소 히스토그램FormatRGB의 이름에 RGB의 순서를 적어 둡다. R이 첫 번째이므로 ch0에 해당합니다. 녹색은 두 번째이므로 ch1에 해당합니다. 파란색은 세 번째이므로 ch2에 해당합니다. 비트맵::GetHistogram에 전달된 마지막 매개 변수는 네 번째 히스토그램이 없으므로 NULL입니다.

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;

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 gdiplusheaders.h(Gdiplus.h 포함)
라이브러리 Gdiplus.lib
DLL Gdiplus.dll

참고 항목

Bitmap