Programming Language/C,C++

비트맵(bmp) 구조체 구조

TwinParadox 2018. 6. 16. 21:57
728x90

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바이트 크기로 정렬해서 크기와 형태를 동일하게 사용해야 함.

728x90