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

請問我的程式哪裡錯阿(影像反轉)~~我實在找不出來 謝謝

尚未結案
danielkelly
初階會員


發表:36
回覆:108
積分:28
註冊:2003-05-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-17 18:28:36 IP:140.124.xxx.xxx 未訂閱
我的程式可執行但是結果會只有一部分的影像會反轉(左邊的那邊) 在下面標示出來的地方改為 sizex+(200or300...) 就可改善 覺得很奇怪 sizex=TheForm->Image1->Picture->Bitmap->Width;取不的影像Width的全部大小嗎??? 謝謝指教 >>>>>>>>>>>>>>>>>>
taishyang
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-17 18:42:14 IP:140.135.xxx.xxx 未訂閱
danielkelly您好: 請參考下連連結作適當的修改 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=39009 謝謝您的配合
danielkelly
初階會員


發表:36
回覆:108
積分:28
註冊:2003-05-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-17 22:36:29 IP:140.124.xxx.xxx 未訂閱
我的程式可執行但是結果會只有一部分的影像會反轉(左邊的那邊) 在下面標示出來的地方改為 sizex+(200or300...) 就可改善 覺得很奇怪 sizex=TheForm->Image1->Picture->Bitmap->Width;取不的影像Width的全部大小嗎??? 謝謝指教
 
TMDIChild *TheForm;
TColor PixelValue;
int B,G,R,sizex,sizey;
unsigned char *ptr; //因是RGB使用3位元 用來存取ScanLine取出的資料
TheForm=(TMDIChild*)ActiveMDIChild; 
sizey=TheForm->Image1->Picture->Bitmap->Height;
sizex=TheForm->Image1->Picture->Bitmap->Width;
for(int row=0;rowImage1->Picture->Bitmap->ScanLine[row];
for(int column=0;column>16;
G=(PixelValue&0x0000ff00)>>8; 
R=(PixelValue&0x000000ff);
B=255-B;
G=255-G;
R=255-R;
PixelValue=(B<<16) (G<<8) R; 
ptr[column]=PixelValue;
}
}
TheForm->Image1->Refresh();
danielkelly
初階會員


發表:36
回覆:108
積分:28
註冊:2003-05-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-18 00:00:57 IP:140.124.xxx.xxx 未訂閱
還是一樣耶  我想我的邏輯都沒錯 會不會是程式的
taishyang
站務副站長


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-18 01:06:34 IP:140.135.xxx.xxx 未訂閱
danielkelly您好: 您要的是要像下面這樣的效果嗎??
 Byte *ptr; //因是RGB使用3位元 用來存取ScanLine取出的資料
 Image1->Picture->Bitmap->PixelFormat=pf24bit;
 for(int row=0;rowHeight;row  )
 {
  ptr=(Byte*)Image1->Picture->Bitmap->ScanLine[row];
  for(int column=0;columnWidth;column  )
  {
    int B=ptr[column*3];
    int G=ptr[column*3 1];
    int R=ptr[column*3 2];        B=255-B;
    G=255-G;
    R=255-R;
    int PixelValue=(B<<16) (G<<8) R;
    ptr[column*3]=PixelValue;
    ptr[column*3 1]=PixelValue;
    ptr[column*3 2]=PixelValue;
  }
 }
 Image1->Refresh();
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
danielkelly
初階會員


發表:36
回覆:108
積分:28
註冊:2003-05-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-18 13:05:49 IP:140.124.xxx.xxx 未訂閱
sorry 不能執行耶~~ 我是要將來源影像(RGB彩色圖形)作反向動作,做出類似底片的效果 下面的程式碼看不懂耶~~ 
 
int B=ptr[column*3];
int G=ptr[column*3 1];
int R=ptr[column*3 2];
謝謝
taishyang
站務副站長


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-10-18 13:22:10 IP:140.135.xxx.xxx 未訂閱
danielkelly您好: 原來您是要做彩色底片效果,那您試試看下面的code
Byte *ptr; //因是RGB使用3位元 用來存取ScanLine取出的資料
 Image1->Picture->Bitmap->PixelFormat=pf24bit;
 for(int row=0;rowHeight;row  )
 {
  ptr=(Byte*)Image1->Picture->Bitmap->ScanLine[row];
  for(int column=0;columnWidth;column  )
  {
    int B=ptr[column*3];
    int G=ptr[column*3 1];
    int R=ptr[column*3 2];
    B=255-B;
    G=255-G;
    R=255-R;
    ptr[column*3]=B;
    ptr[column*3 1]=G;
    ptr[column*3 2]=R;
  }
 }
 Image1->Refresh();
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
danielkelly
初階會員


發表:36
回覆:108
積分:28
註冊:2003-05-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-10-18 15:48:18 IP:140.124.xxx.xxx 未訂閱
可以了 謝謝  不過 我對程式有些不懂耶~~ 請問 為什麼要用 class="code"> int B=ptr[column*3]; int G=ptr[column*3 1]; int R=ptr[column*3 2]; 謝謝 答覆
taishyang
站務副站長


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-10-18 15:55:14 IP:140.135.xxx.xxx 未訂閱
danielkelly您好:
引言: 不過 我對程式有些不懂耶~~ 請問 為什麼要用 Byte 呢?? 彩色影像 用到3個Byte 阿
請從下面問題發掘答案 >< face="Verdana, Arial, Helvetica">引言: 還有下面的程式看不懂耶~~~ int B=ptr[column*3]; int G=ptr[column*3 1]; int R=ptr[column*3 2]; 宣告的變數已經告訴您答案囉< > 順心< > ~我也是在學習的階段,回答的不好請您多多見諒與指教~
danielkelly
初階會員


發表:36
回覆:108
積分:28
註冊:2003-05-11

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-10-18 16:19:01 IP:140.124.xxx.xxx 未訂閱
喔~~~ 我懂了 >
taishyang
站務副站長


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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-10-18 16:20:28 IP:140.135.xxx.xxx 未訂閱
You Got it~~< >< >
danielkelly
初階會員


發表:36
回覆:108
積分:28
註冊:2003-05-11

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-10-18 16:25:35 IP:140.124.xxx.xxx 未訂閱
Thank you 
系統時間:2024-05-01 2:37:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!