PNG
PNGのヘッダは各OSの落とし穴を検出できるようになっていたとは。うまい。
PNGファイルはヘッダに8バイトのシグネチャを持つ。
http://ja.wikipedia.org/wiki/Portable_Network_Graphics
16進数の値は 89 50 4E 47 0D 0A 1A 0A となる(制御文字で表すと HTJ "PNG" CR LF SUB LF)。
各値の意味は次の通り。
89 | 8ビットデータをサポートしない転送システムを検知するためのハイビット値。また、テキストファイルが誤ってPNGと認識されるのを防ぐ。 |
50 4E 47 | アスキー文字でPNGを表す。テキストエディタで開いた場合などに、フォーマットをわかりやすくするため。 |
0D 0A | DOSスタイルの改行(CR+LF)。DOS→UNIXでの行末データ変換が行われていないかを検知する。 |
1A | DOSでTYPEコマンドを使ってファイル表示をさせた場合、SUB(EOF)として表示を停止させるバイト。 |
0A | UNIXスタイルの行末(LF)。UNIX→DOSでの行末変換が行われていないかを検知する。 |