'BMP 파일구조'에 해당되는 글 1건
- 2009.07.15 비트맵 파일의 구조
비트맵 파일의 구조
BMP 파일 포맷은 단순하고 윈도와 같은 여러 곳에서 널리 쓰일뿐 아니라 상대적으로 특허에서 자유로우므로, 수많은 운영 체제가 제공하는 그림 처리 프로그램이 읽고 쓸 수 있는 매우 일반적인 포맷으로 자리잡았다.
bmp파일도 여러가지 방식이 있기는 하지만 대부분이 사장되고, 현재 남은 형식은 windows version3를 가장 많이 사용하고 있다. 물론 OS/2같은 운영체제에서는 다른 형식을 사용하기도 한다.
BMP 파일의 구조
일반적으로 쓰이는 BMP는 다음의 데이터 블록을 담고 있다.
BMP 헤더 |
BMP 파일에 대한 일반 정보를 담고 있다. |
비트맵 정보(DIB 헤더) |
비트맵 그림에 대한 자세한 정보를 담고 있다. |
색 팔레트 |
인덱스 컬러 비트맵에 쓰이는 색의 정의를 담고 있다. |
비트맵 데이터 |
화소 대 화소 단위의 실제 그림을 담고 있다. |
1. BMP 파일 헤더
오프셋# |
크기 |
목적 |
0 |
2 |
BMP 파일을 식별하는 데 쓰이는 매직넘버:0x42 0x4D (B와 M에 대한 ASCII 코드값) |
2 |
4 |
BMP 파일 크기(바이트 단위) |
6 |
2 |
그림을 만드는 데 쓰인 응용 프로그램에 따라 달라진다. |
8 |
2 |
그림을 만드는 데 쓰인 응용 프로그램에 따라 달라진다. |
10 |
4 |
오프셋. 픽셀 데이터의 시작 주소(바이트 단위) |
2. 비트맵 정보(DIB 헤더)
기본적으로 쓰이는 비트맵 정보는 다음과 같다.
크기 |
헤더 |
식별자 |
GDI지원 |
40 |
윈도우 V3 |
BITMAPINFOHEADER |
윈도우 3.0 이후의 모든 윈도우 버전 |
12 |
OS/2 V1 |
BITMAPCOREHEADER |
OS/2 및 윈도 3.0 이후의 모든 윈도 버전 |
64 |
OS/2 V2 |
|
|
108 |
윈도우 V4 |
BITMAPV4HEADER |
윈도우 95/NT4 이후의 모든 윈도우 버전 |
124 |
윈도우 V5 |
BITMAPV5HEADER |
윈도우 98/2000 이상 |
호환성을 이유로 대부분의 응용 프로그램은 파일을 저장할 때 오래된 DIB 헤더를 사용한다. OS/2가 물러나자, 이제 일반적으로 쓰이는 포맷은 V3 헤더가 되었다. 더 자세한 것은 아래의 표를 참조하자.
오프셋 # |
크기 |
목적 |
14 |
4 |
이 헤더의 크기 (40 바이트) |
18 |
4 |
비트맵 가로 (단위는 화소, signed integer). |
22 |
4 |
비트맵 세로 (단위는 화소, signed integer). |
26 |
2 |
사용하는 색 판(color plane)의 수. 1로 설정해야 한다. |
28 |
2 |
한 화소에 들어가는 비트 수이며 그림의 색 깊이를 뜻한다. 보통 값은 1, 4, 8, 16, 24, 32이다. |
30 |
4 |
압축 방식. 가능한 값에 대한 목록은 다음 표를 참조하라. |
34 |
4 |
그림 크기. 압축되지 않은 비트맵 데이터의 크기(아래 참조)이며, 파일 크기와 혼동하지 말 것. |
38 |
4 |
그림의 가로 해상도. (미터 당 화소, signed integer) |
42 |
4 |
그림의 세로 해상도. (미터 당 화소, signed integer) |
46 |
4 |
색 팔레트의 색 수, 또는 0에서 기본값 2n. |
50 |
4 |
중요한 색의 수. 모든 색이 중요할 경우 0. 일반적으로 무시. |
'공부합시다 > 영상처리' 카테고리의 다른 글
VFW 영상 처리 함수 (0) | 2009.07.21 |
---|---|
비트맵 헤더 분석 (0) | 2009.07.15 |