α付PNG-8のプロパティ表示について(Windows XPのエクスプローラ)

αなし
PNG-8: ビットの深さ 8
α付
PNG-8: ビットの深さ 32


フルカラーPNGはαなしでは24
αが付くと32でそれぞれPNG-24,PNG-32って呼ばれるのかな


透過GIFをPNGに変換してもビットの深さが8にならず、フルカラーになっているのかと思っていたがこういうことらしい。
どういうことなんだぜ。



PNGの透過色はてっきりパレットのインデックスを指定してるのかと思ってたけど(GIFはそんな感じのはず)、
tRNSチャンクにパレットにある色数以下の、パレットの各色に対応した8bitのα値の配列があり、そこに0が入っていればそれが透過色ということになっているらしい。つまり透過かそうでないかの判定材料に過ぎないと。
tRNSチャンクはパレットの色数より少ないことがある。パレットの色に対応するα値がない場合それは透過色でないとみなされる。


TweakPNGというツールで複数のα値を0に変えてみてもPhotoshopでは最後に0の指定されている色しか透過されなかった。
XPにあるWindows 画像と FAX ビューアでは、α値が0になっている色すべてが透過されていた。


PNGの仕様は読んでないからわからんけどどっちが正しいんだろう。
PNGを吐き出すツールは透過する色がひとつに絞られるのがまぁほとんどだと思うのでどちらでも問題は起こらないとは思うけど。


α値が0のものただひとつだけが有効になると考えれば、透過する色をパレットの先頭に配置してやればtRNSを最小とすることができるわけだ。
最初が透過色の場合と最後が透過色の場合では255byteくらいの差が出るということだなぁ。