UCGUI 技术文集 UCGUI 专业网站:www.ucgui.com
一. 透明处理的本质。
透明显示的原理
假设一张图片 " 与 #,如果 # 是透明的,其意即,透明 # 可以看到 ",但并不是完全
看到 ",只是看到 " 的朦胧的影象。在图形处理上,其实就是在 " 上面再显示 # 的时
候,对 # 上面的每个点的颜色做了处理,简单的说就是与 " 的颜色按比例进行了一个
混合,混合的时候是按照 $、、 分别进行混合的
透明显示的计算公式
%&% 是透明度,亦即显示 # 时 # 的每个象素点与 " 的相同位置的象素点进行混合的
比例系数$'()*+ '()*+ #'()*+ 为计算所得的新的 # 要显示的象素点的
$# 颜色分量,$'()'()#'()为 # 本来象素点要显示的象素点的 $# 颜色分量,
$'%)'%)#'%)为 " 的点的 $# 颜色分量
$'()*+ ,$'()-'%&%).$'%)-%&%/
'()*+ ,'()-'%&%).'%)-%&%/
#'()*+ ,#'()-'%&%).#'%)-%&%/
实现窗体透明显示面临的问题
经过这样合成之后,就可以获得 # 透明显示于 ",即可以看到 " 又可以看到 # 的效果。
但是这里其实也暗示了一个问题:
透明的图片 # 是在 " 的基础上显示的,即是在 " 显示之后再处理 #,所以考虑一下我
们下面要讨论的透明窗体
01窗体要透明,则必须总是在不透明的窗体之后绘制,不然就会被其它窗体挡住了
这是窗体 2 序的问题。
01透明的窗体不会对一般窗体构成遮挡关系这是窗体剪切计算时的问题
下面我们就将讨论一下 中如何利透明显示的知道实现透明窗体
二. UCGUI 中透明窗体支持。
中窗体的 2 序
为了帮助理解透明窗体在剪切时的处理这里有必要介绍一下 中 3 序的知识有
的朋友以为 中没有 2 序,其实在窗体的最基本的结构 4*5(6 当中,就包含
了 2 序
7 8 9:;<
*$=>$ /- ;8 +:+:9+8-
*$=>+%&8$ /-+%&8; %+& -
4*"#"?-(/-;+@%+%&&(%A-
4*B4CC D+/-C D+8+&+ %;&:-
UCGUI 论坛
评论4