1

現在、PNGファイル形式について読んでいます。ファイルの最初のバイトが 0x89 に等しくなるように指定されていることがわかります。

そのバイトの値の理由は何だろうと思っています。

フォーマットについて私がすでに学んだことは、最初のバイトが 7 ビット チャネルでの送信を検出するために使用されるということです。値が 0x80 (1000 0000) の場合、意味があります (送信後に最初のバイトが 0 の場合、7 ビット モードが使用され、ファイルが破損しています)。しかし、0x89 (1000 1001) の 0 と 3 番目の位置にある 1 の意味は何ですか?

4

1 に答える 1

3

http://www.libpng.org/pub/png/spec/1.2/PNG-Rationale.html#R.PNG-file-signatureから抽出

最初の 2 バイトは、最初の 2 バイトがファイル タイプを一意に識別することを期待するシステム上の PNG ファイルを区別します。最初のバイトは、テキスト ファイルが PNG ファイルとして誤認識される可能性を減らすために、非 ASCII 値として選択されます。また、ビット 7 をクリアする不正なファイル転送をキャッチします。

そのため、最初のバイトの LSB がファイル タイプの識別に使用されます。

于 2015-06-17T13:58:52.890 に答える