エンディアンが正しい言葉かどうかはわかりませんが..
PNG ファイルを解析していて、すべての整数値がビッグ エンディアンであることに気付きました。これは本当ですか?
たとえば、幅と高さは PNG ファイルに 32 ビットの符号なし整数として格納されます。私の画像は16x16で、ファイルには次のように保存されています:
00 00 00 10
それがいつあるべきか:
10 00 00 00
これは本当ですか、それとも私が見逃しているものがありますか?
エンディアンが正しい言葉かどうかはわかりませんが..
PNG ファイルを解析していて、すべての整数値がビッグ エンディアンであることに気付きました。これは本当ですか?
たとえば、幅と高さは PNG ファイルに 32 ビットの符号なし整数として格納されます。私の画像は16x16で、ファイルには次のように保存されています:
00 00 00 10
それがいつあるべきか:
10 00 00 00
これは本当ですか、それとも私が見逃しているものがありますか?
はい、仕様によると、整数はネットワーク バイト オーダー (ビッグ エンディアン) である必要があります。
2 バイト以上の整数を必要とするすべての整数は、ネットワーク バイト順である必要があります。最上位バイトが最初に来て、次に下位バイトが重要度の降順になります (2 バイト整数の場合は MSB LSB、4 バイト整数の場合は MSB B2 B1 LSB)。 )。バイトの最上位ビット (値 128) の番号はビット 7 です。最下位ビット (値 1) の番号はビット 0 です。値は、特に明記されていない限り、符号なしです。符号付きとして明示的に示されている値は、2 の補数表記で表されます。
http://www.w3.org/TR/2003/REC-PNG-20031110/#7Integers-and-byte-order
PNG の整数は、ネットワーク バイト順 (ビッグ エンディアン) です。
参照:仕様。