【发布时间】:2014-06-29 22:35:14
【问题描述】:
我想确认我对 PNG 文件格式描述的解释在颜色类型 0x02 和存在 tRNS 块的情况下是正确的。它在PNG网站上说:
对于颜色类型 0 或 2,无论图像位深度如何,每个样本都使用两个字节(请参阅 7.1:整数和字节顺序)。指定灰度采样值或 RGB 采样值的像素被视为透明(相当于 alpha 值 0);所有其他像素将被视为完全不透明(alpha 值 2bitdepth-1)。如果图像位深小于 16,则使用最低位,其他位为 0。
给这个相同的 tRNS 块:
Length: 6
Type: tRNS
Data: 00 ff 00 ff 00 ff
CRC: 37581b7d
这是否意味着 RRGGGBBB:0xFFFFFF 或白色被视为透明而所有其他颜色都保持原样?如果是这样,对于一般情况,我需要构造一个这种颜色的数组(比如 int 数组),并且在解码 IDAT 块期间,我需要查找颜色是否是透明颜色之一,如果是,它被视为(RRGGBBAA)0xRRGGBB00,还是完全透明?对于这种情况,什么是好的 LUT?
谢谢!
【问题讨论】:
标签: png