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

有關R.G.B填寫回影像問題

答題得分者是:taishyang
auslk
初階會員


發表:35
回覆:77
積分:32
註冊:2003-02-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-07 21:15:06 IP:219.68.xxx.xxx 未訂閱
請教各位先進們, 以下是用ScanLine方式coding.    問:     .若我想要取R.B.G 單一顏色個別Show 在 Images 上      R 一張圖      G 一張圖      B 一張圖      可以改gray 變為 r,g,b嗎?      (我有試過,但變成黑影像!)請協助!謝謝!        
 
void __fastcall TForm1::RGBMODE1Click(TObject *Sender)
{
 int i,j,k,gray,r,g,b;
 Byte *ptr;
 Graphics::TBitmap *bmp=new Graphics::TBitmap();
 bmp->Assign(Image1->Picture->Bitmap);
 bmp->PixelFormat=pf24bit;
 for(j=0;jHeight;j  )
   {
     ptr=(Byte *)bmp->ScanLine[j];
      for(i=0;iWidth;i  )
       {
         r=ptr[i*3];
         g=ptr[i*3 1];
         b=ptr[i*3 2];           gray=(0.299*r 0.587*g 0.114*b);
         ptr[i*3]=(Byte)gray;
         ptr[i*3 1]=(Byte)gray;
         ptr[i*3 2]=(Byte)gray;
     }
  }
 Image2->Picture->Assign(bmp);
RaynorPao
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-07 21:28:44 IP:61.221.xxx.xxx 未訂閱
引言: 請教各位先進們, 以下是用ScanLine方式coding. 問: .若我想要取R.B.G 單一顏色個別Show 在 Images 上 R 一張圖 G 一張圖 B 一張圖 可以改gray 變為 r,g,b嗎? (我有試過,但變成黑影像!)請協助!謝謝!
 
void __fastcall TForm1::RGBMODE1Click(TObject *Sender)
{
 int i,j,k,gray,r,g,b;
 Byte *ptr;
 Graphics::TBitmap *bmp=new Graphics::TBitmap();
 bmp->Assign(Image1->Picture->Bitmap);
 bmp->PixelFormat=pf24bit;
 for(j=0;jHeight;j  )
   {
     ptr=(Byte *)bmp->ScanLine[j];
      for(i=0;iWidth;i  )
       {
         r=ptr[i*3];
         g=ptr[i*3 1];
         b=ptr[i*3 2];           gray=(0.299*r 0.587*g 0.114*b);
         ptr[i*3]=(Byte)gray;
         ptr[i*3 1]=(Byte)gray;
         ptr[i*3 2]=(Byte)gray;
     }
  }
 Image2->Picture->Assign(bmp);
auslk 你好: 先參考這篇文章中的做法,看看是不是你要的呢??
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
taishyang
站務副站長


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-07 21:30:11 IP:140.135.xxx.xxx 未訂閱
auslk您好:
ptr[i*3]       表示B    
ptr[i*3 1]     表示G
ptr[i*3 2]     表示R
將您要顯示的資料填入即可 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
auslk
初階會員


發表:35
回覆:77
積分:32
註冊:2003-02-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-07 21:53:55 IP:219.68.xxx.xxx 未訂閱
引言: auslk您好:
ptr[i*3]       表示B    
ptr[i*3 1]     表示G
ptr[i*3 2]     表示R
將您要顯示的資料填入即可 順心 與您報告: 小弟程式回填資料 : 出現灰階圖片 ,真不知道寫錯哪? < class="code"> Blue color ptr[i*3]=(Byte) b; ptr[i*3 1]=(Byte) b; ptr[i*3 2]=(Byte) b; ~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 - taishyang 於 2003/10/07 21:50:30
auslk
初階會員


發表:35
回覆:77
積分:32
註冊:2003-02-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-07 22:03:50 IP:219.68.xxx.xxx 未訂閱
Dear Sir,     總算找出來囉!     我真是粗心!  若要show出blue,即可!  多謝您ㄉ提醒!     ptr[i*3]=b; ptr[i*3+1]=0; ptr[i*3+2]= 0;    
引言:
引言: auslk您好:
ptr[i*3]       表示B    
ptr[i*3 1]     表示G
ptr[i*3 2]     表示R
將您要顯示的資料填入即可 順心 與您報告: 小弟程式回填資料 : 出現灰階圖片 ,真不知道寫錯哪? < class="code"> Blue color ptr[i*3]=(Byte) b; ptr[i*3 1]=(Byte) b; ptr[i*3 2]=(Byte) b; ~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 - taishyang 於 2003/10/07 21:50:30
auslk
初階會員


發表:35
回覆:77
積分:32
註冊:2003-02-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-07 22:04:03 IP:219.68.xxx.xxx 未訂閱
Dear Sir,     總算找出來囉!     我真是粗心!  若要show出blue,即可!  多謝您ㄉ提醒!     ptr[i*3]=b; ptr[i*3+1]=0; ptr[i*3+2]= 0;    
引言:
引言: auslk您好:
ptr[i*3]       表示B    
ptr[i*3 1]     表示G
ptr[i*3 2]     表示R
將您要顯示的資料填入即可 順心 與您報告: 小弟程式回填資料 : 出現灰階圖片 ,真不知道寫錯哪? < class="code"> Blue color ptr[i*3]=(Byte) b; ptr[i*3 1]=(Byte) b; ptr[i*3 2]=(Byte) b; ~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 - taishyang 於 2003/10/07 21:50:30
taishyang
站務副站長


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

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