BMP 파일 구조
- 파일헤더 : 14byte
- 이미지 정보 헤더: 40byte
- 팔레트 크기
- 파일 데이터부( body, RGB가 아닌 BGR으로 되어있음)
비트맵 파일헤더
typedef struct tagBITMAPFILEHEADER {
WORD bfType; // "BM"이라는 문자로 나 비트맵임 ㅇㅋ? 확인용
DWORD bfSize; // 파일의 크기 (바이트)
WORD bfReserved1; // 예약 변수1
WORD bfReserved2; // 예약 변수2
DWORD bfOffBits; // Body 시작 위치(14+40+팔레트크기)
} BITMAPFILEHEADER
예시
비트맵 정보헤더
typedef struct tagBITMAPINFOHEADER {
DWORD biSize; // 이 구조체 크기 (40byte)
LONG biWidth; // 가로 크기(픽셀 단위)
LONG biHeight; // 세로 크기
WORD biPlanes; // 평면 수(보통 1)
WORD biBitCount; // 픽셀 1개당 표현하는 비트수
DWORD biCompression; // 압축 플래그(보통 0)
DWORD biSizeImage; // 파일 크기(가로크기는 4byte의 배수)
LONG biXPelsPerMeter; // 가로 해상도(보통 화면 해상도 72dpi)
LONG biYPelsPerMeter; // 세로 해상도
DWORD biClrUsed; // 실제 사용 색상 수
DWORD biClrImportant; // 중요하게 사용된 색상 수(?)
} BITMAPINFOHEADER
예시
팔레트 (물감같은거임 물감색깔이 다른게 있을수도있으니 ㅇㅇ)
typedef struct tagRGBQUAD {
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved; // 예약값
} RGBQUAD;
예시
참고로 행에 대해서만 역순이다.
'공부 > 영상 처리' 카테고리의 다른 글
영상처리 - 6 (영상 분할) (0) | 2024.03.19 |
---|---|
영상처리 - 5 (특징 추출) (0) | 2024.03.19 |
영상처리 - 4 (영상 향상) (0) | 2024.03.19 |
영상처리 - 2 (영상 파일) (0) | 2024.03.19 |
영상처리 - 1 (0) | 2024.03.19 |