Pythonを使用してビットマップファイルを作成しています。ビットマップ ヘッダーを作成する私のコードは次のとおりです。
pack('bblll', 66, 77, fileLength, 0, 122)
私の数学が間違っていない限り (そうではありません)、これは 14 バイト長のバイト文字列を作成するはずです。
b = char (1 バイト) l = long (4 バイト)
1 + 1 + 4 + 4 + 4 = 14
しかし、問題は、余分な 2 バイトを受け取ることです。ファイル長が 142 だとすると、次のようになります (16 進数):
42 4D 00 00 8E 00 00 00 00 00 00 00 7A 00 00 00
余分な 2 ビットは、オフセット 0x2 と 0x3 のヌルです。彼らはどこから来たのか?そして、どうすればそれらを取り除くことができますか? それは私のイメージを壊しています。