深入了解图标,使用WIC对Windows Vista图标进行解码
2008-10-24 17:35:27 来源:WEB开发网Windows Vista 在图标中使用这些高质量的 PNG 图像,使用户产生了以下错觉:图标是矢量图像,可以瞬间从 16×16 像素直接放大到 256×256 像素。若要查看整个过程,请打开 Windows 资源管理器,按住 Ctrl 键并滚动鼠标滚轮。此效果令人印象深刻。当然,Windows Vista 的功能不仅限于此,它还可以创建带有文件夹内容预览效果的文件夹图标,但这已经超出了图标格式本身的范围,而是特定于 Windows 资源管理器的一项功能。
Windows 图标格式
图 2 中描述了图标格式的结构。第一个 WORD(两个字节)始终为 0,第二个 WORD 始终为 1;可将后者视为资源类型。图标和光标的格式凑巧非常相似。区分两者的方法是检查第二个 WORD,如果始终为 1,则是图标,如果始终为 2,则是光标。第三个 WORD 指示图标中包含的图像数。
紧跟这三个 WORD 值之后的是一系列用于描述图像的结构。此子结构中真正有用的值只有图像大小和图像偏移值。其余的值只起提示作用,并且不能保证始终正确填充,因此并不可靠。在大多数情况下,忽略这些值即可;通过检查 DIB 或 PNG 图像位本身,即可了解所需的任何与图像有关的信息。图像大小指示图像占用的字节数。图像偏移指示文件的开始部分与图像的起始位之间的偏移量。
基本解码器
现在,我们来了解一下如何开发适用于图标的基本 WIC 解码器。大多数情况下,这只是如何适当实现 IWICBitmapDecoder 接口的问题。不过,您需要了解一下有关下列八个最重要的接口方法的一些信息:QueryCapability、Initialize、GetFrame、GetContainerFormat、GetDecoderInfo、CreateComponentInfo、GetFrameCount 和 GetFrame。
- ››深入理解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)...
更多精彩
赞助商链接