手机开发实战145——ALPHA介绍
来源:互联网 发布:淘宝 i7主机 编辑:程序博客网 时间:2024/06/05 05:16
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
便可得出混合后的颜色。
如果有多幅图像需要混合,则按照以上方法两幅两幅地进行混合。
算法实例:
首先,要能取得上层与下层颜色的 RGB三基色,然后用
r,g,b 为最后取得的颜色值;r1,g1,b1是上层的颜色值;r2,g2,b2是下层颜色值
r = r1/2 + r2/2;
g = g1/2 + g2/2;
b = b1/2 + b2/2;
以上为50%透明。
若要使用不同的透明度用以下算法(ALPHA=透明度):
(50%以下)
r = r1 - r1/ALPHA + r2/ALPHA;
g = g1 - g1/ALPHA + g2/ALPHA;
b = b1 - b1/ALPHA + b2/ALPHA;
(50%以上)
r = r1/ALPHA + r2 - r2/ALPHA;
g = g1/ALPHA + g2 - g2/ALPHA;
b = b1/ALPHA + b2 - b2/ALPHA;
- 手机开发实战145——ALPHA介绍
- 手机开发实战45——手机字库介绍
- 手机开发实战46——手机显示介绍
- 手机开发实战47——手机编辑器介绍
- 手机开发实战48——手机输入法介绍1
- 手机开发实战49——手机输入法介绍2
- 手机开发实战3——手机类型介绍
- 手机开发实战9——GSM信道介绍1
- 手机开发实战10——GSM信道介绍2
- 手机开发实战11——GSM频段介绍
- 手机开发实战16——GPRS APN介绍
- 手机开发实战32——SIM卡文件系统介绍
- 手机开发实战39——设计模式介绍
- 手机开发实战50——CALL介绍
- 手机开发实战51——SMS介绍1
- 手机开发实战52——SMS介绍2
- 手机开发实战53——SMS介绍3
- 手机开发实战54——SMS介绍4
- [JZOJ3431]【GDOI2014模拟】网格
- android onTouch()与onTouchEvent()的区别
- 11. 配置ContextPath【从零开始学Spring Boot】
- C++考试总结
- 手机开发实战144——YUV介绍
- 手机开发实战145——ALPHA介绍
- 12. 改变JDK编译版本【从零开始学Spring Boot】
- Linux系统启动程序和Linux常用命令整理
- 手机开发实战146——BMP介绍1
- 自定义信号和槽
- Blob和SyncedMemory代码阅读
- linux下端口的监听
- 详解URL的组成
- 字符串编码ASCII、Unicode和UTF-8