【发布时间】:2017-08-05 19:00:40
【问题描述】:
在 Chrome 中进行实验表明 rgba() 颜色被解释为非预乘 alpha。 (我没有尝试过 #RRGGBBAA 颜色,因为 Chrome 默认不支持它们。)
这方面有官方规范吗?
【问题讨论】:
在 Chrome 中进行实验表明 rgba() 颜色被解释为非预乘 alpha。 (我没有尝试过 #RRGGBBAA 颜色,因为 Chrome 默认不支持它们。)
这方面有官方规范吗?
【问题讨论】:
如果 CSS 使用预乘 alpha,这意味着例如不透明度为 50% 的 rgb(255, 0, 0) 必须是 rgba(127.5, 0, 0, 0.5)。而rgba(255, 0, 0, 0.5) 将无效。
The latest version of the spec 提及 rgb 和 rgba:
前三个参数分别指定颜色的红色、绿色和蓝色通道。 0% 表示该颜色通道在 sRGB 色域中的最小值,100% 表示最大值。 A 等价于 a ,但范围不同:0 再次表示颜色通道的最小值,但 255 表示最大值。
这定义了非预乘值。如果值是或可能是预乘的,这将不得不说明取决于 alpha 值的最大值。
The CSS3 speck2snowman69 的链接没有那么具体,但同样没有提及任何关于 RGB 值取决于 alpha 值的内容,并且包括如果它们被预乘将无效的示例。
我认为 API 不会使用预乘 alpha,除非这些 API 能够处理已经以某种方式部分处理过的图像数据,例如在图像处理库中。预乘 Alpha 通道是为了简化颜色混合计算。这实际上并不能帮助最终用户。
【讨论】:
【讨论】: