BITMAPINFOHEADER biHeight是我期望的两倍

Mic*_*ael 6 c winapi icons ico

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

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

例如,如果我有64x64图标,biWidth则为64,但是biHeight为128.

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

我主要是在关于BITMAPINFOHEADERMSDN文章中进行操作.

Joh*_*eks 8

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