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

請問 TImage 物件的 canvas 問題?

答題得分者是:arisaka_matsuri
CPTL
一般會員


發表:2
回覆:1
積分:0
註冊:2004-09-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-19 12:07:41 IP:218.162.xxx.xxx 未訂閱
小弟目前正在學習用BCB作影像處理 但對TImage物件的觀念有些混亂,想請教前輩們幫忙解惑... Image->Canvas 和 Image->Picture->Bitmap->Canvas 這兩個所存的pixel在記憶體中是同一塊嗎? 因為早前我的觀念是... Image->Canvas是表單上顯示的圖形, 而Image->Picture->Bitmap->Canvas 則是記憶體中另外一個位置所存的圖檔 兩個是不相干的!! 而Image->Picture->SaveToFile() 則只是會儲存 Image->Picture->Bitmap->Canvas 裡的資料, 可是後來我實際用程式去跑, 例如: Image->Canvas->Pixel[X][Y] = TColor((RGB(0,0,255)); 再接著程式跟著跑 Image->Picture->Bitmap->Canvas->Pixel[X][Y] = TColor((RGB(255,0,0)); 發覺不管是在表單上所以示的圖形, 或是SaveToFile後的實際檔案, 都是以程式最後所填的值當成最後的值!! 以上面例為例, 最後出來的圖整張都是紅色!! 而將兩行程式順序對調後, 最後出來的圖就是藍色... 因此我在想, 是不是在記憶體中 Image->Canvas 和 Image->Picture->Bitmap->Canvas 都是用同樣一塊記憶體呢?? 若是的話,以後在存取 Image時, 是不是只要使用Image->Canvas即可? 因為之前程式總是用 Image->Picture->Bitmap->Canvas 感覺好多字, 好麻煩喔 ^^" 發表人 - cptl 於 2005/04/19 13:10:33
arisaka_matsuri
高階會員


發表:25
回覆:205
積分:231
註冊:2003-10-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-19 14:47:20 IP:140.113.xxx.xxx 未訂閱
dear CPTL:    根據 debug 的結果,就是指向同一塊位置....    如果只是覺得自打太多,也可以用
TCancas *pCanvas = Image->Picture->Bitmap->Canvas;
來取代
CPTL
一般會員


發表:2
回覆:1
積分:0
註冊:2004-09-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-19 16:51:18 IP:140.128.xxx.xxx 未訂閱
感謝 arisaka_matsuri 前輩的解惑, 以後就直接用 *pCanvas 的方式來存取資料了 ^^
系統時間:2024-05-12 1:49:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!