如何推算图片上半透明色块的RGB值

对于以下的PPT:



如果不想花钱买下来,就要自己亲手来复制这个背景= =

背景的气泡采用的是半透明圆形,并且有两个圆形叠加的效果,如果只是单单取其RGB值来临摹,叠加部分就很繁琐,于是很自然的就想知道这个气泡的100%的颜色的RGB值是多少,以及每个气泡的透明度是多少,这样临摹起来就方便多了


查了一下网上的相关资料,发现这是可以计算的:

首先我们来了解一下ALPHA值的内涵


透明度值(ALPHA),其本质上是光的透射率,举一个栗子,假设我们的ALPHA值为20%,则意味着他的透光率为80%,我们可以将其想像为透光率为 80% 的彩色玻璃。我们透过这块玻璃看去,因为 80% 的光都透过了,因此留下来的颜色仅仅剩 20%,即所谓 0.2 的alpha值

接下来是两个半透明的叠加:将 alpha 为 0.2 和 0.6 的颜色进行叠加。这时,我们有了两块玻璃,一块透光率为 80%,还有一块为 40%。一道光束穿过,经过 80% 透光率的玻璃时,光线强度剩下 80%,再经过 40% 透光率的玻璃时,光线进一步被削弱,仅仅剩下 80% * 40% = 32%。这意味着有 32% 的透明性,即 alpha = 0.68

根据以上的理论,我们可以总结一些关于半透明色,RGB值的算法


公式1:对于单个气泡的ALPHA混合,根据简单的推理实验可以得知:

     C=C0+(C1-C0)*α

     其中,C为半透明度为α时的RGB值,C0为背景色,C1为圆的填充色


公式2:对于两个半透明色叠加的情况,假设两个半透明色的ALPHA值分别为α1,α2,则:

     α = 1-(1-α1)*(1-α2) = α1+α2-α1*α2

     α为两个半透明色叠加后,色块的半透明值


公式3:基于公式2,特别的,当两个相同半透明度的色块叠加时,新色块的半透明度为:

     α = 2α1-α1^2

     其中,α为两个半透明色叠加后,色块的半透明值;α1为原色块的半透明值


好了,以上为理论依据,根据此理论依据,我们就可以计算上图中半透明的原型色块的ALPHA和RGB值啦

首先,利用取色工具取色:

背景RGB:               24,52,64

透明色块RGB:         22,70,84

叠加后色块RGB:      20,86,100

假设原色的RGB为:x,y,z ; ALPHA值为α:

(x-24)*α = -2

(y-52)*α = 18

(z-64)*α = 20

(x-24)*(2α-α^2) = -4

(y-52)*(2α-α^2) = 34

(z-64)*(2α-α^2) = 36

联立不等式,可解得原色的RGB为:14,142,164; α为20%

代入尝试,完美解:)



评论(1)
热度(1)

© Hotcat | Powered by LOFTER