6

我正在用 C 编写一个应用程序来解析 Windows 图标文件 (ICO)。

当我在BITMAPINFOHEADER结构中读取现有图标条目时,结构中的所有变量都包含预期的值,除了biHeight应该包含图像高度(以像素为单位)的值始终是它应该是的两倍。

因此,例如,如果我有一个 64x64 图标,biWidth则为 64,但biHeight为 128。

这是预期的行为吗?这是我第一次处理BITMAPINFOHEADER

我主要从BITMAPINFOHEADER 上的 MSDN 文章进行操作。

4

1 回答 1

8

是的,这很正常。它是“AND”位图掩码和“XOR”位图掩码的附加高度,因此对于任何普通图标,它只是图标高度的 2 倍。(这些掩码不再用于 32 位图标;它们是一种保留。)只需除以 2。

于 2011-04-28T02:24:05.073 回答