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

請問有辦法控制我讀取的影像大小嗎?例如 img檔

答題得分者是:RedSnow
020464581
一般會員


發表:5
回覆:7
積分:2
註冊:2004-12-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-24 03:34:36 IP:220.138.xxx.xxx 未訂閱
◎抱歉打擾各位一下    
 
 TMDIChild *Child;//我是用TMD的多視窗show影像
    Child = new TMDIChild(Application);           for (i = 0;i < kvdim;i  )
          for (j = 0;j < khdim;j  )
                {
             kbuf[i * khdim   j] = kout[i][j];                  Child->Image1->Canvas->Pixels[j][i]=(TColor)RGB(kout[i][j],kout[i][j],kout[i][j]);
       }//我所讀取的檔案是img檔,我沒辦法直接開img,所以,我把img檔的
        //數據資料直接傳給Pixels。
PS:問題是我無法讓影像呈現出我要的大小,例如說,這張影像呈現出來是將近 ,半個螢幕大,但是我想讓它變成,1/8螢幕大或1/10螢幕大 我用
Child->Image1->Syretch=true;  
也不行 發表人 - 020464581 於 2005/07/24 23:12:36 發表人 - 020464581 於 2005/07/24 23:13:34
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-24 13:29:08 IP:59.115.xxx.xxx 未訂閱
020464581 您好:    首先糾正一下您的用詞,您使用的那種視窗叫做 MDI 視窗,而不是 TMD 視窗,MDI 的完整英文名稱為 Multiple Document Interface,那個 T 字頭是 Borland 對其產品的物件的命名習慣,冠在物件名稱前方僅做為識別之用而已。 接著真對您的提問做回覆:您可以使用一個暫存的 Bitmap 來儲存讀入的資料,然後再設給 Image 物件 (Stretch 屬性設為 true) 顯示出來,例如:
Graphics::TBitmap *Bitmap = new Graphics::TBitmap();    .... 此處做您原先的填圖動作,但是對象改為 Bitmap ....    Image1->Picture->Bitmap->Assign(Bitmap);
delete Bitmap;
因為不清楚您的完整敘述為何?Image 物件各個屬性的設定又為何?因此以上僅提供基本架構,參考看看吧。 7 天天敲鍵盤 v 時時按滑鼠 8
020464581
一般會員


發表:5
回覆:7
積分:2
註冊:2004-12-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-24 20:58:11 IP:220.138.xxx.xxx 未訂閱
真抱歉,再打擾一下。 我是看書,學BCB的,剛學不到2個禮拜,都是看書學的。 Image1這個物件,是MDI不是可以呼叫一個小視窗,原本是輸入文字, 我按照書上寫的,把他改成可以輸入影像。然後Image1他的屬性我都 沒動到,至於填圖指令,你的意思是否是這樣 把
Child->Image1->Picture->Bitmap->Canvas->Pixels[j][i]=(TColor)RGB(kout[i][j],kout[i][j],kout[i][j]);
改成
Bitmap->Canvas->Pixels[j][i]=(TColor)RGB(kout[i][j],kout[i][j],kout[i][j]);
假如是的話,我的圖反而無法呈現出來>"<,我不知道哪裡做錯了。 我最主要的目的,是能在小視窗上的Image1 能夠控制影像的大小。 發表人 - 020464581 於 2005/07/24 23:11:26
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-24 21:13:56 IP:59.115.xxx.xxx 未訂閱
020464581 您好:    您不能單是直接修改 "填圖至 Bitmap" 的動作而已,填圖動作完畢後,還必須要做 Child->Image1->Picture->Bitmap->Assign(Bitmap); 這個動作,才能將填到 Bitmap 的圖形資料顯示到 Image 物件上面去。 如果仍有問題的話,請將您目前修改後的讀取圖檔動作,以及顯示圖檔動作的程式敘述貼上來,這樣子比較好討論。 7 天天敲鍵盤 v 時時按滑鼠 8
020464581
一般會員


發表:5
回覆:7
積分:2
註冊:2004-12-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-24 21:31:47 IP:220.138.xxx.xxx 未訂閱
真抱歉又在打擾你。 我剛剛就是把程式改成這樣子,不知道有沒有誤會你的意思。 但是還是不行耶。          發表人 - 020464581 於 2005/07/24  21:33:12    發表人 - 020464581 於 2005/07/24  23:06:53 
 
TMDIChild *Child;
                  Child = new TMDIChild(Application);            Graphics::TBitmap *Bitmap = new Graphics::TBitmap();           /* ----- To save decoded image as output file ----- */
       printf("(2). Data update.\n");
       for (i = 0;i < kvdim;i  )
          for (j = 0;j < khdim;j  )
                {
             kbuf[i * khdim   j] = kout[i][j];                  //Child->Image1->Picture->Bitmap->Canvas->Pixels[j][i]=(TColor)RGB(kout[i][j],kout[i][j],kout[i][j]);
              Bitmap->Canvas->Pixels[j][i]=(TColor)RGB(kout[i][j],kout[i][j],kout[i][j]);           }                   Child->Image1->Stretch=true;
              Child->Image1->Picture->Bitmap->Assign(Bitmap);
              delete Bitmap;    
發表人 - 020464581 於 2005/07/24 23:08:40 發表人 - 020464581 於 2005/07/24 23:15:21
taishyang
站務副站長


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-24 23:02:51 IP:218.168.xxx.xxx 未訂閱
您好:    PO程式碼的方式與版規說明請參考下面連結,煩請修改謝謝您的配合 > 關於程式的問題您必須先設定 >
020464581
一般會員


發表:5
回覆:7
積分:2
註冊:2004-12-30

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-07-24 23:24:36 IP:220.138.xxx.xxx 未訂閱
給RedSnow 給taishyang 謝謝大大的幫忙,我已經依照你們的解答,解決這個問題了。
系統時間:2024-05-14 2:27:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!