BMP

BMP 포맷 — 윈도우 비트맵 파일의 구조와 쓰임

윈도우 기본 비트맵 포맷 BMP의 파일 구조(파일 헤더·정보 헤더·색상표·픽셀 배열), 거의 압축하지 않아 용량이 큰 이유, 아래에서 위로 저장하는 방식과 행 채움 규칙, 지금도 BMP가 필요한 경우를 정리했습니다.

확장자.bmp (.dib)
MIMEimage/bmp
명세Microsoft 문서(공식 국제 표준 없음)
압축대부분 무압축(RLE 선택 가능)
투명도제한적(32비트 헤더 V4·V5에서 알파 정의)
애니메이션없음
색 깊이픽셀당 1·4·8·16·24·32비트

BMP는 마이크로소프트 윈도우와 OS/2에서 쓰이던 장치 독립 비트맵(DIB) 을 파일로 저장하는 형식입니다. 국제 표준 기구가 정한 규격이 아니라 마이크로소프트의 개발 문서가 사실상의 명세 역할을 합니다. 구조가 단순해 어떤 프로그램이든 쉽게 읽고 쓸 수 있다는 점이 가장 큰 특징입니다.

파일 구조

Microsoft Learn의 "Bitmap Storage" 문서에 따르면 BMP 파일은 다음 순서로 구성됩니다.

순서구성 요소내용
1BITMAPFILEHEADER파일 식별자(BM), 파일 크기, 픽셀 데이터 시작 위치
2BITMAPINFOHEADER(또는 V4·V5 헤더)가로·세로 픽셀, 픽셀당 비트 수, 압축 방식, 해상도
3색상표(RGBQUAD 배열)팔레트를 쓰는 1·4·8비트 이미지에서 사용
4픽셀 배열실제 이미지 데이터

파일 첫 두 바이트가 ASCII BM(16진수 42 4D)이므로, 확장자가 바뀐 파일도 이 서명으로 BMP인지 확인할 수 있습니다. 정보 헤더에는 인쇄용 해상도(미터당 픽셀 수)를 적는 칸도 있습니다.

아래에서 위로 저장한다

일반적인 BMP는 아래쪽 행부터 위쪽 행 순서로(bottom-up) 픽셀을 저장합니다. 헤더의 높이 값이 음수이면 위에서 아래로(top-down) 저장한 것입니다. 또 각 행의 바이트 수는 4의 배수가 되도록 끝에 채움 바이트를 넣습니다. 직접 BMP를 해석하는 프로그램을 만들 때 자주 실수하는 부분입니다.

행 크기 계산 예

BMP의 한 행은 4바이트 단위로 맞춰야 합니다. 24비트 이미지의 가로가 101픽셀이면 한 행의 실제 데이터는 101 × 3 = 303바이트인데, 4의 배수가 되도록 1바이트를 채워 304바이트로 저장합니다. 따라서 픽셀 데이터 전체 크기는 (행 바이트 수) × 세로 픽셀이며, 여기에 헤더(보통 54바이트)를 더하면 파일 크기가 됩니다. 이 규칙 때문에 가로가 4의 배수가 아닌 이미지를 직접 다룰 때 한 줄씩 밀려 보이는 오류가 자주 생깁니다.

용량이 큰 이유

BMP는 대부분 압축하지 않은 원시 픽셀을 그대로 저장합니다. 24비트 BMP는 픽셀당 3바이트이므로, 1920×1080 이미지는 약 6.2MB, 4032×3024 스마트폰 사진은 약 36.6MB가 됩니다. 8비트 이하 팔레트 이미지에는 RLE(연속 길이 부호화) 압축을 선택할 수 있지만 사진에는 효과가 거의 없습니다. MDN도 용량 때문에 웹 콘텐츠에는 BMP를 피하라고 권합니다.

투명도

전통적인 24비트 BMP에는 알파 채널이 없습니다. V4·V5 헤더를 쓰는 32비트 BMP는 알파 마스크를 정의할 수 있지만, 이를 투명도로 제대로 해석하지 않는 프로그램이 많아 투명 이미지 교환용으로는 PNG가 안전합니다.

지금도 BMP를 쓰는 경우

  • 오래된 산업용 장비, 임베디드 기기, 영수증 프린터, 일부 사내 프로그램이 BMP만 받는 경우
  • 압축·복원 과정 없이 픽셀을 그대로 다뤄야 하는 간단한 프로그램이나 학습용 예제
  • 윈도우 아이콘(ICO) 내부의 작은 이미지 저장 방식

변환할 때 주의점

  • BMP → PNG: 무손실이면서 용량이 크게 줄어듭니다. 보관·공유용으로 가장 좋은 변환입니다.
  • BMP → JPG: 사진이라면 용량이 수십 분의 1로 줄지만 손실 압축이 적용됩니다.
  • 다른 포맷 → BMP: 장비가 요구하는 비트 수(24비트 또는 8비트)를 확인하세요. 투명 영역은 배경색으로 채워집니다. 이미지 포맷 변환 도구에서 BMP로 저장할 수 있습니다.

기준일: 2026-09-23

출처

← 포맷 사전으로