studies

いろいろ勉強用備忘録的な感じ

GIFのバイトオーダはリトルエンディアンです!ビッグエンディアンじゃありません!

ふーんという感じですが、specificationにも記述があります。
https://www.w3.org/Graphics/GIF/spec-gif89a.txt

Multi-byte numeric fields are ordered Least Significant Byte first.


『入門 Python3』のp216の記述は誤植ですね(とても混乱するので、エンディアンで誤植してほしくない…)。

7-14 GIFファイルの幅(単位ピクセル)は、バイトオフセット6からの16ビットビッグエンディアンの整数で、高さはオフセット8からの同じサイズの整数になっている。gifのこれらの値を抽出して表示しよう。どちらも1になっているか。


答え(p524)はあってる。

>>> import struct
>>> width, height = struct.unpack('<HH', gif[6:10])
>>> width, height
(1, 1)