掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
処理後その都度メモリを解放するには? (ID:22905)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
皆様こんばんは。totonicaと申します。 過去ログにも似たような話題があって恐縮ですが、 DHGL1.2のBigBitmapクラスとStretch関数を用いて 大量の画像の拡大縮小を行っているのですが、 ちゃんとFreeしてるにもかかわらず、 1つ画像を処理するごとにメモリが解放されず使用量がどんどん増加していき、 次第に容量不足に陥ってしまいます。 (プログラムを終了すると空き容量が元に戻ります) どうすればその都度メモリが解放されるようになるのでしょうか。 どなたかご教授下さい。 開発環境はXP Pro SP2+Del7 Pro、 元の画像は2950×2094のビットマップです。 以下の処理は検証用の物で、 ボタンクリックすることで100×100の縮小画像を作るものです。 何度もボタンを押していくと メモリ使用量がどんどん上がっていってしまいます。 (やはりプログラムの終了で空き容量が元に戻ります) procedure TForm1.Button1Click(Sender: TObject); var BMP: TBigBitmap; begin Inc(Index);//Integer型のグローバル変数 BMP:= TBigBitmap.Create; try begin BMP.LoadFromFile(ExtractFilePath(Application.ExeName)+'test.bmp');//2950×2094の元画像ビットマップの読み込み BMP:= Stretch(BMP,100,100);//元画像を100×100に縮小 BMP.SaveToFile(ExtractFilePath(Application.ExeName)+IntToStr(Index)+'.bmp'); end; finally BMP.Free; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.