我正在用C编写一个应用程序来解析Windows图标文件(ICO)。
当我在BITMAPINFOHEADER
结构中读取现有图标条目时,结构中的所有变量都包含预期的值,但biHeight
除外,它应包含像素的高度(以像素为单位)。图像,总是两倍。
例如,如果我有64x64图标,biWidth
为64,但biHeight
为128。
这是预期的行为吗?这是我第一次处理BITMAPINFOHEADER
。
我主要是从MSDN article on BITMAPINFOHEADER开始运作。
答案 0 :(得分:8)
是的,这很正常。它是“AND”位图蒙版和“XOR”位图蒙版的增加高度,因此对于任何普通图标,它只是图标高度的2倍。 (这些掩码不再用于32位图标;它们是一种保留。)只差两次。