分两种情况 第一种,图标的色深1~24位,这时候用另一张黑白图片(1位色)当作像素掩模。白色为显示而黑色为不显示。这类图标从dos版的win开始一直到现在的系统都支持。缺点就是斜线和圆弧的锯齿感现在的显示器上很严重。这在以前不是问题。因为以前的显示器都是CRT的,邻近的像素已模糊融合在一起,锯齿感不严重。另一个缺点就是没有半透明的部分。图标给人一种像剪纸卡片那样贴在背景上的感觉。 第二种,图标色深32位RGB模式。这时候也有另一张黑白图当作像素掩模。但是地位下降。如果程序装载的设备内容不支持alpha通道,则使用这个掩模处理图像与背景之间的叠加关系。否则只使用原彩色图,并将每个像素数据的最高8位当作alpha通道(低24位当作RGB数据,一起又称RGBA)。背景可透过图标部分形成半透明的效果。可以模拟玻璃、塑料等的效果(比如vista~win8系统的回收站图标)。还可以利用alpha通道模拟斜线和圆弧边缘的插值像素,使之看起来更平滑。
每个元素的颜色不都是RGB的某个组合吗,也就是绝对色度,可是windows平台下面的ico/bmp在有些程序里面,很多部分可以表现为透明色,也就是图片的主体颜色不变,其他部分适应背景颜色。这是通过图片/icon文件的内容保存的,还是说,同时要某些绘图api调用的支持才能做到? 例如,我自己编制一个非常简单的mfc对话框程序,想在主界面显示一幅有背景透明色的图片,应该做的工作都有些什么呢? 谢谢
win7的画图板(mspaint)能用来添加和编辑透明色么?
19,468
社区成员
50,698
社区内容
加载中
试试用AI创作助手写篇文章吧