« 2244.jp - daily 2002.02 - 2008.10

IE6/7でjpgにfilter:alpha(opacity)をあてたときに出るバグ?

※IE以外の方には関係ないエントリー。

かなりレアな状況だと思うのだけど、偶然遭遇したのでメモ。

IE6/7でjpg画像に対して「filter:alpha(opacity=n);」をあてると、
なぜかドット(ピクセル)抜けみたいな症状がでた。

どたなかの参考画像
※IE限定のようなので、IE環境でないと確認できず。

最初jpgだしプロファイルかなーとおもっていたのだけど、どうもはっきりしない。
どうやら特定色(#02050a)のみが抜け落ちるらしい。
最初白い点がでる、と認識していたのだけど。。
おもしろいのが、抜け落ちた箇所は透過してた。
つまり、透過JPGになる。

以下サンプル

■通常画像
b.jpg
フツー。

■filter:alpha(opacity=50);としてみる。
b.jpg
アレ。上と同じ画像なのに。

■かつ、背景色しいてみる。


b.jpg

透過JPG。。


なんだろコレ。
googleで調べてもなかなか当たらないし。

解決策としては、

1. IE8だとfilterそもそも使えんから気にすんな、先を見ろ、haha! (とある外国人ブログより意訳)
2. トーンカーブ適当にあてるか、特定色置換をおこなって、#02050aをなくす。
3. pngにする。

まあ、3. pngにする、がまっとうですな。

※ただはっきりしないのが、#02050aでもOKな場合もあるということだ。
上の画像は上記の症状がでた写真画像を塗りつぶしてつくったものだけど、
新規ファイルとして#02050aで塗りつぶした画像をつくったら今回の症状はなかった。
となると、、やっぱりプロファイルなどか。。なんにしても原因ははっきりしなかった。

IEで、filter:alpha(opacity)を使うときに、#02050aがうまく表示されないことがある。
そういうときはpngにしてみよう、っていうのがまとめ。