線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:7356
推到 Plurk!
推到 Facebook!
[<<] [1] [2] [>>]

如何開一張圖

尚未結案
JASONWAR
一般會員


發表:8
回覆:21
積分:5
註冊:2002-08-31

發送簡訊給我
#32 引用回覆 回覆 發表時間:2003-04-08 23:16:34 IP:203.73.xxx.xxx 未訂閱
修改完執行後還是出現原來ㄉ錯誤ㄝ:(我都照JerryKuo前輩ㄉ說明做ㄌ) project project48.exe raised exception class EStackOverflow with message 'stack overflow'.Process stopped. Use Step or run to continue.
JASONWAR
一般會員


發表:8
回覆:21
積分:5
註冊:2002-08-31

發送簡訊給我
#33 引用回覆 回覆 發表時間:2003-04-08 23:20:15 IP:203.73.xxx.xxx 未訂閱
還有忘ㄌ請版主介紹一些初學者適合ㄉ書...要有關vcl元件ㄉ介紹 謝謝哦~~^^
taishyang
站務副站長


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

發送簡訊給我
#34 引用回覆 回覆 發表時間:2003-04-08 23:33:00 IP:140.135.xxx.xxx 訂閱
JASONWAR您好:    
引言: 還有忘ㄌ請版主介紹一些初學者適合ㄉ書...要有關vcl元件ㄉ介紹
請參考下面連結: http://delphi.ktop.com.tw/forum.asp?FORUM_ID=81 基本上每本都會有VCL元件的介紹< > 順心< >
brant
一般會員


發表:1
回覆:64
積分:23
註冊:2003-04-07

發送簡訊給我
#35 引用回覆 回覆 發表時間:2003-04-09 10:18:39 IP:61.219.xxx.xxx 未訂閱
引言: 修改完執行後還是出現原來ㄉ錯誤ㄝ:(我都照JerryKuo前輩ㄉ說明做ㄌ) project project48.exe raised exception class EStackOverflow with message 'stack overflow'.Process stopped. Use Step or run to continue.
還是用一個大大的 int Array 去讀檔嗎? 之前不是建議您改用 pointer 嗎? 不然就直接用 vcl 的 class 來處理讀檔 或是一個一個 byte 讀出來直接設到 canvas 裡的 rgb 值 總之就是不要一個大大的 512*512 的 Array 你最原本的問題就是 Array 太大了
JASONWAR
一般會員


發表:8
回覆:21
積分:5
註冊:2002-08-31

發送簡訊給我
#36 引用回覆 回覆 發表時間:2003-04-09 13:32:22 IP:203.73.xxx.xxx 未訂閱
引言:
引言: 修改完執行後還是出現原來ㄉ錯誤ㄝ:(我都照JerryKuo前輩ㄉ說明做ㄌ) project project48.exe raised exception class EStackOverflow with message 'stack overflow'.Process stopped. Use Step or run to continue.
還是用一個大大的 int Array 去讀檔嗎? 之前不是建議您改用 pointer 嗎? 不然就直接用 vcl 的 class 來處理讀檔 或是一個一個 byte 讀出來直接設到 canvas 裡的 rgb 值 總之就是不要一個大大的 512*512 的 Array 你最原本的問題就是 Array 太大了
可是JerryKuo前輩不是試ㄌ可以執行沒問題ㄇ而且我不太會用指標ㄝ..
JASONWAR
一般會員


發表:8
回覆:21
積分:5
註冊:2002-08-31

發送簡訊給我
#37 引用回覆 回覆 發表時間:2003-04-09 13:41:20 IP:203.73.xxx.xxx 未訂閱
不好意思再問ㄍ問題: 這一行:Image1->Canvas->Pixels[i][j]=(TColor)RGB(clr,clr,clr); 他是怎ㄇ讀ㄉ到Pixels[i][j]ㄉ,然後怎樣顯示圖片出來ㄉ....
taishyang
站務副站長


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

發送簡訊給我
#38 引用回覆 回覆 發表時間:2003-04-09 14:06:27 IP:140.135.xxx.xxx 訂閱
JASONWAR您好:   
引言: 這一行:Image1->Canvas->Pixels[i][j]=(TColor)RGB(clr,clr,clr); 他是怎ㄇ讀ㄉ到Pixels[i][j]ㄉ,然後怎樣顯示圖片出來ㄉ....
希望您不要介意,您還沒走的穩就想跑的快這樣是很危險的... BCB的教學網站您可以參考下面連結: http://www.ccit.edu.tw/~ichung/teach/c /index.htm 順心
brant
一般會員


發表:1
回覆:64
積分:23
註冊:2003-04-07

