BITMAPV4HEADER 구조체(wingdi.h)

BITMAPV4HEADER 구조는 비트맵 정보 헤더 파일입니다. BITMAPINFOHEADER 구조체의 확장 버전입니다.

애플리케이션은 추가 기능에 BITMAPV5HEADER 구조를 사용할 수 있습니다.

구문

typedef struct {
  DWORD        bV4Size;
  LONG         bV4Width;
  LONG         bV4Height;
  WORD         bV4Planes;
  WORD         bV4BitCount;
  DWORD        bV4V4Compression;
  DWORD        bV4SizeImage;
  LONG         bV4XPelsPerMeter;
  LONG         bV4YPelsPerMeter;
  DWORD        bV4ClrUsed;
  DWORD        bV4ClrImportant;
  DWORD        bV4RedMask;
  DWORD        bV4GreenMask;
  DWORD        bV4BlueMask;
  DWORD        bV4AlphaMask;
  DWORD        bV4CSType;
  CIEXYZTRIPLE bV4Endpoints;
  DWORD        bV4GammaRed;
  DWORD        bV4GammaGreen;
  DWORD        bV4GammaBlue;
} BITMAPV4HEADER, *LPBITMAPV4HEADER, *PBITMAPV4HEADER;

멤버

bV4Size

구조체에 필요한 바이트 수입니다. 애플리케이션은 이 멤버를 사용하여 사용 중인 비트맵 정보 헤더 구조를 결정해야 합니다.

bV4Width

비트맵의 너비(픽셀)입니다.

bV4Compression이 BI_JPEG 또는 BI_PNG 경우 bV4Width는 JPEG 또는 PNG 이미지의 너비를 픽셀 단위로 지정합니다.

bV4Height

비트맵의 높이(픽셀)입니다. bV4Height가 양수이면 비트맵은 상향식 DIB이고 원점은 왼쪽 아래 모서리입니다. bV4Height가 음수이면 비트맵은 하향식 DIB이고 원본은 왼쪽 위 모서리입니다.

bV4Height가 하향식 DIB를 나타내는 음수이면 bV4Compression은 BI_RGB 또는 BI_BITFIELDS 합니다. 하향식 DIB는 압축할 수 없습니다.

bV4Compression이 BI_JPEG 또는 BI_PNG 경우 bV4Height는 JPEG 또는 PNG 이미지의 높이를 픽셀 단위로 지정합니다.

bV4Planes

대상 디바이스의 평면 수입니다. 이 값은 1로 설정해야 합니다.

bV4BitCount

픽셀당 비트 수입니다. BITMAPV4HEADER 구조체의 bV4BitCount 멤버는 각 픽셀을 정의하는 비트 수와 비트맵의 최대 색 수를 결정합니다. 이 멤버는 다음 값 중 하나여야 합니다.

