Skip to content

eiw7o1/eLine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eLine

Simple GUI

半透明算法

混合算法目前在常用到的算法是AlphaBlend

计算公式如下:

假设一幅图象是A,另一幅透明的图象是B,那么透过B去看A,看上去的图象C就是B和A的混合图象, 设B图象的透明度为alpha(取值为0-1,1为完全透明,0为完全不透明). Alpha混合公式如下:

R(C)=(1-alpha)*R(B) + alpha*R(A)
G(C)=(1-alpha)*G(B) + alpha*G(A)
B(C)=(1-alpha)*B(B) + alpha*B(A)

R(x)、G(x)、B(x)分别指颜色x的RGB分量原色值。从上面的公式可以知道,Alpha其实是一个决定混 合透明度的数值。改变这个 alpha 值可以得到一个渐变的效果。

分离RGB色用"位与"、"移位"运算的方法:

透明的比例按2的N次幂来分级,这样可以快速运算。如果是按32级

Alpha = 1/32
B图的权重 = (32-n)/32,则A图的权重= n/32,

可以得到这样的算法:

R(C)= (32-n) * R(B)+ n* R(A);

再对R(C)右移5位(除以32)就可以了。

About

Simple GUI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors