【问题标题】:Can a PNG image that is entirely opaque contain an alpha channel?完全不透明的 PNG 图像可以包含 alpha 通道吗?
【发布时间】:2017-03-01 23:04:27
【问题描述】:

是否可以构造一个完全不透明的 png 图像(这意味着图像中的每个像素都是不透明的)但图像数据本身具有 alpha 通道?

为什么有些PNG图片没有alpha通道?

【问题讨论】:

标签: png


【解决方案1】:
  1. 是的。就像 RGB 图像可能仅包含红色通道中的数据,而不包含绿色和蓝色通道中的数据; “未使用”的频道不是问题。 Alpha 是一个独立的通道,特别是,它的值应该独立与相关的像素颜色:“PNG 不使用预乘 alpha”(6.2 Alpha representation )。

    有关更多详细信息,另请参阅 official specifications 中的 12.4 Alpha channel creation

    alpha 通道既可以看作是临时隐藏图像透明部分的蒙版,也可以看作是构建非矩形图像的一种手段。在第一种情况下,应保留完全透明像素的颜色值以供将来使用。在第二种情况下,透明像素不携带有用的数据,只是用来填充 PNG 所需的矩形图像区域。在这种情况下,应该为完全透明的像素都分配相同的颜色值以获得最佳压缩效果。

  2. 因为他们不需要,按照相同的规范:

    ... PNG 为 GIF 提供了一种无专利的替代品,并且还可以替代 TIFF 的许多常见用途。支持索引颜色、灰度和真彩色图像,以及一个可选 alpha 通道。 (我的重点)

【讨论】:

  • 您可以将任何 PNG 文件视为代表每样本 16 位的 RGBA“规范”图像;如果所有像素都是不透明的,则可以省略 A 通道,这意味着一个全不透明的 A 通道。如果每个通道仅使用 1、2、4 或 8 位可以无损失地表示所有像素,则可以减少位深度。如果每个像素都是红色 == 绿色 == 蓝色的某个灰度级,则可以省略两个颜色通道。在某些情况下,透明度/不透明度可以通过 tRNS 块更有效地表示,并省略 A 通道。这在 PNG 规范中都有解释。
猜你喜欢
  • 2014-10-30
  • 1970-01-01
  • 2010-12-30
  • 2019-03-18
  • 1970-01-01
  • 2018-02-04
  • 2012-11-24
  • 1970-01-01
  • 2012-12-16
相关资源
最近更新 更多