"BOKU"のITな日常

62歳・文系システムエンジニアの”BOKU”は日々勉強を楽しんでます

ChromeとEdgeでは表示されるのに、IEでは表示されない画像ファイルの話

それでしか動かないシステムとかがあって、まだ、企業で生き残っている「IEInternet Explorer)」にまつわる奇妙な問い合わせの話です。

f:id:arakan_no_boku:20200826222925p:plain

 

HTMLにミスはないのに画像が表示されない

 

IEInternet Explorer)を使っているユーザから問い合わせがありました。

HTMLは間違ってないし、画像ファイルもある。

なのに、ブラウザに画像が表示されない・・ということでした。

しかも。

たくさんJPEGファイルがある中で、表示できるものとできないものがあるとのこと。

電話ではらちが明かないので、環境を見せてもらうことにしました。

確認したところ・・。

確かに、HTMLにはミスはありません。

なんせ、ごくシンプルなIMGタグで、こんな感じに書いているだけですから、間違いようがありません。

<img src="test.jpg" />

そして、test.jpg ファイルもちゃんと所定の場所にあります。

エクスプローラで画像がアイコンとして表示されていますし、画像ファイルが壊れているわけでもなさそうです。

だとすると、またぞろ、IEとモダンブラウザの動きが違うってやつかとあたりをつけて、試してみると、以下のような結果でした。

  • Chromeで開く => 画像はちゃんと表示される。
  • Edgeで開く => 画像はちゃんと表示される
  • FireFoxで開く => 画像はちゃんと表示される
  • IEInternet Explorer)で開く => 画像は表示されない。 

IEの場合だけ、こんな感じになります。

f:id:arakan_no_boku:20200826225434p:plain

 

なんなんでしょうね。

 

画像ファイルをダンプしてみる

 

昔も今も、こういうときはダンプです。

今回は、XEditというプログラムを使ってみました。

freesoft-100.com

環境にダウンロード・展開(インストール不要でした)して、問題のあった「test.jpg」をダンプしてみます。

すると・・。

f:id:arakan_no_boku:20200826230542p:plain

なんだこれ!!(笑)

先頭が「PNG」で始まるPNGヘダーがあります。

JPGって拡張子がついているけど、これは、PNGファイルです。

ちなみに、同じ画像がJPEG形式で保存されていたらダンプはこうなるはずです。

あきらかに違いますよね。

f:id:arakan_no_boku:20200826230948p:plain

 

今時は拡張子が間違っててもエラーにはならないんだな

 

原因はわかりました。

なんのことはない。

test.jpg というファイルは、「PNGフォーマット画像ファイル」だったわけです。

ここからは、自分も知らなかったことなのですが。

画像ファイルの拡張子と中身のフォーマットが異なっていても、今時のPCでは何事もなかったかのように表示するようになっているみたいなのですねえ。

エクスプローラでもそうですし。

ペイントなどのアプリケーションで開いても同じです。

さらに、Chrome、Edge、FireFoxなどのモダンブラウザも同じ。

何事もなかったかのように画像を表示してしまいます。

でも。

古い考え方で開発されている「IEInternet Explorer)」はそうではない。

拡張子と中身のフォーマットが違うので正直にエラーにしていた。

そういう話なのですね。

個人的には、今回は「IEInternet Explorer)」の動きのほう、エラーに気付けるので好みですけど、まあ、そこが「昭和の人間」なのでしょうかね(笑)

結局。

問題の画像をペイントで開いて、JPEGで保存しなおすだけで問題は解決しました。

それにしても。

どうやったら、あんな中身と拡張子の違うファイルをうっかり作成できるのか?

時折、想像をこえることをしてくれます(笑)

でもまあ。

久々に仕事で笑えたしいいかな・・などと思いつつ、今回はこんなところで。

ではでは。