全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1413
推到 Plurk!
推到 Facebook!

重覆讀取圖片至bitmap物件,會造成什麼問題嗎?

答題得分者是:taishyang
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-11 11:33:29 IP:61.230.xxx.xxx 未訂閱
我宣告全域的一個bitmap物件:bmp,主要是為開啟.bmp檔而設。 第一次我用bmp->LoadFromFile()開啟一張256X256的圖處理, 處理完之後,並沒有做任何釋放記憶體的動作,我再load一張 512X512大小的做處理,此時bmp的記憶體至少變成四倍,程式 正常執行,沒有出現錯誤。所以我有個疑慮,這樣使用不會造 成記憶體錯誤嗎?    
Graphics::TBitmap *bmp = new Graphics::TBitmap(); //全域變數    Button1Click
{
     Bmp->LoadFromFile(OpenPictureDialog1->FileName);         Image1->Width  = Bmp->Width;
     Image1->Height = Bmp->Height;
     Image1->Picture->Bitmap = Bmp;
}
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-11 13:54:23 IP:140.135.xxx.xxx 未訂閱
JerryKuo您好:   假如您一直做讀新檔的動作(按按鈕),我想應該會造成記憶體不足吧   若您想重複使用Bmp的話可以加上這一行試試看    
Bmp->ReleaseHandle();
使用完後再加上
delete Bmp;
順心 <>~我也是在學習的階段,所以請您多多見諒與指教~ 發表人 -
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-14 11:52:08 IP:210.68.xxx.xxx 未訂閱
引言: JerryKuo您好: 假如您一直做讀新檔的動作(按按鈕),我想應該會造成記憶體不足吧 若您想重複使用Bmp的話可以加上這一行試試看
Bmp->ReleaseHandle();
使用完後再加上
delete Bmp;
沒有加ReleaseHandle,我做了連續開檔測試,按了數十次,都不會出現錯誤。 所以加了ReleaseHandle(),很難測出是否有用。 我想問"bitmap物件是否有類似freememory的指令",把記憶體清除,但bitmap物 件還在,因為是當作全域的變數,所以bitmap必須要留著,不能delete掉,delete 掉不就不能再使用囉。
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-14 12:30:45 IP:140.135.xxx.xxx 未訂閱
JerryKuo您好:    
引言:bitmap物件是否有類似freememory的指令",把記憶體清除,但bitmap物件還在,因為是當作全域的變數,所以bitmap必須要留著,不能delete掉,delete掉不就不能再使用囉。
您要的功能應該就是
Bmp->ReleaseHandle(); 
您可以參考下面的連結 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=32646 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-14 15:13:20 IP:210.68.xxx.xxx 未訂閱
你好: 我去查了一下releasehandle()的用法,順便也找到 Dormant(); // Free up GDI resources FreeImage(); // Free up Memory 這兩個指令,我現在是三個一起用,能盡量釋放就盡量釋放 老實說,加了這些指令,還是看不出什麼效果和他真正的功能. 因為我把這三行加在開檔之後,如果他真的release掉記憶體 照理說,開檔後的bitmap,已經什麼都沒了,沒有任何像素,也讀不到 但是他還是能做影像處理,只是處理完的圖是一張白色的圖, 什麼都沒有。真是奇怪。 物件導向還真難... 謝謝囉版主.. 發表人 - jerrykuo 於 2003/07/14 15:20:21
系統時間:2024-04-29 7:51:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!