今回はプログラマのS君の書いたプログラムの話だ。S君が書いたプログラムで出力がpng形式のファイルになっているはずなのだが、そのファイル、FAXビュアーでは正常に表示されるのに、別のソフトでは開けない。 おかしいなと思ってファイルサイズを見たら、どうもbmpファイルっぽいファイルサイズだ。バイナリエディタで開いてheaderを確認したらやはりbmpファイルだった。 bmpファイルは拡張子を偽ってもFAXビュアーやペイントでは開けるのだ。(Windows 7にて確認) それで、どうしてpngで出力するはずがbmpになっているのかという話なのだが、彼のソースを見ると、 switch (Path.GetExtension(outputFilename).ToUpper() ) { case "PNG" : …のように出力したいファイル名の拡張子ごとに分岐していた。これはこれでいいのだけど、Pat