BITMAPINFOHEADER biHeight в два раза больше, чем я ожидаю - PullRequest
6 голосов
/ 28 апреля 2011

Я пишу приложение на C для анализа файлов значков Windows (ICO).

Когда я читаю в структуре BITMAPINFOHEADER для существующей записи значка, все переменные в структуре содержат ожидаемые значения, за исключением того, что biHeight, который должен содержать высоту в пикселях изображения, всегда вдвое больше, чем должно быть.

Так, например, если у меня есть значок 64x64, biWidth равен 64, но biHeight равен 128.

Это ожидаемое поведение? Я впервые имею дело с BITMAPINFOHEADER.

Я работаю в основном из статьи MSDN о BITMAPINFOHEADER .

1 Ответ

8 голосов
/ 28 апреля 2011

Да, это нормально. Это добавленная высота растровой маски «И» и растровой маски «XOR», поэтому для любого обычного значка это просто в 2 раза больше высоты значка. (Эти маски больше не используются для 32-разрядных значков; они являются удержанием.) Просто разделите на два.

...