度々お世話になります。
下記のようにJPEG画像をBMPに変換したのですが
300ファイルを処理し50秒ほどかかりました。
環境は Win98SE,Celeron400MHz,64MB,Delphi6-Personal,
JPEG画像は1024×768,300kb程。
"showmessage"をいれて調べたら"Assign"に結構時間がかかっていました。
もっと高速に変換できる方法がありましたらお教え願います。
wTJpg := TJpegimage.Create;
wTBmp := TBitmap.Create;
wTJpg.LoadFromFile(ファイル名);
wTBmp.Assign(wTJpg); <- - - - -結構遅い
.
.
フォルダ内のJPGファイルを連続で読み込んでImageに表示する同じソースコードを D4とD6でコンパイルしてみたら、実行スピードは D4の方が倍くらい速かった。
”なぜだろう”さんへ。
ずいぶんお手間をとらせたみたいでありがとうございます。
Delphi6を再インストールしてみましたが解決できず、後は
OSの再インストールを試すのみ。どうも私のマシンの環境が問題のようです。
ありがとうございました。
「解決」が打たれましたが、実際の解決ではないようなので。
また、画像を扱うものにとって処理速度の向上は最も関心あることですので、これを機会に少し試してみました。
Assign は画像情報の全面的変換なのでどうしても時間がかかります。
劇的な改善策をご存知の方がいれば、私も助かります。
D6 -> D4 で倍というのはすごいことだと思います。
私は D4 を持っていないので、D3 で試そうとしたのですが、再インストールしないと使えない状態になっていて調べることができませんでした。
気は心程度であれば、GDI+ を使用することにより、私の環境での計測では 25% 前後処理を早めることができました。
因みに私のテスト環境は
D7 Professional, Windows2000 SP4,
CPU Celeron 2.66GHz, 空きメモリ 45Mb(Celeron が泣いている)
使用 Jpg画像 1024 * 768 です。
また、GDI+ への入り口は次で示されています。
https://www.petitmonte.com/bbs/answers?question_id=2793
ツイート | ![]() |