Windows 비트맵 (.bmp)

Microsoft 표준

비트맵 이미지 파일(BMP)은 마이크로소프트의 기본적인 장치 독립형 래스터 그래픽 포맷으로, 직접적인 하드웨어 프레임버퍼 호환성을 갖추고 비압축 또는 RLE 압축된 스캔라인을 저장합니다.

BMP을(를) PNG(으)로 변환

무료 브라우저 내 BMP에서 PNG로 변환하는 도구입니다. 기기에서 파일을 즉시 변환할 수 있습니다.

검사 및 메타데이터

운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 BMP 파일을 식별합니다:

여기에 파일을 선택하거나 놓으십시오

비공개 - 파일은 기기를 벗어나지 않습니다

또는 붙여넣기 Ctrl+V
네트워크 전송 없음에 대한 개인정보 보호 보장: 외부 서버로 업로드된 데이터는 0바이트입니다. 모든 처리는 브라우저 샌드박스 내에서 로컬로 수행되었습니다.

바이트 단위 헤더 시그니처 (매직 바이트)

운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 BMP 파일을 식별합니다:

16진수 시그니처 (오프셋 0):

42 4D

ASCII 표현: BM

표준화: Microsoft Windows Device-Independent Bitmap (DIB) Architecture

기술 사양

컨테이너 아키텍처BITMAPFILEHEADER 뒤에 BITMAPINFOHEADER(DIB)와 래스터 픽셀 배열이 이어집니다.
압축비압축 원시 스캔라인 또는 선택적 BI_RLE8 / BI_RLE4 런 길이 인코딩
바이트 엔디안리틀 엔디안(인텔 x86 바이트 순서)
색 공간장치 의존 RGB, sRGB(BITMAPV5HEADER에 내장)
채널 및 구조1비트 흑백, 4비트 / 8비트 팔레트, 16비트, 24비트 RGB 또는 32비트 RGBA
최대 크기2,147,483,647 x 2,147,483,647픽셀(부호 있는 32비트 정수 한계)
투명도최신 BITMAPV3HEADER 및 V5HEADER 형식에서 32비트 BGRA 알파 마스크를 지원합니다.
스트리밍 및 프로그레시브스트리밍할 수 없습니다. 높이가 음수가 아니면 스캔라인을 아래에서 위로 저장합니다.

기술 비교 매트릭스: BMP 대 경쟁사

기술적 속성BMP (현재)PNGTIFFJPG
압축 방식비압축 / 최소 RLE무손실 Deflate(약 70% 더 작음)비압축 / LZW / Zip손실 DCT(약 90% 더 작음)
디코딩 속도즉각적인 메모리 복사Deflate 압축 해제 필요LZW/ZIP 압축 해제 필요IDCT 계산 필요
스캔라인 순서아래에서 위로 (반전됨)위에서 아래로위에서 아래로 / 스트립위에서 아래로 MCU 블록
웹 적합성매우 낮음(부피가 큰 데이터)그래픽용으로 우수함나쁨 (탁상 출판)사진용으로 우수함

일반적인 손상 모드 및 헥스 복구 가이드

이미지가 대각선으로 찌그러지거나 비스듬하게 왜곡되어 렌더링됩니다.

근본 원인: 잘못된 행 패딩 계산 (각 스캔라인을 4바이트 경계로 패딩하지 못한 경우).

복구: File2File.app Image Converter로 다시 인코딩해 올바른 32비트 스캔라인 간격을 적용하십시오.

보안 분석 및 파서 공격 벡터

BMP 디코더는 신뢰할 수 없는 DIB 헤더의 크기를 바탕으로 버퍼를 할당할 때 버퍼 초과 읽기 취약점이 자주 발생합니다.

알려진 공격 벡터

  • 너비 * 높이 * bpp 계산에서 정수 오버플로가 발생해 작은 힙 버퍼가 할당되고 범위를 벗어난 쓰기가 이어집니다.
  • 손상된 RLE8 / RLE4 런 길이 이스케이프 시퀀스로 할당된 버퍼를 넘어 메모리에 쓰게 됩니다.
  • 조작된 헤더 크기로 수 GB의 메모리를 할당하게 만들어 서비스 거부(DoS)를 일으킵니다.

방어적 모범 사례: 대상 메모리를 할당하기 전에 DIB 헤더의 너비, 높이 및 비트 심도 범위를 엄격하게 검증하십시오.

역사적 배경 및 주요 이력

1998Windows 98에서 BITMAPV5HEADER를 도입해 ICC 컬러 프로필 관리와 감마 보정을 추가했습니다.
1990Windows 3.0이 운영체제 전반에서 BITMAPINFOHEADER DIB 사양을 표준화했습니다.
1987Windows 2.0 및 OS/2 1.1과 함께 기본 디스플레이 래스터 형식으로 도입되었습니다.

주요 장점

  • 압축으로 인한 화질 저하가 없으며 픽셀을 비트 단위까지 정확하게 저장합니다.
  • Windows에는 기본 BMP 코덱이 있지만 다른 운영 체제와 앱의 지원 여부는 다릅니다.
  • 디코딩이 매우 간단해 임베디드 마이크로컨트롤러와 그래픽 프로그래밍 교육에 적합합니다.

기술적 제한 사항 및 단점

  • DEFLATE나 허프만 코딩 같은 최신 엔트로피 압축을 지원하지 않아 파일 크기가 매우 큽니다.
  • 웹 전송이나 모바일 네트워크 배포에 비효율적입니다.
  • 상향식 스캔라인 정렬로 인해 현대의 하향식 그래픽 파이프라인에서 수직 행 반전이 필요함.

흥미로운 기술적 상식

  • BMP는 OS/2에서 사용되는 수학적 데카르트 좌표계 때문에 기본적으로 이미지 스캔라인을 거꾸로(아래에서 위로) 저장합니다.
  • BMP 헤더의 높이 값이 음수로 설정되면 이미지가 위에서 아래로 올바르게 디코딩됩니다.
  • BMP 파일의 모든 스캔라인은 4바이트의 배수(32비트 경계 정렬)가 되도록 0으로 패딩되어야 합니다.

자주 묻는 기술 질문

BMP 파일이 매우 큰 이유는 무엇입니까?

BMP 파일은 모든 개별 픽셀에 대한 원시 비압축 색상 값을 저장하는 반면, PNG와 같은 포맷은 품질 손실 없이 해당 데이터를 압축하기 때문입니다.

BMP도 투명도를 지원할 수 있습니까?

네. 32비트 BMP 파일(BITMAPV3HEADER 이상 사용)은 8비트 알파 채널을 저장할 수 있지만, 구형 소프트웨어에서는 지원 여부가 다를 수 있습니다.

BMP 파일의 크기를 줄이려면 어떻게 해야 합니까?

File2File.app을 사용하여 BMP 파일을 PNG로 변환하면 시각적 품질 손실 없이 파일 크기를 일반적으로 60%에서 85%까지 줄일 수 있습니다.