インデックス付きPNG画像のアルファ透明度
質問
これが画像です:
この画像は、完全なRGBA PNGに保存されたシンプルな黒から透明の勾配です。
これが同じ画像で、GIMPによってインデックス付きアルファPNGに変換されます(Photoshopは同じ結果を生成します)
ご覧のとおり、勾配は半分透明で、半分透明になりました。
ここに同じ画像が再びありますが、今回は私が書いたPHPスクリプトによってインデックス付きアルファPNGに変換されました。
だから私の質問は、PHPスクリプトがそのような画像を問題なく作成できることを明確に示しているのに、なぜGIMPとPhotoshopがインデックス付き画像の部分的な透明性をサポートできないのですか?
パレットにアルファ情報が含まれている画像に「間違った」何かがありますか?
よりプログラミング関連の質問:最後の画像のこの透明性は、Internet Explorer 6で機能しますか?
解決 2
私はついに実際の答えを見つけました:カラーテーブルの各色のアルファ値を定義できるメタデータエントリがあります。ほとんどのグラフィックプログラムはこれを利用していませんが、特にGDが存在し、使用できます。
他のヒント
記録のために、PNGはAlphaチャネルを使用して文字通りインデックス画像をサポートしていません。本当に起こっているのは、PNGを使用すると、それらの色のアルファ値を持つカラーテーブル(つまり、インデックス)に追加の色を追加できることです...完全なアルファチャネルではありません。 fwiw ...
花火以外の別のオプションはです pngquant, 、RGBA PNGを透明性のあるインデックス付きPNGに変換するコマンドラインアプリケーション。
私は見つけました この郵便受け それを使用する方法についてもう少し語っています。
WindowsのIE6以前は、迷惑な回避策なしに可変透明性PNGをサポートしていません。インデックス付きPNGは、通常は非常にうまく機能する完全に不透明な部品のみを表示します。ドロップシャドウは消えますが、ロゴまたはアイコンの不透明な部分が表示され続けます。
このページには、より多くのPNG圧縮および量子化ツールを備えたより良い説明と指示があります。 http://calendar.perfplanet.com/2010/png-that-works/
ええ、私はあなたが何を意味するのか知っています。花火は、問題なくPNG8+アルファを作成および編集できることを知っている唯一の画像編集プログラムです。より多くのペイントプログラムがこのフォーマットをサポートすることを望みます。花火は高価です!