typedef struct BITMAPFILEHEADER // 비트맵 파일 헤더 구조체
{
unsigned short bfType; // BMP 파일 매직넘버
unsigned int bfSize; // 파일 사이즈
unsigned short bfReserved1; // 예약, 0
unsigned short bfReserved2; // 예약
unsigned int bfOffBits; // 비트맵 데이터 시작 위치
} BITMAPFILEHEADER;
typedef struct BITMAPINFOHEADER // 비트맵 정보 헤더 구조체
{
unsigned int bfSize; // 현재 구조체 사이즈
int biWidth; // 이미지 가로
int biHeight; // 이미지 세로
unsigned short biPlanes; // 사용하는 색상판 수
unsigned short biBitCount; // 픽셀 하나 표현하는 비트의 수
unsigned int biCompression; // 압축 방식
unsigned int biSizeImage; // 비트맵 이미지의 픽셀 데이터 크기
int biXPelsPerMeter; // 그림의 가로 해상도
int biYPelsPerMeter; // 그림의 세로 해상도
unsigned int biClrUsed; // 색상 테이블에서 실제 사용하는 색상 수
unsigned int biClrImprotant; // 비트맵 표현에 필요한 색상 인덱스 수
} BITMAPINFOHEADER;
typedef struct RGBTRIPLE // 24bit 비트맵의 픽셀 구조체
{
unsigned char rgbtBlue;
unsigned char rgbtGreen;
unsigned char rgbtRed;
} RGBTRIPLE;
24bit bmp는 색상 테이블을 사용하지 않으며, 위 비트맵 구조를 사용하기 위해서는 구조체를 1바이트 크기로 정렬해서 크기와 형태를 동일하게 사용해야 함.
'Programming Language > C,C++' 카테고리의 다른 글
C] 공용체(Union) 간단 정리 (0) | 2018.06.25 |
---|---|
C++ 캐스트 연산자(Cast Operator) (0) | 2018.06.23 |
함수 오버로딩과 디폴트 매개변수가 만드는 모호성 (0) | 2018.06.14 |
C] fopen, freopen, fdopen를 사용하는 파일 접근 정리 (0) | 2018.06.02 |
C, C++] 이중 포인터를 이용해 2차원 배열 사용하기 (2) | 2018.05.16 |