如何在不改变结果颜色的情况下更改像素的alpha值?

时间:2012-02-14 19:10:22

标签: image image-processing colors transparency

给定:一个像素,其颜色(表示为PC0)和alpha值(表示为PA0),分层在某种颜色的背景上(表示为BC)。

问题:如何更改另一个值(表示为PA1)的像素(PA0)的alpha值,以便像素和背景的合成颜色不会改变(PBC0 == PBC1)?换句话说,你会如何找到使原始和最终复合颜色(PBC0和PBC1)看起来相同的PC1?

1 个答案:

答案 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.