存一份bmp圖到記憶體內 |
答題得分者是:taishyang
|
asvmfd
一般會員 發表:46 回覆:30 積分:15 註冊:2004-11-09 發送簡訊給我 |
請問各位大大,在做扭曲變形的bmp像處理時想先存一份到bmp1,
以方便之後可以按Ctrl+Z來回復,
這個code有那個地方需要修改的嗎?怎無法秀出?
Graphics::TBitmap *bmp1 = new Graphics::TBitmap(); bmp1->Width = Image1->Picture->Width; bmp1->Height = Image1->Picture->Height; Image1->Picture->Bitmap->Assign(bmp1); . . delete bmp;Or有其它方法? 請指教..... 謝謝 |
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
引言: 請問各位大大,在做扭曲變形的bmp像處理時想先存一份到bmp1, 以方便之後可以按Ctrl Z來回復, 這個code有那個地方需要修改的嗎?怎無法秀出?asvmfd你好: 試試這樣寫Graphics::TBitmap *bmp1 = new Graphics::TBitmap(); bmp1->Width = Image1->Picture->Width; bmp1->Height = Image1->Picture->Height; Image1->Picture->Bitmap->Assign(bmp1); . . delete bmp;Or有其它方法? 請指教..... 謝謝 Graphics::TBitmap *bmp1 = new Graphics::TBitmap(); bmp1->Width = Image1->Picture->Width; bmp1->Height = Image1->Picture->Height; bmp1->Assign(Image1->Picture->Bitmap); : delete bmp1; |
asvmfd
一般會員 發表:46 回覆:30 積分:15 註冊:2004-11-09 發送簡訊給我 |
可否給個範例呢?
load一個圖檔到一個 TMemoryStream *ms1
(用TMemoryStream *ms1 = new TMemoryStream;宣告)
之後從*ms1 copy同樣內容到TMemoryStream *ms2 = new TMemoryStream;
然後再Show *ms2到Form1->Image2是要如何做?
底下是測試test1,test2是得到相同圖形,但是要從ms2秀圖就err(下圖).
*ms1 = new TMemoryStream; Form1->Image1->Picture->SaveToFile("c:\\test1.bmp"); TMemoryStream *ms2 = new TMemoryStream; Form1->Image1->Picture->Bitmap->SaveToStream(ms2); BYTE *b=new BYTE[ms2->Size]; ms->Read(b, ms->Size); ms->Size=ms->Size; ms->Position=0; ms->Read(b, ms->Size); ms->SaveToFile("c:\\test2.bmp"); ms->Position=0; //====================================== Form1->Image2->Picture->Bitmap->LoadFromStream( ms2 );// err //==================================== delete [] b; delete ms; |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
asvmfd您好:
您所測試的程式碼與您的需求搭不起來耶
引言: load一個圖檔到一個 TMemoryStream *ms1 (用TMemoryStream *ms1 = new TMemoryStream;宣告) 之後從*ms1 copy同樣內容到TMemoryStream *ms2 = new TMemoryStream; 然後再Show *ms2到Form1->Image2是要如何做? *ms1 = new TMemoryStream; Form1->Image1->Picture->SaveToFile("c:\\test1.bmp"); TMemoryStream *ms2 = new TMemoryStream; Form1->Image1->Picture->Bitmap->SaveToStream(ms2); BYTE *b=new BYTE[ms2->Size]; ms->Read(b, ms->Size); //ms是做什麼用? ms->Size=ms->Size; //這行的目的也不了解 ms->Position=0; ms->Read(b, ms->Size); ms->SaveToFile("c:\\test2.bmp"); ms->Position=0; //====================================== Form1->Image2->Picture->Bitmap->LoadFromStream( ms2 );// err //==================================== delete [] b; delete ms;順心 |
Chenbc
一般會員 發表:31 回覆:33 積分:12 註冊:2004-01-06 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
您好:我照您要求的方式寫了下面的程式碼
引言:順心 發表人 -/*load一個圖檔到一個 TMemoryStream *ms1 (用TMemoryStream *ms1 = new TMemoryStream;宣告)*/ TMemoryStream *ms1 = new TMemoryStream(); ms1->LoadFromFile("1.bmp"); /*之後從*ms1 copy同樣內容到TMemoryStream *ms2 = new TMemoryStream;*/ TMemoryStream *ms2 = new TMemoryStream(); ms2->LoadFromStream(ms1); /*然後再Show *ms2到Form1->Image2是要如何做?*/ Image2->Picture->Bitmap->LoadFromStream(ms2); delete ms1; delete ms2; |
asvmfd
一般會員 發表:46 回覆:30 積分:15 註冊:2004-11-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |