1

在 Delphi 7 中,我必须处理相当大的 24bpp 位图(几个 100 MB)。由于我想使用 Graphcis32 库进行进一步处理,因此必须将它们转换为 32bpp (TBitmap32)。然而,TBitmap32 的 LoadFromFile 方法会创建一个临时的常规 TBitmap 来加载原始 24bpp 位图,然后将其分配给 TBitmap32 以进行所需的格式转换。当然,在内存中有两个这样巨大的位图,内存负载大约会增加一倍,这对我的应用程序来说可能是致命的。

我在想的是一种将 24bpp 位图加载到预先分配的缓冲区中的方法,该缓冲区的尺寸使得 32 bpp 位图适合。然后,从缓冲区端开始,我想将 RGB 字节移动到 32bpp 所需的偏移量.

这可能吗?如何将位图加载到预分配的缓冲区中?任何想法?

4

1 回答 1

0

我不太了解 Graphics32 的工作原理。但是,如果您使用标准文件格式并且可以直接访问 TBitmap32 像素数据,您应该能够为执行加载和向上转换为 32bpp 的格式创建自己的图像加载器(如果没有其他方法)。

常用文件格式的规范网上到处都是,你用的是哪一种?

于 2009-08-19T16:57:29.173 回答