.bmp 이미지에 두 가지 유형의 파일 헤더가 있는 이유는 무엇입니까?

.bmp 이미지에 두 가지 유형의 파일 헤더가 있는 이유는 무엇입니까?

최근 Notepad++에서 2개의 동일한 비트맵 이미지를 열었습니다. 하나의 헤더는 다음으로 시작됩니다.

'Bmb' 그리고 다른 하나는 '비엠~'

왜 그런 겁니까?

답변1

이는 전체 헤더가 아니며 실제로는 헤더의 1.5 필드입니다.

헤더 형식은 다음과 같습니다.위키피디아에서:

오프셋 12월 크기 목적
0 2바이트 BMP 및 DIB 파일을 식별하는 데 사용되는 헤더 필드는 16진수로 0x42 0x4D이며 ASCII의 BM과 동일합니다. 다음 항목이 가능합니다:
- BM- Windows 3.1x, 95, NT, ... 등
- BA- OS/2 구조체 비트맵 배열
- CI- OS/2 구조체 색상 아이콘
- CP- OS/2 const 색상 포인터
- IC- OS/2 구조체 아이콘
- PT- OS/2 포인터
2 4 바이트 BMP 파일의 크기(바이트)
6 2바이트 예약된; 실제 값은 이미지를 생성하는 애플리케이션에 따라 달라집니다. 수동으로 생성된 경우 0이 될 수 있습니다.
8 2바이트 예약된; 실제 값은 이미지를 생성하는 애플리케이션에 따라 달라집니다. 수동으로 생성된 경우 0이 될 수 있습니다.
10 4 바이트 비트맵 이미지 데이터(픽셀 배열)를 찾을 수 있는 바이트의 오프셋, 즉 시작 주소입니다.

BM첫 번째 필드의 값입니다. 세 번째 "문자"는 실제로 텍스트로 잘못 해석된 두 번째 필드(BMP 크기(바이트))의 첫 번째 바이트입니다.

답변2

헤더가 둘 다 아니기 때문에Bmb...도 아니다비엠~. 그것은비엠. 귀하의 비트맵은 결국 동일하지 않았습니다.

이는BITMAPFILEHEADER 구조: “파일 형식입니다. BM이어야합니다.”

답변3

헤더에서 처음 2바이트는 "BM"이어야 합니다.

다음 4바이트는 파일 크기를 저장하며, 귀하의 경우에는 "P" 또는 "~"처럼 보입니다.

4개 위치에서 원시 바이트를 가져와서 파일 크기를 계산할 수 있습니다. 디스크의 파일 크기와 일치해야 합니다.

또는 이미지 도구를 사용하여 헤더를 처리하고 파일 크기를 추출한 다음 비교합니다.

관련 정보