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

請問一下ScrollBox的應用

尚未結案
ayuen
一般會員


發表:19
回覆:34
積分:10
註冊:2003-07-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-28 15:19:09 IP:219.68.xxx.xxx 未訂閱
請問一下如果我要把一張1024*1024的Image顯示出來但是螢幕大小只有1024*768那我要如何把一張1024*1024的圖檔放在ScrollBox內利用ScrollBox來 顯示出其他地方 __fastcall TForm1::TForm1(TComponent* Owner)         : TForm(Owner) {    BYTE *pixel=NULL;    pixel=new BYTE[1048576];    ZeroMemory(pixel, 1048576);    byte color;      if (OpenDialog1->Execute())   {    Form1->Caption=OpenDialog1->FileName;          TMemoryStream* ima = new TMemoryStream();      ima->LoadFromFile(OpenDialog1->FileName);       BYTE bBuf=0;       for (int i=0;i < ima->Size;i++)          {      ima->Position=i;      bBuf=i;      ima->Read(&bBuf,1);      pixel[i]=bBuf;     }     lbl1->Caption=ima->Size;     lbl2->Caption=pixel[0];     lbl3->Caption=pixel[1];    delete ima;   }   Image1->AutoSize=true;   Image1->Stretch=false;   for (int y=0;y<1024;y ) { for (int x=0;x<1024;x ) { color=TColor(pixel[1024*y x]); SetPixel(Image1->Canvas->Handle, x,y,TColor(RGB(color,color,color))); } } delete pixel; } //--------------------------------------------------------------------------- 發表人 - ayuen 於 2003/09/28 16:15:41
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-28 15:27:44 IP:61.224.xxx.xxx 未訂閱
先放一個Scrollbox,再把你的Image放在裡面,    把Image的autosize設成true,  align設成alNone,stretch設成false (這兩個都是預設值,不過檢查一下比較好)    這樣去試試看~ 國泰平安 發表人 -
ayuen
一般會員


發表:19
回覆:34
積分:10
註冊:2003-07-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-28 16:17:28 IP:219.68.xxx.xxx 未訂閱
不行ㄋ沒反應喔 是因為我是讀取pixel嗎
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-28 16:37:00 IP:61.224.xxx.xxx 未訂閱
哦,因為你最先沒把程式放上來,    你的Image裡並沒有load任何影像,所以你下了有關Image的參數命令, 是不會有所反應的~    至於影像檔案處理的東西,在下沒有很精通, 就請包版主或是另一個泰版主出來幫幫你好了,呵~ 國泰平安
ayuen
一般會員


發表:19
回覆:34
積分:10
註冊:2003-07-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-28 16:41:07 IP:219.68.xxx.xxx 未訂閱
呵呵< > 不好意思沒有把程式放上來 拍謝 害你誤會我的意思 < >
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-09-28 16:44:31 IP:61.224.xxx.xxx 未訂閱
不然你試試看這樣好了~ 加入綠色的地方~ <>< face="Verdana, Arial, Helvetica">引言:
 
請問一下如果我要把一張1024*1024的Image顯示出來但是螢幕大小只有1024*768那我要如何把一張1024*1024的圖檔放在ScrollBox內利用ScrollBox來
顯示出其他地方
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
   BYTE *pixel=NULL;
   pixel=new BYTE[1048576];
   ZeroMemory(pixel, 1048576);
   byte color;      if (OpenDialog1->Execute())
  {
   Form1->Caption=OpenDialog1->FileName;      
   TMemoryStream* ima = new TMemoryStream();  
   ima->LoadFromFile(OpenDialog1->FileName);       BYTE bBuf=0;       for (int i=0;i < ima->Size;i  )     
    {
     ima->Position=i;
     bBuf=i;
     ima->Read(&bBuf,1);
     pixel[i]=bBuf;
    }
    lbl1->Caption=ima->Size;
    lbl2->Caption=pixel[0];
    lbl3->Caption=pixel[1];
   delete ima;
    Image1->Picture->LoadFromFile(OpenDialog1->FileName); 
  }
  Image1->AutoSize=true;
  Image1->Stretch=false;
  for (int y=0;y<1024;y  )
   {
    for (int x=0;x<1024;x  )
     {
      color=TColor(pixel[1024*y x]);
      SetPixel(Image1->Canvas->Handle, x,y,TColor(RGB(color,color,color)));
     }
   }
   delete pixel;
}
//---------------------------------------------------------------------------        發表人 - ayuen 於 2003/09/28  16:15:41
 
國泰平安
ayuen
一般會員


發表:19
回覆:34
積分:10
註冊:2003-07-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-09-28 16:50:53 IP:219.68.xxx.xxx 未訂閱
出現了error Unknown picture file extension (.raw) 因為我要讀的是無標頭檔的圖即是raw data
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-09-28 16:57:40 IP:61.224.xxx.xxx 未訂閱
呵,我剛剛用你的程式去跑256色的bmp圖, 會變成灰階並且把圖巔倒的圖~    但是跑24bit的bmp就不行了,這可能是圖形程式處理的問題吧~    你這個程式是有什麼作用呢?     raw檔我沒試過,不過你的那個錯誤訊息是說: 這個TImage無法載入Raw檔,是和元件有關係的, 你可能要找可以幫你載入raw檔的元件才行~    這又是另一個問題了哦~ 說到這有沒有什麼問題呢? 國泰平安
ayuen
一般會員


