PNG

PNGのヘッダは各OSの落とし穴を検出できるようになっていたとは。うまい。

PNGファイルはヘッダに8バイトのシグネチャを持つ。
16進数の値は 89 50 4E 47 0D 0A 1A 0A となる(制御文字で表すと HTJ "PNG" CR LF SUB LF)。
各値の意味は次の通り。

http://ja.wikipedia.org/wiki/Portable_Network_Graphics
89 8ビットデータをサポートしない転送システムを検知するためのハイビット値。また、テキストファイルが誤ってPNGと認識されるのを防ぐ。
50 4E 47 アスキー文字でPNGを表す。テキストエディタで開いた場合などに、フォーマットをわかりやすくするため。
0D 0A DOSスタイルの改行(CR+LF)。DOSUNIXでの行末データ変換が行われていないかを検知する。
1A DOSでTYPEコマンドを使ってファイル表示をさせた場合、SUB(EOF)として表示を停止させるバイト。
0A UNIXスタイルの行末(LF)。UNIXDOSでの行末変換が行われていないかを検知する。