有關 Bitmap 與 TList 的問題 |
答題得分者是:RedSnow
|
Ansonku
一般會員 發表:13 回覆:15 積分:5 註冊:2002-10-23 發送簡訊給我 |
想要練習寫一些影像的程式
假如說我要對一個影像作一些處理
並且希望把處理步驟留下來 就像是 photoshop 裡面的步驟紀錄一樣
我隨時可以恢復到某個步驟
我想到的方法是用 TList
但遇到一些問題
我的程式如下
//--------------------------------------------------------------------------- #include處理步驟 1.開啟 jpg 此時會加入 TList 連結 2.將開啟的圖片經過ImgFilterV 處理,此時會傳回一個新的 Bitmap 我一樣加入 TList 所以此時 TList->Items[0] = 原來圖檔 TList->Item2[1] = 這是處理過後的圖檔 最後我會在 Image1 中秀出 處理過後的圖檔 而 Image2 中秀出 原來的圖檔 但是結果並非如此 Image1 中秀出 處理過後的圖檔 Image2 也秀出 處理過後的圖檔 TList->Items[0] 中的 link 是錯了嗎 不然怎麼會都是秀出處理過後的圖檔 不知道各位前輩知道不知道小弟是否哪邊觀念不對 另外有更好的方法來管理處理過程所產稱的圖檔嗎? 謝謝~~ 發表人 - |
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
Ansonku 您好: 您把下列這兩行的順序掉換一下應該就可以了:
Image1->Picture->Bitmap->Assign((Graphics::TBitmap*)MyList->Items[RecordNum]); Image2->Picture->Bitmap->Assign((Graphics::TBitmap*)MyList->Items[0]);因為 MyList 的 Items[0] 存放的是 Image1 的 Bitmap,您先將處理過的 Bitmap 設給 Items[1] 的 Bitmap,接著又將 Items[1] 的 Bitmap 設給了 Image1 的 Bitmap,此時的 Items[0] 的內容已經變成處理過的內容了,當您再將 Items[0] 設給 Image2 的 Bitmap 時,兩者當然相同囉。 或者將載入圖檔後的 MyList->Add(Image1->Picture->Bitmap); 設定敘述改成 MyList->Add(fBmp); 也行。 7 天天敲鍵盤 v 時時按滑鼠 8 |
Ansonku
一般會員 發表:13 回覆:15 積分:5 註冊:2002-10-23 發送簡訊給我 |
可否再請教前輩 MyList->Add(Image1->Picture->Bitmap);
這個是將 Image1->Picture->Bitmap 這個指標位置加到 MyList 中嗎?
還是完整的複製一份 Image1->Picture->Bitmap 給 MyList 另外
Image2->Picture->Bitmap->Assign((Graphics::TBitmap*)MyList->Items[0]);
這個 assign 也是把 MyList->Item[0] 這個指標給 Image2->Picture->Bitmap 嗎? 搞不大清楚這兩個指令到底是完整的複製還是只是將記憶體的指標傳給它 謝謝~~
|
bass15
高階會員 發表:24 回覆:171 積分:119 註冊:2003-10-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |