최근 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개 위치에서 원시 바이트를 가져와서 파일 크기를 계산할 수 있습니다. 디스크의 파일 크기와 일치해야 합니다.
또는 이미지 도구를 사용하여 헤더를 처리하고 파일 크기를 추출한 다음 비교합니다.