請問各位專家如何繪製3000*3000的圖於TImage上? |
尚未結案
|
panda0800
一般會員 發表:4 回覆:5 積分:1 註冊:2003-03-18 發送簡訊給我 |
我在繪製3000*3000的圖於TImage上時會有超過1024*768部分被剪掉了.
請問各位專家這問題如何解決? width=3000;
height=3000;
Image1->Width=width;
Image1->Height=height; Image1->Constraints->MaxHeight = height;
Image1->Constraints->MaxWidth = width;
Image1->BoundsRect= TRect(0,0,width,height);
Image1->Canvas->ClipRect.right = width; //無法設定ClipRect
Image1->Canvas->ClipRect.bottom = height;
TRect R=TRect(500,500,width/2,height/2);
Image1->Canvas->Ellipse(R);
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
panda0800您好:
我不是專家,但您要的像下面這樣嗎?
Image1->Stretch=true; //可以讓畫面等比例縮放同TImage大小 int width=3000; int height=3000; Image1->Picture->Bitmap->Width=width; Image1->Picture->Bitmap->Height=height; TRect R=TRect(500,500,width/2,height/2); Image1->Canvas->Ellipse(R); //Application->ProcessMessages(); //若程式執行起來像快當掉的話可加入上面這一行 //Image1->Picture->SaveToFile("test.bmp");//但存下來還是3000*3000順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~> 發表人 - |
panda0800
一般會員 發表:4 回覆:5 積分:1 註冊:2003-03-18 發送簡訊給我 |
Dear taishyang (版主),
謝謝您的回應.我不是要等比例放大,而是要繪製一個大尺寸的圖.
移動scroll bar可以看到其他部分的圖面.目前似乎有ClipRect
1024*768 的限制,不知如何突破.範例中
HRGN MyRgn; MyRgn = ::CreateRectRgn(0,0,3000,3000);
::SelectClipRgn(Image1->Canvas->Handle,MyRgn);
Ellipse(Image1->Canvas->Handle,500,500,2000,2000);
Image1->Invalidate();
::SelectClipRgn(Image1->Canvas->Handle,NULL);
::DeleteObject(MyRgn); 試過無效.請再協助,謝謝!
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
panda0800您好:
試試下面的code, 先將TImage放進TScrollBox中
Graphics::TBitmap* BMP = new Graphics::TBitmap(); BMP->Width=3000; BMP->Height=3000; TRect R=TRect(500,500,BMP->Width/2,BMP->Height/2); BMP->Canvas->Ellipse(R); //Application->ProcessMessages(); Image1->Picture->Assign(BMP); delete BMP;順心 發表人 - |
panda0800
一般會員 發表:4 回覆:5 積分:1 註冊:2003-03-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |