1

Delphi 7では、かなり大きな24bppビットマップ(数100 MB)を処理する必要があります。さらなる処理のためにGraphcis32ライブラリを使用したいので、それらを32bpp(TBitmap32)に変換する必要があります。ただし、TBitmap32のLoadFromFileメソッドは、一時的な従来のTBitmapを作成して、元の24bppビットマップをロードします。このビットマップは、必要なフォーマット変換を行うためにTBitmap32に割り当てられます。もちろん、これらの巨大なビットマップを2つメモリに入れることで、メモリの負荷は約2倍になり、これは私のアプリケーションにとって致命的となる可能性があります。

私が考えているのは、24bppビットマップを事前に割り当てられたバッファーにロードする方法です。このバッファーは32 bppビットマップが収まるように配置されています。次に、バッファーの端から始めて、RGBバイトを32bppに必要なオフセットに移動します。 。

これは可能ですか?事前に割り当てられたバッファにビットマップをロードするにはどうすればよいですか?何か案が?

4

1 に答える 1

0

Graphics32 がどのように機能するかはよくわかりません。ただし、標準のファイル形式を使用していて、TBitmap32 ピクセル データに直接アクセスできる場合は、読み込みと 32bpp へのアップ コンバージョンを一度に行う形式用の独自のイメージ ローダーを作成できるはずです。

一般的なファイル形式の仕様はインターネット上に散らばっていますが、どの形式を使用していますか?

于 2009-08-19T16:57:29.173 に答える