의미
0 픽셀당 비트 수가 지정되거나 JPEG 또는 PNG 파일 형식으로 암시됩니다.
1 비트맵은 단색이며 BITMAPINFObmiColors 멤버에는 두 개의 항목이 포함됩니다. 비트맵 배열의 각 비트는 픽셀을 나타냅니다. 비트가 명확하면 픽셀은 bmiColors 테이블에서 첫 번째 항목의 색으로 표시됩니다. 비트가 설정되면 픽셀의 표에 있는 두 번째 항목의 색이 있습니다.
4 비트맵은 최대 16가지 색을 가지며 BITMAPINFObmiColors 멤버에는 최대 16개의 항목이 포함됩니다. 비트맵의 각 픽셀은 색 테이블에 4비트 인덱스로 표시됩니다. 예를 들어 비트맵의 첫 번째 바이트가 0x1F 경우 바이트는 2픽셀을 나타냅니다. 첫 번째 픽셀은 두 번째 테이블 항목의 색을 포함하고 두 번째 픽셀은 16번째 테이블 항목의 색을 포함합니다.
8 비트맵은 최대 256가지 색을 가지며 BITMAPINFObmiColors 멤버에는 최대 256개의 항목이 포함됩니다. 이 경우 배열의 각 바이트는 단일 픽셀을 나타냅니다.
16 비트맵의 최대 색은 2^16개입니다. BITMAPV4HEADER 구조체의 bV4Compression 멤버가 BI_RGB 경우 BITMAPINFObmiColors 멤버는 NULL입니다. 비트맵 배열의 각 WORD 는 단일 픽셀을 나타냅니다. 빨간색, 녹색 및 파란색의 상대적 강도는 각 색 구성 요소에 대해 5비트로 표시됩니다. 파란색 값은 가장 중요한 5비트이며 녹색과 빨간색의 경우 각각 5비트입니다. 가장 중요한 비트는 사용되지 않습니다. bmiColors 색 테이블은 색상표 기반 디바이스에서 사용되는 색을 최적화하는 데 사용되며, BITMAPV4HEADERbV4ClrUsed 멤버가 지정한 항목 수를 포함해야 합니다. BITMAPV4HEADERbV4Compression 멤버가 BI_BITFIELDS 경우 bmiColors 멤버에는 각 픽셀의 빨강, 녹색 및 파란색 구성 요소를 지정하는 세 개의 DWORD 색 마스크가 포함됩니다. 비트맵 배열의 각 WORD 는 단일 픽셀을 나타냅니다.
24 비트맵의 색은 최대 2^24개이고 BITMAPINFObmiColors 멤버는 NULL입니다. 비트맵 배열의 각 3 바이트 트리플렛은 픽셀에 대해 파란색, 녹색 및 빨간색의 상대적 강도를 나타냅니다. bmiColors 색 테이블은 색상표 기반 디바이스에서 사용되는 색을 최적화하는 데 사용되며, BITMAPV4HEADERbV4ClrUsed 멤버가 지정한 항목 수를 포함해야 합니다.
32 비트맵의 색은 최대 2^32개입니다. BITMAPV4HEADER bV4Compression 멤버가 BI_RGB 경우 BITMAPINFObmiColors 멤버는 NULL입니다. 비트맵 배열의 각 DWORD 는 픽셀에 대해 파란색, 녹색 및 빨간색의 상대적 강도를 나타냅니다. 파란색 값은 가장 중요한 8비트이고 녹색과 빨간색의 경우 각각 8비트입니다. 각 DWORD 의 높은 바이트는 사용되지 않습니다. bmiColors 색 테이블은 색상표 기반 디바이스에서 사용되는 색을 최적화하는 데 사용되며, BITMAPV4HEADERbV4ClrUsed 멤버가 지정한 항목 수를 포함해야 합니다. BITMAPV4HEADERbV4Compression 멤버가 BI_BITFIELDS 경우 bmiColors 멤버에는 각 픽셀의 빨강, 녹색 및 파란색 구성 요소를 지정하는 세 개의 DWORD 색 마스크가 포함됩니다. 비트맵 배열의 각 DWORD 는 단일 픽셀을 나타냅니다.

bV4V4Compression

압축된 상향식 비트맵에 대한 압축 유형입니다(하향식 DIB는 압축할 수 없음). 이 멤버는 다음 값 중 하나일 수 있습니다.

Description
BI_RGB 압축되지 않은 형식입니다.
BI_RLE8 8bpp의 비트맵에 대한 RLE(실행 길이 인코딩) 형식입니다. 압축 형식은 개수 바이트와 색 인덱스가 포함된 바이트로 구성된 2 바이트 형식입니다. 자세한 내용은 비트맵 압축을 참조하세요.
BI_RLE4 4bpp의 비트맵에 대한 RLE 형식입니다. 압축 형식은 카운트 바이트와 두 개의 단어 길이 색 인덱스로 구성된 2 바이트 형식입니다. 자세한 내용은 비트맵 압축을 참조하세요.
BI_BITFIELDS 비트맵이 압축되지 않도록 지정합니다. bV4RedMask, bV4GreenMaskbV4BlueMask 멤버는 각 픽셀에 대해 빨간색, 녹색 및 파란색 구성 요소를 지정합니다. 16-bpp 및 32bpp 비트맵과 함께 사용할 때 유효합니다.
BI_JPEG 이미지가 JPEG 파일 교환 형식을 사용하여 압축되도록 지정합니다. JPEG 압축은 손실에 대한 압축을 절상합니다. 눈에 띄는 손실이 거의 없는 20:1의 압축 비율을 달성할 수 있습니다.
BI_PNG 이미지가 PNG 파일 교환 형식을 사용하여 압축되도록 지정합니다.

bV4SizeImage

이미지의 크기(바이트)입니다. BI_RGB 비트맵의 경우 0으로 설정할 수 있습니다.

bV4Compression이 BI_JPEG 또는 BI_PNG 경우 bV4SizeImage는 JPEG 또는 PNG 이미지 버퍼의 크기입니다.

bV4XPelsPerMeter

비트맵에 대한 대상 디바이스의 가로 해상도(미터당 픽셀 단위)입니다. 애플리케이션은 이 값을 사용하여 현재 디바이스의 특성과 가장 일치하는 리소스 그룹에서 비트맵을 선택할 수 있습니다.

