IE6で透過PNGが表示できない件の続き

205b999c.png

フルカラー透過PNG

2842ec59.png

そして、256色PNGです。

フルカラーPNGを何とかして、IE6でも表示できないでしょうか?
今回はそんなテーマです。


DXImageTransform.Microsoft.AlphaImageLoader を使って、次のように表現してみます。

<style type="text/css">
.pngtrns {
filter: expression("progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + this.firstChild.src + ", sizingMethod=scale)");
width: expression(this.firstChild.clientWidth+"px");
height: expression(this.firstChild.clientHeight+"px");
}
.pngtrns img { visibility: expression("hidden"); }
</style>
<span class="pngtrns"><img src="/limg/4/e/4e83b5d6.png" alt="IEIcon"></span>


表示できているでしょうか?

表示できていない場合は DirectX ImageTransformコンポーネントが有効になっていない可能性があります。 \WINNT\system32に入っているdxtrans.dllのバージョンが6.3.2800.xxxxになっていることを確認して、 regsvr32 dxtrans.dllを実行してみましょう。
でも、この方法でもIE5.01だと透過にならないんですよね。
使えるのはIE5.5からです。

ちなみに、この方法を使うと、右クリックで画像を保存できなくなるメリットもあります。

* 最新版のIE6のPNGFILTER.DLL 6.0.2800.1632 では表示できなくなっています。MSの嫌がらせ?

Internet Explorer 7 for Windows Server 2003 用セキュリティ更新プログラム (KB972260) から PNGFILTER.DLL を取り出してコピーして使ってみましょう。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です