JPG から Exif 情報を抽出するコードを書き込もうとしています。
Exif は、JPG ファイルの APP1 セグメントに格納されます。Exif 仕様によると、APP1 セグメントのフォーマットは次のように始まるはずです。
FF E1 // APP1 segment marker
nn nn // Length of segment
45 // 'E'
78 // 'x'
69 // 'i'
66 // 'f'
そして、 の後にorFF
以外の何かが続くまで続きます。FF
00
16 進エディタで JPG を見るFF E1
と、Exif
文字列はわかりますが、長さのバイトをデコードするのに問題があります。例: 1 つの jpg で、16 進エディターは APP1 セグメントの長さが 686 バイトであることを教えてくれますが、長さのバイトはF7 C8
.
これらのバイトをどのように使用して 686 10 進を計算する必要がありますか?
編集:サンプルファイルの最初の部分は次のとおりです。
FF D8 FF E1 F7 C8 45 78 69 66 00 00 4D 4D 00 2A 00 00 00 08
編集:実際、ここで何が起こっているのか知っているかもしれません。APP1 セグメントは実際に他のセグメントを「含んでいます」か? たとえば、サムネイル データが APP1 内にあると見なされた場合、その長さはより合理的に見えます。誰でもこれを確認/拒否できますか?