是否可以使用 Win32 GDI 函数将文件中的 PNG 加载到 HBITMAP 中?如果不是,那么不使用外部库(如 libpng)的最轻量级解决方案是什么?
原文由 jnm2 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 StretchDIBits
API 来完成,但受操作系统/驱动程序可用性的限制。
有关详细信息,请参阅 MSDN 文档:
http://msdn.microsoft.com/en-us/library/dd145121(v=VS.85).aspx
http://msdn.microsoft.com/en-us/library/dd145107(VS.85).aspx
对于误导了对这个问题感兴趣的各位,我深表歉意。让我纠正我的错误。否 StretchDIBits
用于 PNG 绘图。您最好尝试 WIC 方法或考虑将 GDI+ 集成到您的项目中的方法。
原文由 9dan 发布,翻译遵循 CC BY-SA 2.5 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答468 阅读✓ 已解决
您可以使用 Windows 映像组件 来加载 PNG 文件(在 Windows XP SP2 和更高版本上)。有关如何使用 API 的介绍,请参阅 MSDN 杂志,有关从 IStream 加载 PNG 并将其转换为 HBITMAP 的代码示例,请参阅 我的博客文章。