在 Delphi 7 中,我必须处理相当大的 24bpp 位图(几个 100 MB)。由于我想使用 Graphcis32 库进行进一步处理,因此必须将它们转换为 32bpp (TBitmap32)。然而,TBitmap32 的 LoadFromFile 方法会创建一个临时的常规 TBitmap 来加载原始 24bpp 位图,然后将其分配给 TBitmap32 以进行所需的格式转换。当然,在内存中有两个这样巨大的位图,内存负载大约会增加一倍,这对我的应用程序来说可能是致命的。
我在想的是一种将 24bpp 位图加载到预先分配的缓冲区中的方法,该缓冲区的尺寸使得 32 bpp 位图适合。然后,从缓冲区端开始,我想将 RGB 字节移动到 32bpp 所需的偏移量.
这可能吗?如何将位图加载到预分配的缓冲区中?任何想法?