画像操作にてエラー


ほとちゃん  2004-03-17 18:56:43  No: 7707

TJpegImageおよびTBitmapを使用して
画像の変換処理を作成しています。

しかし、大量画像の操作を行うと、
システムリソースが足らないのエラーが
発生してしまいます。

エラーにならないようにするには、
どうすればよろしいでしょうか?


にしの  2004-03-17 19:29:03  No: 7708

きちんとTBitmapやTJpegImageは解放していますか?
また、TBitmapには容量の制限があります。容量の大きい画像をしようしていませんか?
容量の制限によりリソース不足のエラーが出ているのであれば、中村氏のDHGLにあるTBigBitmapが使えると思います。
http://www.asahi-net.or.jp/~HA3T-NKMR/DGS/


ほとちゃん  2004-03-17 19:36:01  No: 7709

にしの様
ありがとうございます。
try 〜 finallyにて
必ずFREEするようにはしています。

容量の制限とありますが、具体的には、
どれくらいなのでしょうか?


にしの  2004-03-17 19:52:23  No: 7710

Delphi-MLの過去ログを探すといろいろ見つかりますよ。
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=065565
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=039131
このあたりがその話題かと。


ほとちゃん  2004-03-17 20:47:23  No: 7711

画像としては200KBぐらいのものを
1000枚扱います。

タスクマネージャーを見ていると、
FREEしているにもかかわらず、
残っているような感じになっています。

完全破棄はできないのでしょうか??


にしの  2004-03-17 20:55:32  No: 7712

コードを見ないと何とも言えません。
何か見落としがあるのかも。
MemCheckなどで、メモリリークしているかどうか確認してみてはどうでしょう。
MemCheckは、googleで検索すればすぐ見つかると思います
Delphiのバージョンによっては、修正が必要な場合がありますが、メモリリークを見つけるには便利なユニットです。


ほとちゃん  2004-03-17 23:01:13  No: 7713

MemCheckを使用してみた結果、TJpegImageの
JpegNeededやLoadFromStreamでメモリリークしてそうです。

ちなみにDELPHI5 PROFESSIONALを使用しています。


そ、それは  2004-03-17 23:35:27  No: 7714

ほんとうなら重大バグ!!!


sadoyama  URL  2004-03-19 09:50:56  No: 7715

> MemCheckを使用してみた結果、TJpegImageの
> JpegNeededやLoadFromStreamでメモリリークしてそうです。
Delphi3 pro と Delphi6 personal しか使ったことがないので、
Delphi5 については解りませんが、確かに「本当なら重大なバグ」です。
今までそういう報告を聞いたことがないので、見当違いだと思います。
にしのさんの Res と同意見で、TJpegではなく、ご自分のコード内の問題だと思います。
TJpegImage と TBitmap の両方とも finally 部で Free されているのでしょうか。


にしの  2004-03-19 20:36:37  No: 7716

http://buglist.jrsoftware.org/
ここを見る限りでは、メモリリークのバグは報告されていませんね。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加