プロが教える店舗&オフィスのセキュリティ対策術

アルファチャンネルについて質問です。

現在、透過PNGについて色々調べていて、分からない事があったので
質問します。

[Q1]
PNGには8bitと24bitの形式がありますが、そこにアルファチャンネルを
追加することで
・8bit形式のものは16bitのPNG画像
・24bit形式のものは32bitのPNG画像
となるのでしょうか?

[Q2]
アルファチャンネル付きのPNG画像のデータサイズ圧縮をする事は可能
なのでしょうか?
圧縮後も透過できる事とします。

以上の2点について解答お待ちしております。
よろしくお願いします。

A 回答 (2件)

>Q1



PNGでは、各画素の持つ色情報は、
・RGB各8bit=合計1画素あたり24bit
・RGB各16bit=合計1画素あたり48bit
・グレイスケール8bit=1画素あたり8bit
・グレイスケール16bit=1画素あたり16bit
などが選べます。アルファチャネル付きの場合は、これにさらにα情報が付加されて、
・RGBA各8bit=合計1画素あたり32bit
・RGBA各16bit=合計1画素あたり64bit
・グレイスケール8bit+アルファ8bit=1画素あたり16bit
・グレイスケール16bit+アルファ16bit=1画素あたり32bit
のようになります。
いわゆる「24bit形式」と呼ばれるのは、このうち「RGB各8bitの1画素24bit」もしくは「RGBA各8bitの1画素32bit」で、画素情報をそのまま圧縮するフォーマットを刺します。

一方、「インデックスカラー」と呼ばれる形式もがあります。これは、画素情報を「色番号」で表現するものです。インデックスモードでは、1画素を8bitで表現します。これが、いわゆる「8bit形式」と呼ばれるものです。

インデックスモードでは、画像データとは別に、カラーパレットと呼ばれる「○番の色は△△である」という「色番号と色情報の対応表」をデータとして保持します。
このパレットに使う色情報としては、「RGBA各16bit=色情報64bit」なんかも使えるのですが、
普通「8bit形式」と呼ぶ場合は、
色情報は「RGB各8bitの1画素24bit」もしくは「RGBA各8bitの1画素32bit」のどちらかを指す場合が多いかと思います。

まとめると、
・8bit形式は、アルファチャネルを追加しても、1画素あたりは8bitのまま
・24bit形式は、アルファチャネルを追加すると、1画素あたりは32bitになる
ということになります。

>Q2
PNG画像は、可逆圧縮を行う画像フォーマットです。
アルファチャネル付の画像であっても、アルファチャネルごとデータは全て圧縮を行いますし、当然圧縮したデータ中にアルファチャネル情報は保持されています。

「アルファチャネル付のPNG画像」はすでに圧縮済なわけですから、
そこからさらに「データサイズ圧縮」することはできません。
(zipファイルを、さらにzipファイルに圧縮しようとしても、サイズはもう小さくならない、というのと同じことです)

ただし、アルファチャネルを付けるかどうか以前の、PNGに関する基礎的な特性として、
・使われている色数が256色以内であり、元の形式が 24bit形式なのであれば、8bit形式にすることでデータサイズが削減できる可能性はあります。
・「フィルタリング処理」設定を適切に行う(圧縮しやすいように前処理にを行う)ことで、ファイルサイズを小さくできる可能性もあります。
(どちらの場合でも、PNGは可逆圧縮であり、情報の劣化はありません)

この回答への補足

早々の回答ありがとうございます。
参考になりました!

ただ、また分からない部分が出てしまったので質問させて下さい。

・PNG-8(256色)はαチャンネルを追加できない?
・PNG-24(フルカラー)からPNG-8(256色)へ変換を行った場合、αチャンネルは付かない?

要はαチャンネルはフルカラーにしか対応していないのかな?ということですね^^
よろしく願いします。

補足日時:2010/07/05 15:32
    • good
    • 0

質問者さんの補足で挙げられた疑問は、全て回答1で答えてるものなのですが、


説明がわかりにくかったようですみません。


> ・PNG-8(256色)はαチャンネルを追加できない?
出来ます。

> ・PNG-24(フルカラー)からPNG-8(256色)へ変換を行った場合、αチャンネルは付かない?
付けられます。

アルファチャネルのないタイプの、いわゆる普通の8bit形式PNGでは、
「RGB各8ビットの計24ビットで表現された色」を、画像全体で256通り使えます。

一方、アルファチャネル付の8bit形式PNGでは、
「RGBA各8ビットの計32ビットで表現された色」を、画像全体で256通り使えます。

8bit形式では、各画素の「色」をアルファチャネル込みで考えて、それで「256色使える」ということです。
(たとえば、黒(R=0,G=0,B=0,A=255)と完全透明(R=0,G=0,B=0,A=0)は、どちらもRGB値だけ見ると(0,0,0)で同じになってます。アルファ無しのPNGにする場合はどちらも同じ色で「1色」です。
ですが、アルファ込みのRGBA全体で見ると値が異なりますから、アルファ付8bit形式PNGで保存する際には黒と完全透明で「2色」と数えます)
    • good
    • 0
この回答へのお礼

僕の理解力が足りなくて、お手数おかけしました^^;
おかげさまで知りたいことが解決して、作業が進められます(`・ω・´)

ご協力ありがとうございました!

お礼日時:2010/07/07 13:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!