我一直在使用WINAPI CreateDIBSection()
逐像素绘制,然后我将其 bitblt 到 DC。我很好奇。CreateDIBSection 的底层数据结构是怎么回事?BITMAPINFO 结构存储屏幕/客户端的宽度高度。然后是 VOID **ppvBits,处理 24 位颜色。那么这一切都可以看作是一个 3D 数组吗?与此类似
整数像素[高度][宽度][颜色]?
我问的原因是这个CreateDIBSection()
函数非常非常快,但是如果我创建一个类似的 (900*1800*(246*256*256)) 数组,它真的很慢。
微软是如何如此快速高效地获得这种方法的?我什么都试过了。Int*** 指向指针的指针,, int*** malloc
,尝试NEW
等,它们在大型数组上都非常慢。我只是好奇如何构建一个性能也很好的 3D 数组。有什么想法吗?
我需要一个大约 20000x1800x100000 的数组。CreateDIBSection()
快速存储,没有问题。但是标准的 C/C++ 动态数组呢?
我需要将CreateDIBSection()
andBITMAPINFO
中的内容存储在第二个数组中。