图标文件格式之带透明通道的图标

【字号: 日期:2022-07-04浏览:25作者:雯心

图标文件格式之带透明通道的图标

在Windows XP中引入了带8位透明通道的图标,而在这之前,只有一个称为mask的1位透明通道.在ICO文件中带透明透明通道的图像很简单,因为ICO格式支持0RGB 32bpp的图像,那么只需要改成ARGB 32bpp就可以支持透明通道了.当窗口管理器看到一个32bpp的图标,它会检查一遍透明通道,如果所检查的值都是0,则认为是0RGB格式,否则就认为是ARGB格式了,文件其他的部分保持不变.三种常见的绘制带透明通道的图档的方法:1.DrawIcon(DI_NORMAL): 最常见的调用,对于有透明通道的情况下,则将image和目的图像alpha混合.2.DrawIcon(DI_IMAGE): 将图标中image部分覆盖到目标上.3.DrawIcon(DI_MASK): 只绘制图标中的mask副本,并覆盖到目标上.DI_IMAGE和DI_MASK选项让应用程序能够绘制图标中两个图像中的其中一个.这样应用程序可以更好的控制图标的绘制流程.例如:他们可以通过mask给图标加一个阴影,mask表示图标的那部分是不透明的,需要产生阴影.在Windows Vista之后引入了PNG格式图标,使用png格式之后可以舍去mask掩码这个数据了,图标的透明通道直接由png来提供的透明通道来提供,如此,图标格式反而变得简单一些了,只需要填写好ICONDIR和ICONDIRENTRY再加上png数据就可以了.

相关文章: