56467


**Q1.PNG24について**  
PNG24：24ビットカラー  
PNG32：24ビットカラー＋8ビットアルファチャンネル  
と思っていたのですが、下記はどういう意味ですか？

> png24  
>  [png8同様に情報がない部分は透過処理が可能](http://create-pleasures.com/png)

  * 24ビットカラー内(使用していない部分)にアルファチャンネルが含まれる。  
透明度%指定できる

  * 24ビットカラー内(使用していない部分)に透過が含まれる。  
透明度%指定できない

  * アルファチャンネルつきPNG-24の意味

* * *

**Q2.PNG8について**

> [PNG8（アルファチャネル）](https://iwb.jp/png8-png24-png32-analyze/)

どういう意味ですか？

  * 8ビットカラー内(使用していない部分)にアルファチャンネルが含まれる。  
透明度%指定できる

  * アルファチャンネルつきPNG-8の意味

* * *

**Q3.そもそも**

  * 24ビットカラー＋8ビットアルファチャンネル を何と呼ぶ？

>
> [24bitカラーにαチャネル8bitを加えたものを32bitカラーとは呼ばない](https://forums.adobe.com/thread/407626)

* * *

＜ 追記 ＞  
下記認識で合っていますか？

  * **alphaチャンネルがある場合**  
透明度%指定できる  
何色でも(半)透明にできる

  * **alphaチャンネルがない場合**  
透明度%指定できない  
何色透明にできるかはPNGのカラータイプによって異なる  
※tRNSチャンクで透過色を指定する


CC BY-SA 4.0
2019-07-07T00:07:20.730
56462
2019-07-08T04:09:39.377
2019-07-07T12:14:52.777
7886
7886
question
画像
PNG24(透過) と PNG8（アルファチャネル）について


そもそもPNG8 / PNG24 /
PNG32というのは正式な用語ではありません。ですので何を指すのかは筆者にしかわかりませんし、各々の筆者が同じものを指している保証がありません。

その上で、[PNGは仕様として次の種類のみ](https://www.w3.org/TR/2003/REC-
PNG-20031110/#table111)がサポートされています。

  * Greyscale; 1, 2, 4, 8, 16bit
  * Truecolour; 8, 16bit
  * Indexed-colour; 1, 2, 4, 8bit
  * Greyscale with alpha; 8, 16bit
  * Truecolour with alpha; 8, 16bit

alphaをサポートしない上３つに対しては透過色を指定できます。指定された色はその色が表示されるわけではなく透過します。

* * *

### A1.

よくわかりませんが、透過色のことを語ろうとしているのかもしれません。

### A2.

よくわかりませんが、少なくとも仕様上存在しない形式です。

### A3.

どう呼ぶかは個人の主義・好みで決まります。筆者が32bitで表現される他の色表現を知っているために、24ビットカラー＋8ビットアルファチャンネルのことを32bitカラーと呼びたくないと主張されたのかもしれません。


CC BY-SA 4.0
2019-07-07T00:50:00.043
56463
2019-07-07T00:50:00.043
4236
56462
answer


> **Q1.PNG24について**  
>  PNG24：24ビットカラー  
>  PNG32：24ビットカラー＋8ビットアルファチャンネル

**慣例的には**
上記の通りの解釈です。[PNG公式サイトFAQ](http://www.libpng.org/pub/png/pngfaq.html#png8-png24)より部分引用します：

> Q. What are "PNG8" and "PNG24"?  
>  A. _PNG24_ , on the other hand, is shorthand for "24-bit PNG" and refers to
> truecolor or RGB (red/green/blue) images. Each pixel in such images is 24
> bits (3 bytes) deep and directly specifies a color instead of acting as an
> index into a lookup table of colors (i.e., a palette). [...]
>
> [...] However, when tools occasionally mention _PNG32_ , they are invariably
> referring to 32-bit RGB+alpha (RGBA), not 32-bit gray+alpha. [...]

言及先サイトの説明は、かなり簡略化された（もしくは無理解による誤った）説明になっているようです。

> 24ビットカラー内(使用していない部分)にアルファチャンネルが含まれる。透明度%指定できる  
>  24ビットカラー内(使用していない部分)に透過が含まれる。透明度%指定できない

24ビットカラー＝8bit-
Truecolour（`IHDR`チャンクColourType=2）と仮定した場合、`tRNS`チャンクで"透明色"を1つだけ指定できます。透明度は100%固定です。

> アルファチャンネルつきPNG-24の意味

おそらく 8bit-Truecolour＋透明色指定 のことを指すと考えられます。この場合、任意の透明度指定ではなく、透明色を1つ指定できるだけです。

* * *

> **Q2.PNG8について**  
>  PNG8（アルファチャネル）  
>  どういう意味ですか？  
>  アルファチャンネルつきPNG-8の意味

PNG仕様上は直接対応するものが存在しませんが、8bit-
IndexedColour（`IHDR`チャンクColorType=3）＋`tRNS`チャンクによる透過パレット指定 を指す可能性が高いです。

> 8ビットカラー内(使用していない部分)にアルファチャンネルが含まれる。透明度%指定できる

概ね実現可能です。`tRNS`チャンクで透過パレットを指定する際、その[パレットインデックスがアルファ値として扱われ](http://www.libpng.org/pub/png/spec/iso/index-
object.html#11tRNS)ます。

* * *

> **Q3.そもそも**  
>  24ビットカラー＋8ビットアルファチャンネル を何と呼ぶ？  
>  24bitカラーにαチャネル8bitを加えたものを32bitカラーとは呼ばない

（個人の主義主張はさておき）PNG公式サイトFAQによれば、PNG32＝「24ビットカラー＋8ビットアルファチャンネル」を指すことが一般的のようです。

* * *

**追記への回答**

> 下記認識で合っていますか？
>
> alphaチャンネルがある場合  
>  透明度%指定できる  
>  何色でも(半)透明にできる

正しい認識です。

> alphaチャンネルがない場合  
>  透明度%指定できない  
>  何色透明にできるかはPNGのカラータイプによって異なる  
>  ※tRNSチャンクで透過色を指定する

一部不正確です。場合分けをすると下記の通りです：

  * Alphaチャネル無しGrayscale：ある1色(Gray値)を透明色(alpha=0)として指定できます。
  * Alphaチャネル無しTruecolour（RGB）：ある1色(RGB値)を透明色(alpha=0)として指定できます。
  * Alphaチャネル無しIndexedColour（パレット方式）：複数のパレットインデックスを指定できます。パレットインデックス値そのものがalpha値として扱われるため、例えばパレットインデックス=128を指定すると透明度50%として扱えます。


CC BY-SA 4.0
2019-07-07T03:02:47.460
56467
2019-07-08T04:09:39.377
2020-06-17T08:14:45.997
-1
49
56462
answer