IEでpngの画像が表示されなかった場合に確認する事
2016年 06月 1日
先日、ちょっとしたお仕事で『IE8で開くとpngの画像が表示されない』というお話を頂きました。IEはpng画像を上手く透過出来なかったりするのは知っていたのですが、全く表示されないとな。そんな事もあるのか!
そんなわけで調べてみたら、確かにそういう現象はあるみたいですね。
レジストリへのアクセス権が無くなっているらしい
調べるとどうやら、アプリケーションのインストールやバージョンアップに伴って、レジストリへのアクセス権が無くなってしまうとこういった現象が起こってしまうとの事。へぇー。
そのレジストリは
HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/futuresplash
HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/x- shockwave-flash
らしいので、これらへのアクセス権を取り戻せばいいんですよね。
手順1:『ファイル名を指定して実行』等からregeditを実行する
まずはレジストリを開かないといけませんね。WindowsのOSによって少し違うかもしれませんが、スタートメニューの『ファイル名を指定して実行』等からレジストリを開きましょう。
『ファイル名を指定して実行』に『regedit』と入力してエンターを押します。
私はWindows8.1なので、画面右上にマウスポインタを持って行って、『検索』から『regedit』と入力してエンターを押します。
これでレジストリエディターが開きましたね!
手順2:アクセス権を許可してあげる
レジストリエディターを開いたら、先ほど記述した
HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/futuresplash
HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/x- shockwave-flash
これらにアクセス許可を出してあげます。
レジストリエディターの左の一覧から、HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/futuresplashを探して右クリックを押します。
注意点は、『HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/futuresplash』というファイルがあるのではなく、『HKEY_CLASSES_ROOT』の中の『MIME』の中の『Database』の中の……、という事なので気を付けて下さいね。
右クリックで出てくるメニューから、『アクセス許可』をクリックしましょう。
アクセス許可をクリックして出てきた画面で『追加』のボタンをクリックしたら、現在のユーザーを追加し、アクセス許可に『読み取り』を指定します。
因みに私のwindow8.1ではアクセス許可の画面に読み取り許可のチェックボックスがあったのでそれをクリックしました。
これでレジストリへのアクセス許可設定が出来ました!
同じように『HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/x- shockwave-flash』にもアクセス許可を出しましょう。
これでIEでpngの画像が表示されない不具合が解消される…!ハズでした…!
HTMLのimgタグについていた『width=”auto”』を外す
先ほどのレジストリへの許可でこの問題は解消されるだろうと、連絡を頂いた方に教えて数時間、どうやらこれでも解消されない……、と連絡が。
これ以外に原因は何かと探っていたら、後日また連絡が来ました。
png画像を読み込むhtmlタグ、
<img src=”images/header.png” width=”auto” height=”281″ alt=”ヘッダー” />
</div>
となっていたタグからwidth=”auto”を外し、
<img src=”images/header.png” height=”281″ alt=”ヘッダー” />
</div>
としたら解消した!との事。なんじゃそりゃ!
width=”auto”とpng画像の組み合わせがIEでは良くなかったのかもしれませんね…。これは知りませんでした。
もしもレジストリのアクセス許可だけで解消がされなければ、HTMLの見直しも大切ですね。