【问题标题】:BITMAPINFOHEADER biHeight is twice what I expectBITMAPINFOHEADER biHeight 是我预期的两倍
【发布时间】:2011-08-14 08:18:58
【问题描述】:

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

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

例如,如果我有一个 64x64 的图标,biWidth 是 64,但 biHeight 是 128。

这是预期的行为吗?这是我第一次与BITMAPINFOHEADER打交道。

我主要从MSDN article on BITMAPINFOHEADER操作。

【问题讨论】:

    标签: c winapi icons ico


    【解决方案1】:

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

    【讨论】:

    • 图标应该包含一个有效的 XOR 掩码,人们没有 100% 的时间以 32bpp 运行(或者也包括较低位深度的图像)
    • 请参阅second paragraph in this Wikipedia section 以获得对此答案的正式确认。
    猜你喜欢
    • 2021-02-06
    • 1970-01-01
    • 2014-03-26
    • 2015-12-06
    • 2011-06-01
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    相关资源
    最近更新 更多