線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1111
推到 Plurk!
推到 Facebook!

影像旋轉後縮小的問題??

尚未結案
wd7142
一般會員


發表:18
回覆:19
積分:7
註冊:2004-01-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-21 01:19:51 IP:220.141.xxx.xxx 未訂閱
請問:     下面的圖片是旋轉前跟旋轉後,由於旋轉後圖形的寬和高都增加了,請問有沒有什麼辦法,讓旋轉前跟旋轉後的寬和高都相同???    
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-21 08:58:05 IP:203.73.xxx.xxx 未訂閱
引言: 請問: 下面的圖片是旋轉前跟旋轉後,由於旋轉後圖形的寬和高都增加了,請問有沒有什麼辦法,讓旋轉前跟旋轉後的寬和高都相同???
wd7142 你好: 請參考以下這篇文章的做法 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
wd7142
一般會員


發表:18
回覆:19
積分:7
註冊:2004-01-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-21 13:00:27 IP:220.141.xxx.xxx 未訂閱
[quote] 不好意思,可能我表遠不好,版大可能弄錯我的意思了。因為我的影像是圓形,所以旋轉前跟旋轉後的圓心位置會不一樣,因為旋轉後的圖形尺寸變大,所以位置偏掉了。 尤於我的影像為圓形,所以旋轉後還是圓形,而我得目的是要讓旋轉前跟旋轉後做比對,所以需要相同大小的圖片才能比對,而我不知道用內插法縮小的話,會不會失真太多,而我是有一個想法: 我原始影像大小為127X127,假設我的圓心點為影像的中心,也就是(64,64)的地方,那我旋轉後影像大小假設為未知數,但確定的是旋轉後的影像中心是圓心,那我是不是抓中心點上下左右的63點pixel,處理完的影像就為127X127,而其他的地方我就不要了。 而我的問題是如何只抓影像中央我要的127X127的大小。 因為我不知道我的想法能不能完成,還是版大有更好的建議,所以謝謝版大的回答!!!
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-21 13:56:36 IP:210.68.xxx.xxx 未訂閱
wd7142您好: RaynorPao大哥的範例已經是答案了,只要作些許的修改就能達到您的需求
去掉下面這兩行
//Image1->Stretch=true;
//Image2->Stretch=true;
以及修改存檔時的code
void __fastcall TForm1::Button4Click(TObject *Sender)
{
   if(!bmpDst) return;
   SavePictureDialog1->InitialDir=ExtractFilePath(Application->ExeName);
   if(SavePictureDialog1->Execute())
   {
      Graphics::TBitmap *Pic = new Graphics::TBitmap();
      int CenterX = Image2->Picture->Bitmap->Width/2;
      int CenterY = Image2->Picture->Bitmap->Height/2;
      TPoint Top,Down;
      Top.x = CenterX - Image1->Picture->Bitmap->Width/2;
      Top.y = CenterY - Image1->Picture->Bitmap->Height/2;
      Down.x = CenterX   Image1->Picture->Bitmap->Width/2;
      Down.y = CenterY   Image1->Picture->Bitmap->Height/2;;
      Pic->Width = abs(Down.x-Top.x);
      Pic->Height = abs(Down.y-Top.y);
      Pic->Canvas->CopyMode = cmSrcCopy;
      Pic->Canvas->CopyRect(Rect(0, 0, Pic->Width, Pic->Height),
      bmpDst->Canvas, Rect(Top.x, Top.y, Down.x, Down.y));
      Pic->SaveToFile(SavePictureDialog1->FileName);
      delete Pic;
   }
}
請再依照您的需求作修改 順心
wd7142
一般會員


發表:18
回覆:19
積分:7
註冊:2004-01-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-21 19:33:14 IP:220.141.xxx.xxx 未訂閱
版大你好: 因為縮小的部份是寫在save上,那請問可不可以寫在旋轉後的程式裡,讓輸出影像為同大小? 謝謝版大的回答!!!
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-21 20:16:07 IP:210.68.xxx.xxx 未訂閱
您好: 
引言: 因為縮小的部份是寫在save上,那請問可不可以寫在旋轉後的程式裡,讓輸出影像為同大小?
可以,您會這樣問表示您可能沒先試過,若試過請將有問題的程式碼po上來 讓有經驗的前輩幫您看看問題在哪邊
wd7142
一般會員


發表:18
回覆:19
積分:7
註冊:2004-01-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-09-29 19:55:37 IP:220.141.xxx.xxx 未訂閱
引言: 您好:
引言: 因為縮小的部份是寫在save上,那請問可不可以寫在旋轉後的程式裡,讓輸出影像為同大小?
可以,您會這樣問表示您可能沒先試過,若試過請將有問題的程式碼po上來 讓有經驗的前輩幫您看看問題在哪邊 < face="Verdana, Arial, Helvetica"> 謝謝版主,以解決了!!!謝謝~~
系統時間:2024-05-21 0:09:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!