GetDIBits 함수(wingdi.h)

GetDIBits 함수는 지정된 호환 비트맵의 비트를 검색하고 지정된 형식을 사용하여 버퍼에 DIB로 복사합니다.

구문

int GetDIBits(
  [in]      HDC          hdc,
  [in]      HBITMAP      hbm,
  [in]      UINT         start,
  [in]      UINT         cLines,
  [out]     LPVOID       lpvBits,
  [in, out] LPBITMAPINFO lpbmi,
  [in]      UINT         usage
);

매개 변수

[in] hdc

디바이스 컨텍스트에 대한 핸들입니다.

[in] hbm

비트맵에 대한 핸들입니다. 호환되는 DDB(비트맵)여야 합니다.

[in] start

검색할 첫 번째 검사 줄입니다.

[in] cLines

검색할 검사 줄의 수입니다.

[out] lpvBits

비트맵 데이터를 받을 버퍼에 대한 포인터입니다. 이 매개 변수가 NULL이면 함수는 비트맵의 차원과 형식을 lpbmi 매개 변수가 가리키는 BITMAPINFO 구조체에 전달합니다.

[in, out] lpbmi

DIB 데이터에 원하는 형식을 지정하는 BITMAPINFO 구조체에 대한 포인터입니다.

[in] usage

BITMAPINFO 구조체의 bmiColors 멤버 형식입니다. 다음 값 중 하나여야 합니다.

의미
DIB_PAL_COLORS
색 테이블은 현재 논리 팔레트에 16비트 인덱스의 배열로 구성되어야 합니다.
DIB_RGB_COLORS
색 테이블은 리터럴 빨강, 녹색, 파랑(RGB) 값으로 구성되어야 합니다.

반환 값

lpvBits 매개 변수가 NULL이 아니고 함수가 성공하면 반환 값은 비트맵에서 복사된 검사 줄의 수입니다.

lpvBits 매개 변수가 NULL이고 GetDIBitsBITMAPINFO 구조를 성공적으로 채우는 경우 반환 값은 0이 아닌 값입니다.

함수가 실패하면 반환 값은 0입니다.

이 함수는 다음 값을 반환할 수 있습니다.

반환 코드 설명
ERROR_INVALID_PARAMETER
하나 이상의 입력 매개 변수가 잘못되었습니다.

설명

DIB에 대해 요청된 형식이 내부 형식과 일치하면 비트맵에 대한 RGB 값이 복사됩니다. 요청된 형식이 내부 형식과 일치하지 않으면 색 테이블이 합성됩니다. 다음 표에서는 각 형식에 대해 합성된 색 테이블에 대해 설명합니다.

의미
1_BPP 색 테이블은 검은색과 흰색 항목으로 구성됩니다.
4_BPP 색 테이블은 표준 VGA 색상표와 동일한 색상의 혼합으로 구성됩니다.
8_BPP 색 테이블은 GDI에서 정의한 256가지 색의 일반적인 조합으로 구성됩니다. (이 256가지 색에는 기본 논리 팔레트에 있는 20가지 색이 포함되어 있습니다.)
24_BPP 색 테이블이 반환되지 않습니다.
 

lpvBits 매개 변수가 유효한 포인터인 경우 BITMAPINFOHEADER 구조체의 처음 6개 멤버를 초기화하여 DIB의 크기와 형식을 지정해야 합니다. 검색 줄은 RLE 압축 비트맵을 제외하고 DWORD 에 맞춰야 합니다.

상향식 DIB는 높이를 양수로 설정하고 하향식 DIB는 높이를 음수로 설정하여 지정합니다. 비트맵 색 테이블은 BITMAPINFO 구조체에 추가됩니다.

lpvBitsNULL인 경우 GetDIBitslpbi가 가리키는 첫 번째 구조체의 첫 번째 멤버를 검사합니다. 이 멤버는 BITMAPCOREHEADER 또는 BITMAPINFOHEADER 구조체의 크기(바이트)를 지정해야 합니다. 함수는 지정된 크기를 사용하여 나머지 멤버를 초기화하는 방법을 결정합니다.

lpvBitsNULL이고 BITMAPINFO의 비트 개수 멤버가 0으로 초기화된 경우 GetDIBits는 색 테이블 없이 BITMAPINFOHEADER 구조 또는 BITMAPCOREHEADER를 채웁니다. 이 기술은 비트맵 특성을 쿼리하는 데 사용할 수 있습니다.

애플리케이션이 이 함수를 호출할 때 hbmp 매개 변수로 식별된 비트맵을 디바이스 컨텍스트로 선택해서는 안 됩니다.

상향식 DIB의 원점은 비트맵의 왼쪽 아래 모서리입니다. 하향식 DIB의 원점은 왼쪽 위 모서리입니다.

예제

예제는 이미지 캡처를 참조하세요.

요구 사항

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

추가 정보

BITMAPCOREHEADER

BITMAPINFO

BITMAPINFOHEADER

비트맵 함수

비트맵 개요

SetDIBits