我想确认我的PNG文件格式解释是否正确,其中颜色类型为0x02且tRNS块存在。PNG网站上写道:
这是否意味着RRGGGBBB:0xFFFFFF或白色被视为透明,其他颜色保持不变?如果是这样,对于一般情况,我需要构建一个这样的颜色数组(例如int数组),在解码IDAT块时,我需要查找颜色是否是透明色之一,如果是,它将被视为(RRGGBBAA) 0xRRGGBB00 ,或者完全透明?对于这种情况,什么样的LUT会比较好呢?
谢谢!
对于颜色类型为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会比较好呢?
谢谢!