Alpha混合中的Alpha值是怎么算出来的?

zhangxu421 2002-07-27 09:32:45
我有一张黑白图片,想用他做Alpha通道.但是每点的Alpha值是根据什么确定的?是这点的亮度?
(24位)
...全文
561 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzwu 2002-07-29
  • 打赏
  • 举报
回复

要将特效字与原来的背景混合,使背景在混合后不能变色,字也要不透明,应这样做:

为特效字准备一个独立的文件(或内存中缓冲区),这个文件为每一个象素,除了需要所需位数来表示色彩外,还需要一些位(如8bit)来表示透明度.

没有写字前整个文件每一点都设置为透明,而一旦写了字后,则此像素的透明度节就该为不透明.

实际显示两幅图的叠加图形时,首先要查上面一幅图的每一个像素的透明度的值,如不透明,就显示上层的字,否则,应显示底层的图像.

可以利用透明度的值的重新设定而改变上层图形显示时对底层的透明程度,但当然是要利用软件或硬件来完成.所谓半透明,对于上层未写字的地方.就是将底层图象的每一个像素搞淡些,也就是将RGB的成分改大一些.对于上层写有字或图形的地方,则应把上层的也要一起混合显示出来.

由于透明度的值用一个字节表示,其范围和黑白图像的值一致,所以可以把一张黑白图片用作某一图片的透明度值,也就是所谓Alpha通道的值.这时,每点的Alpha值就确定了上下层图片的混合方式; 如果上层没有图片,则此黑白图像将单独影响底层图片的可见度,使原来底层图片上看得出黑白图片的影子来,如同水印一样.

至于透明度的值如何规定,是任意的,可以规定0是透明,255是不透明,但也可以倒过来,把255定为透明,0为不透明. 在windows的bmp文件中,如果为8位索引色,其调色板的alpha值通常都设为0的.


zhangxu421 2002-07-28
  • 打赏
  • 举报
回复
还是不太明白
举个例子吧,有个程序,需要将特效字与原来的背景混合.但是背景在混合后不能变色(即不能变暗或变亮),字也最好不要变透明.应该怎样做呢?
(特效字是我用PhotoShop编辑好的.预先存在文件(BMP)中)
szchengyu 2002-07-27
  • 打赏
  • 举报
回复
是透明度,

0 是透明,255 是不透明
中间的就是半透明

但要注意,应该在 24 位图上进行处理,得到的图是 32 位的
================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]

4,446

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