图片的半透明处理

来源:互联网 发布:linux 安装2个jdk 编辑:程序博客网 时间:2024/06/05 17:30
半透明原理: 
  假设LCD是256色的。颜色格式为332(RGB) 
  显存中的每一个字节的数据对应一个象素点。 
  在数据写入显存之前,读取相应相素点值,然后与新的数据按一定的规则混合之后,再写入相应像素点的显存。 

  这样主要问题关键是混合算法。 
  混合算法目前在游戏上常用到的算法是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混合技术,可以实现游戏中的许多特效,比如火光、烟雾、阴影、动态光源等半透明效果。
原创粉丝点击