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

請問各位專家如何繪製3000*3000的圖於TImage上?

尚未結案
panda0800
一般會員


發表:4
回覆:5
積分:1
註冊:2003-03-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-10 23:55:02 IP:140.96.xxx.xxx 未訂閱
我在繪製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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-11 00:11:26 IP:140.135.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-11 10:26:32 IP:140.96.xxx.xxx 未訂閱
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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-11 13:44:27 IP:140.135.xxx.xxx 未訂閱
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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-11 19:52:08 IP:140.96.xxx.xxx 未訂閱
Dear taishyang(版主),      可以顯示了,太感謝你了,謝謝! 謝謝! 謝謝!    另請問要如何給分呀?    Panda0800
系統時間:2024-11-22 21:50:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!