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

Roy Li - MSFT 32,351 信誉分 Microsoft 供应商
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 API - Win32
Windows API - Win32
一组适用于桌面和服务器应用程序的核心 Windows 应用程序编程接口 (API)。 以前称为 Win32 API。
45 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Tong Xu - MSFT 1,811 信誉分 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 个其他答案

排序依据: 非常有帮助