'BMP 파일구조'에 해당되는 글 1건

  1. 2009.07.15 비트맵 파일의 구조
2009. 7. 15. 12:23

비트맵 파일의 구조

비트맵(BMP) 파일은 가장 간단한 구조의 이미지 파일 중 하나이다. 기본적으로 1, 4, 8, 16, 24, 32 비트를 지원하지만 16과 32비트는 잘 사용하지 않는다. bmp파일은 구조가 간단한 만큼 용량이 매우 큰 파일이다. 그렇기 때문에 기본적인 압축형식을 지원하지만 효율이 그다지 좋지 않아 압축을 사용하는 경우는 드물다.

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