發表:19
回覆:34
積分:10
註冊:2003-07-31

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-09-28 17:04:04 IP:219.68.xxx.xxx 未訂閱
因為這個程式只是要把raw data圖讀出來 以pixel的方式一點一點讀出 因為raw的圖檔即是只有圖素無標頭檔等
taishyang
站務副站長


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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-09-28 17:05:42 IP:140.135.xxx.xxx 未訂閱
ayuen您好:  假如您讀取RAW影像是參考我之前寫法的話(因為變數得命名方式很雷同) 請改成下面的方式(比較好也比較快),之前的寫法多費一道工 < class="code"> TMemoryStream* ima=new TMemoryStream(); ima->LoadFromFile("1.ima"); int dwSize=ima->Size; BYTE* pixel=new BYTE[dwSize]; ima->Read(pixel, dwSize); Graphics::TBitmap* BMP=new Graphics::TBitmap(); //解決您問題的方式 BMP->Width=1024; BMP->Height=1024; for (int y=0;yHeight;y ) { for (int x=0;xWidth;x ) { byte color=TColor(pixel[1024*y x]); SetPixel(BMP->Canvas->Handle, x,y,TColor(RGB(color,color,color))); } } Image1->Picture->Assign(BMP); delete [] pixel; delete ima; delete BMP; P.S:要將Image1的AutoSize設定為true 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-09-28 17:19:23 IP:61.224.xxx.xxx 未訂閱
果然阿泰版主是影像處理高手, 對了,泰兄我想問一下,用Timage可以直接open RAW檔嗎? 因為很久之前好像有人問過我,後來好像不行... 後來改用別的元件才能開...還是我記錯了< > 麻煩幫我解惑一下,謝謝< > 國泰平安
taishyang
站務副站長


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

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-09-28 17:25:49 IP:140.135.xxx.xxx 未訂閱
gemi0305您好:
引言: 果然阿泰版主是影像處理高手, 對了,泰兄我想問一下,用Timage可以直接open RAW檔嗎? 因為很久之前好像有人問過我,後來好像不行... 後來改用別的元件才能開...還是我記錯了
不敢當,我也還在學習,這方式是來自dllee版主的提示< > > 順心< > <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
ayuen
一般會員


發表:19
回覆:34
積分:10
註冊:2003-07-31

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-09-29 17:21:14 IP:219.68.xxx.xxx 未訂閱
Taishyang版主你好:  如版主所說小弟是引用你的舊作加以修改 請問一下 如果我要在一個 >
taishyang
站務副站長


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

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-09-29 18:31:20 IP:140.135.xxx.xxx 未訂閱
ayuen您好:
引言: 如果我要在一個ScrollBox內顯示一張raw的圖檔 並且以垂直和水平的Scroll來控制1024*1024大小的圖 因為我要控制他的顯示範圍但我必須能看到整張圖 要如何使ScrollBox內顯示一張raw的圖檔ㄋ因為我大概只能限制在512*512的ScrollBox裡
不太懂您的意思,您在Form上放一個TScrollBox再將TImage放進去 再加入我之前的code即可 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
ayuen
一般會員


發表:19
回覆:34
積分:10
註冊:2003-07-31

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-09-29 19:26:07 IP:219.68.xxx.xxx 未訂閱
抱歉阿泰版主 我沒說清楚 我是想把raw圖檔放在scrollbox中 但scrollbox內並不會顯示出圖來 < src="">
taishyang
站務副站長


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

發送簡訊給我
#16 引用回覆 回覆 發表時間:2003-09-29 19:44:03 IP:140.135.xxx.xxx 未訂閱
ayuen您好: 我的並不會耶,您再檢查一下吧 我寫了一個小範例,參考看看吧 < href="http://delphi.ktop.com.tw/topic.php?TOPIC_ID=38156">http://delphi.ktop.com.tw/topic.php?TOPIC_ID=38156 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
ayuen
一般會員


發表:19
回覆:34
積分:10
註冊:2003-07-31

發送簡訊給我
#17 引用回覆 回覆 發表時間:2003-09-29 19:56:21 IP:219.68.xxx.xxx 未訂閱
Taishyang版主你好: 是我自己先放TImage再放ScrollBox 原來放置的次序也有關係 是我太疏忽了 多謝版主不厭其煩的教我 謝謝摟 < >< >
ayuen
一般會員


發表:19
回覆:34
積分:10
註冊:2003-07-31

發送簡訊給我
#18 引用回覆 回覆 發表時間:2003-09-29 19:59:18 IP:219.68.xxx.xxx 未訂閱
對了Taishyang版主 你剛剛的小範例有Package的問題喔 版主借學一下 順心
taishyang
站務副站長


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

發送簡訊給我
#19 引用回覆 回覆 發表時間:2003-09-29 20:08:59 IP:140.135.xxx.xxx 未訂閱
ayuen您好:
引言: 原來放置的次序也有關係 是我太疏忽了
關係可大囉,因為其Parent會有所不同 <>< face="Verdana, Arial, Helvetica">引言:你剛剛的小範例有Package的問題喔 感謝告知,已更新 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
系統時間:2024-05-19 21:01:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!