最近、Notepad++ で 2 つの同一のビットマップ画像を開きました。1 つのヘッダーは次のように始まります。
'バンブ' そしてもう1つは: 'ん〜'
何故ですか?
答え1
これはヘッダー全体ではなく、実際にはヘッダーの 1.5 フィールドです。
ヘッダーのフォーマットは次のとおりですウィキペディアより:
オフセット減算 | サイズ | 目的 |
---|---|---|
0 | 2バイト | BMP および DIB ファイルを識別するために使用されるヘッダー フィールドは、16 進数で 0x42 0x4D であり、ASCII の BM と同じです。次のエントリが可能です: - BM - Windows 3.1x、95、NT、... など- BA - OS/2 構造体ビットマップ配列- CI - OS/2 構造体カラー アイコン- - OS/ CP 2 定数カラー ポインタ- IC - OS/2 構造体アイコン- PT - OS/2 ポインタ |
2 | 4バイト | BMPファイルのサイズ(バイト単位) |
6 | 2バイト | 予約済み。実際の値はイメージを作成するアプリケーションによって異なります。手動で作成した場合は 0 になります。 |
8 | 2バイト | 予約済み。実際の値はイメージを作成するアプリケーションによって異なります。手動で作成した場合は 0 になります。 |
10 | 4バイト | ビットマップ画像データ (ピクセル配列) が見つかるバイトのオフセット、つまり開始アドレス。 |
BM
最初のフィールドの値です。3 番目の「文字」は、実際には 2 番目のフィールドの最初のバイト (BMP のサイズ (バイト単位)) が誤ってテキストとして解釈されたものです。
答え2
ヘッダーはバンブまたはん〜それはBM結局、ビットマップは同一ではありませんでした。
これは、BITMAPFILEHEADER 構造: 「ファイルの種類は BM である必要があります。」
答え3
ヘッダーの最初の 2 バイトは「BM」である必要があり、これが取得されたものです。
次の 4 バイトにはファイルのサイズが格納されますが、偶然にも、この場合は「P」または「~」のように見えます。
4 つの場所にある生のバイトを取得してファイル サイズを計算してみてください。ディスク上のファイル サイズと一致するはずです。
または、イメージ ツールを使用してヘッダーを処理し、ファイル サイズを抽出して比較します。