难道Windows 10 和 11 不支持像 Windows 7 那样的自上而下的位图吗?

匿名
2024-04-26T02:39:24.32+00:00

我在文件中有一个自上而下的独立于设备的位图,并使用 LoadImageW() 加载它并获取句柄。

在 Windows 7 中,位图加载正常。在 Windows 10 和 11 中,加载相同的位图将返回 NULL 句柄,并将最后一个错误设置为零。我的理解是,这表示位图无效。

如果我将位图文件转换为自下而上的位图,Windows 10 可以很好地加载它。根据记录,自下而上的位图是标准的 Windows 格式 - 位图中的第一行像素是最底层的行。自上而下的位图是反转的,第一行像素是最上面的行。这由 BITMAPINFOHEADER 结构中的负 biHeight 成员指示。

正如我所说,Windows7 中的 LoadImageW() 加载了自下而上和自上而下的位图,没有任何问题。Windows 10似乎认为自上而下的位图(恰好是OS / 2格式,但由Microsoft记录)无效。我在文档中找不到任何声明不再支持自上而下位图的内容。

我使用 C++ 程序创建了一个测试 Visual Studio 项目来演示该问题,以及相同的自上而下和自下而上的位图,以及我第一次发布此问题。我通过链接提供了这个,但该帖子因“违反标准”而被删除。大概不允许链接,但似乎没有任何方法可以提供 zip 文件,我也无法上传 BMP 文件。但是,我将在此处发布测试程序。要重现该问题,只需将位图替换为自上而下的位图,您就会看到它在 Windows 10 和 Windows 11 上失败,但在 Windows 7 上运行良好。

此问题由: Windows 10 and 11 do not support top-down bitmaps like Windows 7? - Microsoft Q&A总结而来

Windows 开发 | Windows API - Win32
0 个注释 无注释

问题作者接受的答案

Tong Xu - MSFT 2,546 信誉分 Microsoft 外部员工
2024-04-26T03:18:49.7333333+00:00

你好, 欢迎来到 Microsoft Q&A!

经过重现并确认。https://aka.ms/AAkle05 反馈链接供参考。

如果这对您有重要影响,请通过以下链接中的“联系我们”选项卡打开事件,以便我们的工程师与您密切合作: https://developer.microsoft.com/en-us/windows/support/,请为此问题选择 Windows SDK 的“技术支持 - 编码/调试”。此外,如果支持工程师确定问题是由错误引起的,则服务请求将是一个免费案例,并且不会向您收费。

谢谢。


如果答案是正确的解决方案,请单击“接受答案”并请投赞成票。如果您对此答案有其他疑问,请点击“评论”。

注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

此答案是否有帮助?

0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

提问者可以将答案标记为“已接受”,审查方可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。