【发布时间】:2012-01-20 22:05:35
【问题描述】:
我需要在我的 MFC/WinAPI 应用程序窗口中显示位图。位图大小可以是不同的 - 例如 40MB、100MB、500MB、700MB、1GB 等等。不适合应用程序窗口的巨大位图应显示滚动条。
问题是即使内存是通过CreateFileMapping+CreateDIBSection分配的,系统也无法为一些大尺寸创建位图。
是否有处理此类案件的方法?我想我需要将我的位图分成许多小块,但我不确定这是不是正确的方法。
【问题讨论】:
-
我会认真考虑分页技术(尤其是对于非常大的图像!):考虑一个游戏,一次只加载一小部分纹理(你看到的那些)。此外,在这种情况下,诸如“低分辨率版本”之类的技术用于远处的事物或(也可能是“加载时”)。当然,这会使事情变得有些复杂,它尤其是使得一些图像格式难以解码/加载成块......例如找到已经这样做或编写的库 - 但不是真的!太复杂了! -- 你自己的:-) (但也许是预分割或对大量图像友好的格式?)
-
WIC api 擅长处理巨大的位图。获得 64 位版本的 Windows 是快速解决方案。 msdn.microsoft.com/en-us/library/windows/desktop/…
标签: windows winapi visual-c++ gdi