發送簡訊給我
#39 引用回覆 回覆 發表時間:2003-04-09 14:19:28 IP:61.219.xxx.xxx 未訂閱
引言:
引言:
引言: 修改完執行後還是出現原來ㄉ錯誤ㄝ:(我都照JerryKuo前輩ㄉ說明做ㄌ) project project48.exe raised exception class EStackOverflow with message 'stack overflow'.Process stopped. Use Step or run to continue.
還是用一個大大的 int Array 去讀檔嗎? 之前不是建議您改用 pointer 嗎? 不然就直接用 vcl 的 class 來處理讀檔 或是一個一個 byte 讀出來直接設到 canvas 裡的 rgb 值 總之就是不要一個大大的 512*512 的 Array 你最原本的問題就是 Array 太大了
可是JerryKuo前輩不是試ㄌ可以執行沒問題ㄇ而且我不太會用指標ㄝ..
他的環境跟你的環境不一樣吧? 也許這跟 compiler 的一些參數,或是版本有關,天知道! 如果怕用指標,那你先把 int 改成 unsigned char,什麼參數設定都沒改過的話用 int 真的是超過 stack 了所以系統就丟給你 stack overflow。 你可以試試看,開一個空的 project,在 main 裡面只寫 int test[512][512] 然後寫 test[0][0] = 1; (這行是避免 compiler 自動把沒用到的變數拿掉。) build 完後一執行,馬上丟給你 stack overflow。 用 unsigned char 就不至於 stack overflow,但宣告過大的變數總是不好的, 趕緊學會一種替代方案吧,加油 [> 發表人 -
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#40 引用回覆 回覆 發表時間:2003-04-09 16:59:05 IP:61.59.xxx.xxx 未訂閱
JASONWAR你好: 針對你的問題回答 1.重新建立一個project 2.拉一個Button和一個Image在預設的Form1上 3.點兩下button,會出現   void __fastcall TForm1::Button1Click(TObject *Sender)的函數   {   } 4.把下面的code放在大括號{ }裡,compiler完,執行.ok 5.如果再不行,呃~呃~呃~.....sorry,我己江郎才盡.. --------------------------------------------------------------------- FILE *fp; int i,j int temp_eng[512][512];/*忘了改*/ char clr;    fp=fopen("lena","rb");    for (j=0;j<512;j ) { for (i=0;i<512;i ) { fread(&temp_eng[i][j],1,1,fp); clr = temp_eng[i][j]; Image1->Canvas->Pixels[i][j]=(TColor)RGB(clr,clr,clr); } } fclose(fp); --------------------------------------------------------------------- 如果可以執行,表示你之前的想法是對的沒錯^^,只是不太會用bcb,畢竟你是post 在about c 的版上。其實這樣的寫法效率很差,秀出圖的速度很慢(因為多年前 我就是這樣寫的.哈哈),做影像處理時也不實用,這個程式可以當作入門玩玩 ,要進階的話就要參考
JASONWAR
一般會員


發表:8
回覆:21
積分:5
註冊:2002-08-31

發送簡訊給我
#41 引用回覆 回覆 發表時間:2003-04-09 21:44:43 IP:203.73.xxx.xxx 未訂閱
圖開出來ㄌ^^...現在我要用temp_eng[i][j]裡面ㄉ512*512ㄍ值來做簡單ㄉ運算 .....但因之前已宣告temp_eng[512][512]為unsigned char所以似乎不能做運算 有辦法能將temp_eng[512][512]轉為整數再做運算ㄇ??
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#42 引用回覆 回覆 發表時間:2003-04-10 18:52:51 IP:61.59.xxx.xxx 未訂閱
JASONWAR你好 unsigned char等於 byte 數值範圍:0 ~ 255 所以矩陣的值可以做加減(但要確定兩值相加不會超過255) 不能做乘除,如果要做乘除或超出範圍的相加,在矩陣前加個(int) 如下 int value; value = ((int)temp_eng[12][34] (int)temp_eng[56][78])/2; 確定value小於255,才可以放回矩陣 temp_eng[12][34] = (unsigned char)value; ^^
sun33
一般會員


發表:1
回覆:1
積分:0
註冊:2008-08-01

發送簡訊給我
#43 引用回覆 回覆 發表時間:2008-09-22 20:29:16 IP:125.224.xxx.xxx 訂閱

===================引 用 taishyang 文 章===================
JASONWAR您好: 我的BCB是5.0版所以我無法開啟您的專案檔 我的方式您參考看看,我測試過並沒有問題
 
   byte pixel[300000]="0";
   byte color;
   int x,y;
   int count=0;    if (OpenDialog1->Execute())
  {
   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;
    }       delete ima;
   }      for (y=0;y<512;y  )
   {
    for (x=0;x<512;x  )
     {
 
      color=pixel[count];
      SetPixel(Image1->Canvas->Handle, x,y,TColor(RGB(color,color,color)));
      count  ;
     }
   }
 
上面的方式可以達到您的需求... 但只要作些許的改變便可以讀取任何RAW Data的影像 順心 發表人 - taishyang 於 2003/04/07 20:34:00





BYTE bBuf=0;

for (int i=0;i < ima->Size;i )
{
ima->Position=i;
bBuf=i;
ima->Read(&bBuf,1);
pixel[i]=bBuf;
}



想請問為什麼這邊要這樣寫,要先這樣讀
麻煩大哥傳授





taishyang
站務副站長


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

發送簡訊給我
#44 引用回覆 回覆 發表時間:2008-09-22 20:39:49 IP:118.169.xxx.xxx 訂閱

ima->read(pixel, ima->Size);
即可將內容搬到pixel這個buffer裡面


===================引 用 sun33 文 章===================
BYTE bBuf=0;
for (int i=0;i < ima->Size;i )
{
ima->Position=i;
bBuf=i;
ima->Read(&bBuf,1);
pixel[i]=bBuf;
}



想請問為什麼這邊要這樣寫,要先這樣讀
麻煩大哥傳授





[<<] [1] [2] [>>]
系統時間:2024-03-28 20:39:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!