给定:一个像素,其颜色(表示为PC0)和alpha值(表示为PA0),分层在某种颜色的背景上(表示为BC)。
问题:如何更改另一个值(表示为PA1)的像素(PA0)的alpha值,以便像素和背景的合成颜色不会改变(PBC0 == PBC1)?换句话说,你会如何找到使原始和最终复合颜色(PBC0和PBC1)看起来相同的PC1?
答案 0 :(得分:3)
PBC0 = PC0*PA0 + BC*(1-PA0)
= PC1*PA1 + BC*(1-PA1)
如果您同时知道PA0和PA1,则可以解决PC1。
PC1 = (PC0*PA0 + BC*(1-PA0) - BC*(1-PA1)) / PA1
编辑:如果您使用颜色值范围为0-255的常用约定,则在上面将255替换为1.