HOME | ドキュメント |  ブログ  |  BBS  |  瓦版  | 将棋プロジェクト |  物置小屋   

Zope Developers Camp 2005/Winter 象歩ブログ CJKSplitter と UnicodeBlockTokenizer
04 March 2005

IE で PNG 透過表示ができない?

PIL (Python Imaging Library) にパッチをあてる
Python  

雪山でキャンプしてる人達や、雪のため電車が遅れて打ち合わせに参加し損なった人が居る中で、のんびり 将棋界で一番長い日 を楽しもうと思ったのだけどやっぱり無理でした。

象歩の将棋盤は Python Imaging Library (PIL) を使ってダイレクトに PNG 画像を作ってるわけですが、 IE6.x では PNG の透明画像をうまく表示できないようです。 256 色パレットの透明色は表示できるようなのですが、RGB + αチャネル付きが表示できません。 他のブラウザでは表示できてるから書いてるのですが。

少しだけ調べてみると PNG ファイルのヘッダに bKGD chunk ブロックを追加するとうまく表示できるらしいと判りました。 これは必須 chunk では無いので IE のバグでしょう。 ということでパッチ Imaging-1.1.4-PIL-RGBA.patch を作成。これで一応背景色は透けて見えます。


ですが、背景が画像の場合はやはり透過表示になりません。このへんは IE の根本的な設計不良な気がします。 http://www.libpng.org/pub/png/pngapbr.html にいろいろ書いてあるけど深追いはしない。

最後にツールを紹介。 pngcheck は便利です。 PNG 形式 をチェックできます。たとえばこんなふうに、

$ pngcheck -v game2.png
File: game2.png (28225 bytes)
  chunk IHDR at offset 0x0000c, length 13
    510 x 354 image, 32-bit RGB+alpha, non-interlaced
  chunk bKGD at offset 0x00025, length 6: red = 255 green = 255 blue = 255
  chunk pHYs at offset 0x00037, length 9: 2835x2835 pixels/meter (72 dpi)
  chunk tIME at offset 0x0004c, length 7:  4 Mar 2005 02:44:17 GMT
  chunk IDAT at offset 0x0005f, length 8192
    zlib:  deflated, 32K window, maximum compression
  chunk IDAT at offset 0x0206b, length 8192
  chunk IDAT at offset 0x04077, length 8192
  chunk IDAT at offset 0x06083, length 3498
  chunk IEND at offset 0x06e39, length 0
No errors detected in game2.png (96.1% compression).
chunk タグを表示できます。

Comments
There is no comment.
Trackbacks

【注意】TrackBack 送信なさる場合、 あなたの記事中に参照リンク (当ブログの URL 記述) が必要です。 トラックバックスパム防止のため、御了承ください。

IEでの透過PNG。

象歩 - IE で PNG 透過表示ができない? IEで透過PNGが出来ないのを...

Posted by: D.O.D(仮) at September 25,2006 01:21
IEでのpng画像の透過色は△

サイトのロゴをpng形式で作成して、ロゴの背景を透過色に設定して、めでたしなのだ...

Posted by: groundwalker.com at January 06,2007 02:04
アルファちゃんねる

http://www2.tba.t-com.ne.jp/akifu/

ここ本サイトなんですけど、
WindowsのIEでは透過PNGって
サポート外なんですね。昨日始めて知りました。
漫画喫茶で見たとき、背景が真っ黒でレイアウトもぐちゃぐちゃで
これを数ヶ月間公開していたことに
ショックを受けました。

Posted by: idol-fun at April 14,2007 15:09
Post a comment











一回プレビューして投稿内容の確認をしてください。その後に投稿可能になります。