unpremultiplyAlpha
unpremultiplyAlpha
将一个预乘Alpha格式的颜色转换回其原始的、非预乘的(Straight Alpha)格式,以便进行正确的颜色调整。
核心优势
它能让你对半透明颜色进行数学上正确的颜色操作(如亮度调整),因为它能分离出纯净的RGB值,避免了直接修改预乘颜色导致的变暗等错误结果。
常见用途
对渲染目标进行后处理
实现自定义颜色混合模式
颜色拾取或数据分析
如何调整
这是一个纯函数,其行为取决于输入颜色的Alpha值。对于Alpha为1.0的颜色,输出不变;对于半透明颜色,它会“提亮”RGB分量以恢复其原始纯色;对于Alpha为0的颜色,它会安全地返回零向量。
代码示例
1// 假设 premultipliedColor 是一个预乘颜色
2// 将其转换为非预乘格式以获取纯色
3const straightAlphaColor = unpremultiplyAlpha( premultipliedColor );
4
5// 现在可以安全地修改纯RGB值
6const brightenedRGB = straightAlphaColor.rgb.mul( 1.5 );