深入了解图标,使用WIC对Windows Vista图标进行解码
2008-10-24 17:35:27 来源:WEB开发网最后,图标不再使用颜色表,而是直接针对每像素存储 24 位 (bpp),其中红、绿、蓝色值各 8 位。这样可以显示色彩鲜明的图像,但由于仍然使用位掩码来确定透明度,所以边缘经常非常粗糙。幸运的是,图标位图通常比较小,因此这实际上并不是什么大问题。
在开发 Windows XP 期间,Microsoft 希望引入质量更好的较大图标,但指定透明度时所用的位掩码方法却无法达到此目的。此时需要一个 Alpha 通道,使每个像素都能够达到任何透明度级别,从而实现阴影等效果。在 Windows XP 中,图标开始使用 32bpp,其中容纳了 Alpha 通道,通道中的每个像素都可以指定自己所需的透明度级别。为实现兼容,这些图标仍然包含位掩码,但是如果旧版应用程序没有使用 Alpha 通道,而是误用了位掩码,则将导致图标的轮廓明显参差不齐,并且没有阴影效果和图标设计人员希望实现的其他视觉效果。不过,针对 Windows XP 正确编写的应用程序则可包括精美的 32bpp 图标。Windows XP 也已经开始进一步提升较大图标(高达 48×48 像素),从而增强视觉效果。
在开发 Windows Vista 期间,Microsoft 意识到已无法延续在 Windows XP 中制定的发展趋势。虽然 DIB 格式在运行时效率很高,但随着位图越来越大,它们占用的磁盘和内存空间也越来越大。计算能力的提高意味着可以使用功能更加强大的图像格式,因此 Microsoft 选择了 PNG。Windows Vista 中的图标可以嵌入 PNG 图像而不是 DIB 图像,而 PNG 图像现已广泛应用于 Windows 中,它允许图标使用精美的 32bpp 提供大小为 256×256 像素的位图,而空间需求只是 DIB 的一小部分。图 1 显示了 Windows Vista 中的部分图标。
- ››深入理解JAR包
- ››深入分析Volatile的实现原理
- ››深入理解Flash Player的应用程序域(Application ...
- ››深入理解flash函数(AS2)
- ››图标设计中的几何形状应用
- ››深入理解Android消息处理系统——Looper、Handler...
- ››深入理解SET NAMES和mysql(i)_set_charset的区别
- ››深入理解Mysql字符集设置
- ››深入浅出实战攻防恶意PDF文档
- ››深入剖析防火墙策略的执行过程:ISA2006系列之六
- ››深入JavaScript与.NET Framework中的日期时间(3)...
- ››深入JavaScript与.NET Framework中的日期时间(2)...
更多精彩
赞助商链接