几何尺寸与公差论坛

 找回密码
 注册
查看: 1140|回复: 1

图象的透明处理是怎么样实现的?

[复制链接]
发表于 2009-8-19 19:53:23 | 显示全部楼层 |阅读模式
ALPHA是什么?在图形学中,ALPHA指的是除了颜色的三个分量(RGB)外的第四个分量:透明度。所以,一个真彩色(指利用RGB分量合成颜色)的像素就变成由四个分量组成:R、G、B、A。在我们的讨论里,设R、G、B、A均为从0到1的值,其中ALPHA=0为完全透明,ALPHA=1为完全覆盖,中间的数值代表半透明。这样的设定是为了能使本文独立于显示硬件。我们把诸如(R,G,B,A)这样的东西称为四元组。一个这样的四元组代表一个由R*A、G*A、B*A组合而成的颜色。   
   
    有一点重要的是,要清楚分辨如下两个关键像素的意义:   
  黑色=(0,0,0,1)   
  完全透明=(0,0,0,0)   
   
    下面是如何根据ALPHA通道数据进行混合的算法:   
    简单地,我们只需要把需要组合的颜色计算出不含ALPHA分量的原始RGB分量然后相加便可。比如现在有两幅图象,分别称为图象A和图象B,由这两幅图象组合而成的图象称为C,则我们有如下的四元组:   
      A:   (Ra,Ga,Ba,ALPHAa)   
      B:   (Rb,   Gb,   Bb,   ALPHAb)   
    和组合后的RGB三元组:   
      C:   (Rc,   Gc,   Bc)   
    则:   
      Rc   =   Ra   *   ALPHAa   +   Rb   *   ALPHAb   
      Gc   =   Ga   *   ALPHAa   +   Gb   *   ALPHAb   
      Bc   =   Ba   *   ALPHAa   +   Bb   *   ALPHAb   
    便可得出混合后的颜色。   
    如果有多幅图像需要混合,则按照以上方法两幅两幅地进行混合。
 楼主| 发表于 2009-8-19 19:53:39 | 显示全部楼层

回复: 图象的透明处理是怎么样实现的?

给图象的每个像素的三个颜色值分别乘以一个0到1之间的值(就是透明度),就行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|几何尺寸与公差论坛

GMT+8, 2024-5-10 22:54 , Processed in 0.071906 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表