bV4YPelsPerMeter

비트맵에 대한 대상 디바이스의 세로 해상도(미터당 픽셀 단위)입니다.

bV4ClrUsed

비트맵에서 실제로 사용되는 색 테이블의 색 인덱스 수입니다. 이 값이 0이면 비트맵은 bV4Compression으로 지정된 압축 모드에 대해 bV4BitCount 멤버 값에 해당하는 최대 색 수를 사용합니다.

bV4ClrUsed가 0이 아니고 bV4BitCount 멤버가 16보다 작은 경우 bV4ClrUsed 멤버는 그래픽 엔진 또는 디바이스 드라이버가 액세스하는 실제 색 수를 지정합니다. bV4BitCount가 16 이상인 경우 bV4ClrUsed 멤버는 시스템 색상표의 성능을 최적화하는 데 사용되는 색 테이블의 크기를 지정합니다. bV4BitCount가 16 또는 32인 경우 최적의 색상표는 BITMAPV4HEADER 바로 다음에 시작됩니다.

bV4ClrImportant

비트맵을 표시하는 데 필요한 색 인덱스 수입니다. 이 값이 0이면 모든 색이 중요합니다.

bV4RedMask

각 픽셀의 빨간색 구성 요소를 지정하는 색 마스크로, bV4Compression 이 BI_BITFIELDS 설정된 경우에만 유효합니다.

bV4GreenMask

각 픽셀의 녹색 구성 요소를 지정하는 색 마스크로, bV4Compression 이 BI_BITFIELDS 설정된 경우에만 유효합니다.

bV4BlueMask

각 픽셀의 파란색 구성 요소를 지정하는 색 마스크로, bV4Compression 이 BI_BITFIELDS 설정된 경우에만 유효합니다.

bV4AlphaMask

각 픽셀의 알파 구성 요소를 지정하는 색 마스크입니다.

bV4CSType

DIB의 색 공간입니다. 다음 표에서는 bV4CSType의 값을 나열합니다.

의미
LCS_CALIBRATED_RGB 이 값은 엔드포인트 및 감마 값이 적절한 필드에 제공됨을 나타냅니다.
 

논리 색 공간을 정의하는 정보는 LOGCOLORSPACE 구조를 참조하세요.

bV4Endpoints

비트맵과 연결된 논리적 색 공간에 대한 빨간색, 녹색 및 파란색 엔드포인트에 해당하는 세 가지 색의 x, y 및 z 좌표를 지정하는 CIEXYZTRIPLE 구조체입니다. bV4CSType 멤버가 LCS_CALIBRATED_RGB 지정하지 않으면 이 멤버는 무시됩니다.

참고색 공간 은 세 개 이상의 좌표로 숫자로 색을 나타내는 모델입니다. 예를 들어 RGB 색 공간은 빨강, 녹색 및 파란색 좌표로 색을 나타냅니다.
 

bV4GammaRed

빨간색의 톤 응답 곡선입니다. 색 값이 RGB 값으로 보정되고 bV4CSType 이 LCS_CALIBRATED_RGB 설정되지 않으면 이 멤버는 무시됩니다. 부호 없는 고정 16.16 형식으로 지정합니다. 상위 16비트는 부호 없는 정수 값입니다. 하위 16비트 는 소수 부분입니다.

bV4GammaGreen

녹색의 톤 응답 곡선입니다. bV4CSType이 LCS_CALIBRATED_RGB 설정된 경우에 사용됩니다. 부호 없는 고정 16.16 형식으로 지정합니다. 상위 16비트는 부호 없는 정수 값입니다. 하위 16비트 는 소수 부분입니다.

bV4GammaBlue

파란색의 톤 응답 곡선입니다. bV4CSType이 LCS_CALIBRATED_RGB 설정된 경우에 사용됩니다. 부호 없는 고정 16.16 형식으로 지정합니다. 상위 16비트는 부호 없는 정수 값입니다. 하위 16비트 는 소수 부분입니다.

설명

BITMAPV4HEADER 구조체는 JPEG 또는 PNG 이미지를 StretchDIBits에 원본 이미지로 전달할 수 있도록 확장됩니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 wingdi.h(Windows.h 포함)

추가 정보

BITMAPINFO

BITMAPINFOHEADER

BITMAPV5HEADER

비트맵 구조체

비트맵 개요

CIEXYZTRIPLE

CreateDIBitmap

LOGCOLORSPACE

StretchDIBits