Windows 비트맵 (.bmp)
Microsoft 표준비트맵 이미지 파일(BMP)은 마이크로소프트의 기본적인 장치 독립형 래스터 그래픽 포맷으로, 직접적인 하드웨어 프레임버퍼 호환성을 갖추고 비압축 또는 RLE 압축된 스캔라인을 저장합니다.
BMP을(를) PNG(으)로 변환
무료 브라우저 내 BMP에서 PNG로 변환하는 도구입니다. 기기에서 파일을 즉시 변환할 수 있습니다.
검사 및 메타데이터
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 BMP 파일을 식별합니다:
바이트 단위 헤더 시그니처 (매직 바이트)
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 BMP 파일을 식별합니다:
16진수 시그니처 (오프셋 0):
42 4DASCII 표현: 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 (현재) | PNG | TIFF | JPG |
|---|---|---|---|---|
| 압축 방식 | 비압축 / 최소 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 헤더의 너비, 높이 및 비트 심도 범위를 엄격하게 검증하십시오.
역사적 배경 및 주요 이력
주요 장점
- 압축으로 인한 화질 저하가 없으며 픽셀을 비트 단위까지 정확하게 저장합니다.
- 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%까지 줄일 수 있습니다.
관련 BMP 변환 쌍
압축되지 않은 Windows 비트맵 파일을 PNG로 변환하면 이미지 품질 저하 없이 파일 크기를 줄여주는 무손실 압축이 제공됩니다.
Portable Network Graphics를 Windows 비트맵으로 변환하면 레거시 운영 체제 및 하드웨어 파이프라인을 위해 압축된 래스터 데이터가 압축되지 않은 픽셀 그리드로 변환됩니다.
지원되는 BMP 스크린샷을 PDF 한 페이지에 배치해 티켓이나 보고서에 첨부하십시오. 이 변환 경로는 압축되지 않은 24비트 또는 32비트 픽셀을 지원하며, 압축된 BMP 변형은 지원하지 않습니다.