基于alpha图片的重叠显示

基于alpha图片的重叠显示

原理

透明素材图片具有透明度是因为它除了有RGB三个颜色通道以外,还有一个alpha通道。包含alpha通道的图像一般存储为png格式。在图片叠加显示时利用透明通道,让底层的背景和上层前景的RGB三个通道进行混合。使叠加混合后的图片效果能够保持透明的效果。

Alpha通道

在图形学中,ALPHA指的是除了颜色的三个分量(RGB)外的第四个分量:透明度。所以,一个真彩色(指利用RGB分量合成颜色)的像素就变成由四个分量组成:R、G、B、A。假设R、G、B、A均为从0到1的值,其中ALPHA=0为完全透明,ALPHA=1为完全覆盖,中间的数值代表半透明。

实现步骤

若对两张图片进行叠加,则需对需要组合的颜色先计算出不含ALPHA分量的原始RGB分量,然后与Alpha相加。比如现在有两幅图,分别称为背景图background(不带透明度)和前景图foreground,将前景图叠加在背景图上:
把图片background分解为foreground.r矩阵,foreground.g矩阵,foreground.b矩阵,foreground.a矩阵。
把图片B作为背景图分解为background.r矩阵,background.g矩阵,background.b矩阵。
根据像素点叠加公式得到叠加结果:
float alpha = foreground.a;
float r = (foreground.r * alpha) + (background.r * (1.0 - alpha));
float g = (foreground.g * alpha) + (background.g * (1.0 - alpha));
float b = (foreground.b * alpha) + (background.b * (1.0 - alpha));
float a = 1.0;

 alpha通道的值取值范围是0-255。0表示完全透明,255表示完全不透明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.伊恩.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值